@jeremyckahn/farmhand 1.20.5 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{index-B1wiB17g.js → index-DgErVmlw.js} +9 -9
- package/dist/assets/{index-B1wiB17g.js.map → index-DgErVmlw.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/dist/service-worker.js.map +1 -1
- package/package.json +2 -2
- package/src/components/AppBar/AppBar.test.tsx +19 -0
- package/src/components/AppBar/AppBar.tsx +29 -1
- package/src/components/CowCard/Bloodline/Bloodline.tsx +7 -2
- package/src/components/CowPen/Cow.tsx +237 -225
- package/src/components/CowPen/CowPen.test.tsx +74 -0
- package/src/components/Farmhand/Farmhand.context.tsx +14 -6
- package/src/components/Farmhand/FarmhandReducers.tsx +3 -0
- package/src/components/Farmhand/hooks/useFarmhandNavigation.ts +4 -2
- package/src/components/Farmhand/useFarmhand.ts +10 -10
- package/src/components/Field/Field.test.tsx +2 -0
- package/src/components/Field/Field.tsx +29 -3
- package/src/components/ForestPlot/ForestPlot.test.tsx +1 -1
- package/src/components/ForestPlot/ForestPlot.tsx +7 -6
- package/src/components/Inventory/Inventory.tsx +1 -0
- package/src/components/Item/Item.test.tsx +145 -0
- package/src/components/Item/Item.tsx +32 -0
- package/src/components/Navigation/Navigation.tsx +4 -7
- package/src/components/Plot/Plot.test.tsx +56 -1
- package/src/components/Plot/Plot.tsx +51 -1
- package/src/components/Stage/Stage.test.tsx +55 -0
- package/src/components/Stage/Stage.tsx +58 -25
- package/src/components/Toolbelt/Toolbelt.tsx +5 -8
- package/src/components/WineRecipeList/WineRecipe.test.tsx +3 -1
- package/src/components/WineRecipeList/WineRecipe.tsx +1 -5
- package/src/components/Workshop/ForgeTabPanel.tsx +2 -2
- package/src/components/Workshop/Workshop.tsx +2 -2
- package/src/constants.ts +11 -3
- package/src/data/__mocks__/items.ts +10 -0
- package/src/data/achievements.test.ts +45 -0
- package/src/data/achievements.ts +42 -0
- package/src/data/crop.ts +18 -4
- package/src/data/crops/asparagus.ts +3 -1
- package/src/data/crops/carrot.ts +2 -1
- package/src/data/crops/corn.ts +3 -1
- package/src/data/crops/garlic.ts +3 -1
- package/src/data/crops/grape.ts +7 -5
- package/src/data/crops/jalapeno.ts +3 -1
- package/src/data/crops/olive.ts +3 -1
- package/src/data/crops/pea.ts +3 -1
- package/src/data/crops/potato.ts +3 -1
- package/src/data/crops/pumpkin.ts +3 -1
- package/src/data/crops/spinach.ts +3 -1
- package/src/data/crops/strawberry.ts +3 -1
- package/src/data/crops/sunflower.ts +3 -1
- package/src/data/crops/sweet-potato.ts +3 -1
- package/src/data/crops/tomato.ts +3 -1
- package/src/data/crops/watermelon.ts +3 -1
- package/src/data/maps.test.ts +13 -0
- package/src/data/recipes.ts +65 -0
- package/src/data/seasons.ts +38 -0
- package/src/enums.ts +55 -4
- package/src/factories/ResourceFactory.test.ts +25 -4
- package/src/factories/ResourceFactory.ts +10 -8
- package/src/farmhand.d.ts +51 -145
- package/src/game-logic/reducers/applyLoanInterest.ts +2 -1
- package/src/game-logic/reducers/applyPrecipitation.test.ts +228 -0
- package/src/game-logic/reducers/applyPrecipitation.ts +79 -1
- package/src/game-logic/reducers/chopForestPlot.test.ts +1 -1
- package/src/game-logic/reducers/chopForestPlot.ts +1 -1
- package/src/game-logic/reducers/clearPlot.test.ts +55 -1
- package/src/game-logic/reducers/clearPlot.ts +17 -0
- package/src/game-logic/reducers/computeStateForNextDay.test.ts +14 -12
- package/src/game-logic/reducers/computeStateForNextDay.ts +2 -2
- package/src/game-logic/reducers/helpers.tsx +28 -0
- package/src/game-logic/reducers/index.ts +1 -0
- package/src/game-logic/reducers/makeRecipe.ts +1 -1
- package/src/game-logic/reducers/mulchForestPlot.ts +1 -1
- package/src/game-logic/reducers/prependPendingPeerMessage.ts +2 -1
- package/src/game-logic/reducers/processLevelUp.ts +2 -1
- package/src/game-logic/reducers/sellItem.test.ts +106 -1
- package/src/game-logic/reducers/sellItem.ts +28 -8
- package/src/game-logic/reducers/setLightningRod.test.ts +67 -0
- package/src/game-logic/reducers/setLightningRod.ts +39 -0
- package/src/game-logic/reducers/showNotification.ts +2 -1
- package/src/game-logic/reducers/unlockTool.ts +2 -2
- package/src/game-logic/reducers/upgradeTool.test.ts +2 -2
- package/src/game-logic/reducers/upgradeTool.ts +2 -1
- package/src/handlers/peer-events.ts +1 -1
- package/src/handlers/ui-events.tsx +9 -12
- package/src/img/index.ts +7 -1
- package/src/img/items/lightning-rod-basic.piskel +1 -0
- package/src/img/items/lightning-rod-basic.png +0 -0
- package/src/img/items/lightning-rod-superior.piskel +1 -0
- package/src/img/items/lightning-rod-superior.png +0 -0
- package/src/img/items/lightning-rod-ultimate.piskel +1 -0
- package/src/img/items/lightning-rod-ultimate.png +0 -0
- package/src/interfaces/Factory.ts +2 -4
- package/src/mui-theme.ts +1 -0
- package/src/services/wine.ts +2 -2
- package/src/strings.ts +6 -0
- package/src/styles/tokens.ts +1 -0
- package/src/templates.ts +2 -2
- package/src/test-utils/index.ts +12 -11
- package/src/utils/generateCow.ts +1 -1
- package/src/utils/generateOffspringCow.ts +1 -1
- package/src/utils/getChopWoodYieldRange.ts +2 -1
- package/src/utils/getCowColorId.ts +2 -2
- package/src/utils/getCowFertilizerItem.ts +1 -1
- package/src/utils/getCowImage.ts +2 -2
- package/src/utils/getCowMilkItem.ts +1 -1
- package/src/utils/getCropLifeStage.ts +1 -3
- package/src/utils/getCurrentSeason.test.ts +16 -0
- package/src/utils/getCurrentSeason.ts +6 -0
- package/src/utils/getDayOfSeason.test.ts +19 -0
- package/src/utils/getDayOfSeason.ts +4 -0
- package/src/utils/getFruitLifeStage.ts +3 -3
- package/src/utils/getLifeStageForTimeline.ts +1 -1
- package/src/utils/getSeasonalDemandMultiplier.test.ts +41 -0
- package/src/utils/getSeasonalDemandMultiplier.ts +24 -0
- package/src/utils/getSeasonalDemandStatus.test.ts +33 -0
- package/src/utils/getSeasonalDemandStatus.ts +16 -0
- package/src/utils/getTreeLifeStage.ts +1 -3
- package/src/utils/getValidatedStageFocusFromHash.ts +2 -5
- package/src/utils/getViewList.ts +2 -2
- package/src/utils/getWineVarietiesAvailableToMake.ts +2 -1
- package/src/utils/getYeastRequiredForWine.ts +1 -1
- package/src/utils/isItemAFarmProduct.ts +1 -1
- package/src/utils/pluralize.test.ts +23 -0
- package/src/utils/pluralize.ts +5 -0
- package/src/utils/sortItems.ts +1 -3
- package/src/utils/transformStateDataForImport.ts +1 -1
|
@@ -136,7 +136,7 @@ Add a <Suspense fallback=...> component higher in the tree to provide a loading
|
|
|
136
136
|
10.59L10 14.17L17.59 6.58L19 8L10 17Z`}))},WarningIcon=function(e){return import_react$24.createElement(SvgIcon,Object.assign({},e),import_react$24.createElement(`path`,{d:`M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z`}))},ErrorIcon=function(e){return import_react$24.createElement(SvgIcon,Object.assign({},e),import_react$24.createElement(`path`,{d:`M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,
|
|
137
137
|
6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,
|
|
138
138
|
13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z`}))},InfoIcon=function(e){return import_react$24.createElement(SvgIcon,Object.assign({},e),import_react$24.createElement(`path`,{d:`M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,
|
|
139
|
-
0 22,12A10,10 0 0,0 12,2Z`}))},iconStyles={fontSize:20,marginInlineEnd:8},defaultIconVariants={default:void 0,success:import_react$24.createElement(CheckIcon,{style:iconStyles}),warning:import_react$24.createElement(WarningIcon,{style:iconStyles}),error:import_react$24.createElement(ErrorIcon,{style:iconStyles}),info:import_react$24.createElement(InfoIcon,{style:iconStyles})};function createChainedFunction(e,t){return e.reduce(function(e,n){return n==null?e:function(){var a=[...arguments],o=[].concat(a);t&&o.indexOf(t)===-1&&o.push(t),e.apply(this,o),n.apply(this,o)}},function(){})}var useEnhancedEffect=typeof window<`u`?import_react$24.useLayoutEffect:import_react$24.useEffect;function useEventCallback(e){var t=(0,import_react$24.useRef)(e);return useEnhancedEffect(function(){t.current=e}),(0,import_react$24.useCallback)(function(){return t.current.apply(void 0,arguments)},[])}var Snackbar=(0,import_react$24.forwardRef)(function(e,t){var n=e.children,a=e.autoHideDuration,o=e.ClickAwayListenerProps,s=e.disableWindowBlurListener,l=s!==void 0&&s,u=e.onClose,d=e.onMouseEnter,f=e.onMouseLeave,m=e.open,h=e.resumeHideDuration,v=_objectWithoutPropertiesLoose$2(e,[`children`,`autoHideDuration`,`ClickAwayListenerProps`,`disableWindowBlurListener`,`onClose`,`onMouseEnter`,`onMouseLeave`,`open`,`resumeHideDuration`]),y=(0,import_react$24.useRef)(),b=useEventCallback(function(){u&&u.apply(void 0,arguments)}),x=useEventCallback(function(e){!u||e==null||(clearTimeout(y.current),y.current=setTimeout(function(){b(null,REASONS.TIMEOUT)},e))});(0,import_react$24.useEffect)(function(){return m&&x(a),function(){clearTimeout(y.current)}},[m,a,x]);var S=function(){clearTimeout(y.current)},C=(0,import_react$24.useCallback)(function(){a!=null&&x(h??a*.5)},[a,h,x]);return(0,import_react$24.useEffect)(function(){if(!l&&m)return window.addEventListener(`focus`,C),window.addEventListener(`blur`,S),function(){window.removeEventListener(`focus`,C),window.removeEventListener(`blur`,S)}},[l,C,m]),(0,import_react$24.createElement)(ClickAwayListener,_extends$2({onClickAway:function(e){u&&u(e,REASONS.CLICKAWAY)}},o),(0,import_react$24.createElement)(`div`,_extends$2({onMouseEnter:function(e){d&&d(e),S()},onMouseLeave:function(e){f&&f(e),C()},ref:t},v),n))}),componentName$1=`SnackbarItem`,classes$1={contentRoot:componentName$1+`-contentRoot`,lessPadding:componentName$1+`-lessPadding`,variantSuccess:componentName$1+`-variantSuccess`,variantError:componentName$1+`-variantError`,variantInfo:componentName$1+`-variantInfo`,variantWarning:componentName$1+`-variantWarning`,message:componentName$1+`-message`,action:componentName$1+`-action`,wrappedRoot:componentName$1+`-wrappedRoot`},StyledSnackbar=styled$1(Snackbar)(function(e){var t,n=e.theme,a=n.palette.mode||n.palette.type,o=emphasize(n.palette.background.default,a===`light`?.8:.98);return t={},t[`&.`+classes$1.wrappedRoot]={position:`relative`,transform:`translateX(0)`,top:0,right:0,bottom:0,left:0},t[`.`+classes$1.contentRoot]=_extends$2({},n.typography.body2,{backgroundColor:o,color:n.palette.getContrastText(o),alignItems:`center`,padding:`6px 16px`,borderRadius:`4px`,boxShadow:`0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)`}),t[`.`+classes$1.lessPadding]={paddingLeft:8*2.5},t[`.`+classes$1.variantSuccess]={backgroundColor:`#43a047`,color:`#fff`},t[`.`+classes$1.variantError]={backgroundColor:`#d32f2f`,color:`#fff`},t[`.`+classes$1.variantInfo]={backgroundColor:`#2196f3`,color:`#fff`},t[`.`+classes$1.variantWarning]={backgroundColor:`#ff9800`,color:`#fff`},t[`.`+classes$1.message]={display:`flex`,alignItems:`center`,padding:`8px 0`},t[`.`+classes$1.action]={display:`flex`,alignItems:`center`,marginLeft:`auto`,paddingLeft:16,marginRight:-8},t}),SnackbarItem=function(e){var t=e.classes,n=_objectWithoutPropertiesLoose$2(e,[`classes`]),a=(0,import_react$24.useRef)(),o=(0,import_react$24.useState)(!0),s=o[0],l=o[1];(0,import_react$24.useEffect)(function(){return function(){a.current&&clearTimeout(a.current)}},[]);var u=createChainedFunction([n.snack.onClose,n.onClose],n.snack.key),d=function(){n.snack.requestClose&&u(null,REASONS.INSTRCUTED)},f=function(){a.current=setTimeout(function(){l(!s)},125)},m=n.style,h=n.ariaAttributes,v=n.className,y=n.hideIconVariant,b=n.iconVariant,x=n.snack,S=n.action,C=n.content,T=n.TransitionComponent,E=n.TransitionProps,D=n.transitionDuration,O=_objectWithoutPropertiesLoose$2(n,[`style`,`dense`,`ariaAttributes`,`className`,`hideIconVariant`,`iconVariant`,`snack`,`action`,`content`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),k=x.key,j=x.open,M=x.className,N=x.variant,F=x.content,I=x.action,L=x.ariaAttributes,R=x.anchorOrigin,z=x.message,B=x.TransitionComponent,V=x.TransitionProps,H=x.transitionDuration,U=_objectWithoutPropertiesLoose$2(x,[`persist`,`key`,`open`,`entered`,`requestClose`,`className`,`variant`,`content`,`action`,`ariaAttributes`,`anchorOrigin`,`message`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),W=_extends$2({},defaultIconVariants,{},b)[N],G=_extends$2({"aria-describedby":`notistack-snackbar`},objectMerge(L,h)),ee=B||T||DEFAULTS.TransitionComponent,te=objectMerge(H,D,DEFAULTS.transitionDuration),K=_extends$2({direction:getTransitionDirection(R)},objectMerge(V,E)),q=I||S;typeof q==`function`&&(q=q(k));var ne=F||C;typeof ne==`function`&&(ne=ne(k,x.message));var re=[`onEnter`,`onEntering`,`onEntered`,`onExit`,`onExiting`,`onExited`].reduce(function(e,t){var a;return _extends$2({},e,(a={},a[t]=createChainedFunction([n.snack[t],n[t]],n.snack.key),a))},{});return import_react$24.createElement(Collapse,{unmountOnExit:!0,timeout:175,in:s,onExited:re.onExited},import_react$24.createElement(StyledSnackbar,Object.assign({},O,U,{open:j,className:clsx(t.root,classes$1.wrappedRoot,t[transformer.toAnchorOrigin(R)]),onClose:u}),import_react$24.createElement(ee,Object.assign({appear:!0,in:j,timeout:te},K,{onExit:re.onExit,onExiting:re.onExiting,onExited:f,onEnter:re.onEnter,onEntering:re.onEntering,onEntered:createChainedFunction([re.onEntered,d])}),ne||import_react$24.createElement(SnackbarContent,Object.assign({},G,{role:`alert`,style:m,className:clsx(classes$1.contentRoot,classes$1[transformer.toVariant(N)],t[transformer.toVariant(N)],v,M,!y&&W&&classes$1.lessPadding)}),import_react$24.createElement(`div`,{id:G[`aria-describedby`],className:classes$1.message},y?null:W,z),q&&import_react$24.createElement(`div`,{className:classes$1.action},q)))))},collapse={container:`& > .MuiCollapse-container, & > .MuiCollapse-root`,wrapper:`& > .MuiCollapse-container > .MuiCollapse-wrapper, & > .MuiCollapse-root > .MuiCollapse-wrapper`},xsWidthMargin=16,componentName$2=`SnackbarContainer`,classes$2={root:componentName$2+`-root`,rootDense:componentName$2+`-rootDense`,top:componentName$2+`-top`,bottom:componentName$2+`-bottom`,left:componentName$2+`-left`,right:componentName$2+`-right`,center:componentName$2+`-center`},Root$1=styled$1(`div`)(function(e){var t,n,a,o,s,l,u=e.theme;return l={},l[`&.`+classes$2.root]=(t={boxSizing:`border-box`,display:`flex`,maxHeight:`100%`,position:`fixed`,zIndex:u.zIndex.snackbar,height:`auto`,width:`auto`,transition:`top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms, margin 300ms ease 0ms, max-width 300ms ease 0ms`,pointerEvents:`none`},t[collapse.container]={pointerEvents:`all`},t[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.default+`px 0px`,transition:`padding 300ms ease 0ms`},t.maxWidth=`calc(100% - `+SNACKBAR_INDENTS.view.default*2+`px)`,t[u.breakpoints.down(`sm`)]={width:`100%`,maxWidth:`calc(100% - `+xsWidthMargin*2+`px)`},t),l[`&.`+classes$2.rootDense]=(n={},n[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.dense+`px 0px`},n),l[`&.`+classes$2.top]={top:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column`},l[`&.`+classes$2.bottom]={bottom:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column-reverse`},l[`&.`+classes$2.left]=(a={left:SNACKBAR_INDENTS.view.default},a[u.breakpoints.up(`sm`)]={alignItems:`flex-start`},a[u.breakpoints.down(`sm`)]={left:xsWidthMargin+`px`},a),l[`&.`+classes$2.right]=(o={right:SNACKBAR_INDENTS.view.default},o[u.breakpoints.up(`sm`)]={alignItems:`flex-end`},o[u.breakpoints.down(`sm`)]={right:xsWidthMargin+`px`},o),l[`&.`+classes$2.center]=(s={left:`50%`,transform:`translateX(-50%)`},s[u.breakpoints.up(`sm`)]={alignItems:`center`},s),l}),SnackbarContainer$1=import_react$24.memo(function(e){var t=e.className,n=e.anchorOrigin,a=e.dense,o=_objectWithoutPropertiesLoose$2(e,[`className`,`anchorOrigin`,`dense`]),s=clsx(classes$2[n.vertical],classes$2[n.horizontal],classes$2.root,t,a&&classes$2.rootDense);return import_react$24.createElement(Root$1,Object.assign({className:s},o))}),SnackbarProvider=function(e){_inheritsLoose(t,e);function t(t){var n=e.call(this,t)||this;return n.enqueueSnackbar=function(e,t){t===void 0&&(t={});var a=t,o=a.key,s=a.preventDuplicate,l=_objectWithoutPropertiesLoose$2(a,[`key`,`preventDuplicate`]),u=isDefined(o),d=u?o:new Date().getTime()+Math.random(),f=merge(l,n.props,DEFAULTS),m=_extends$2({key:d},l,{message:e,open:!0,entered:!1,requestClose:!1,variant:f(`variant`),anchorOrigin:f(`anchorOrigin`),autoHideDuration:f(`autoHideDuration`)});return l.persist&&(m.autoHideDuration=void 0),n.setState(function(t){if(s===void 0&&n.props.preventDuplicate||s){var a=function(t){return u?t.key===o:t.message===e},l=t.queue.findIndex(a)>-1,d=t.snacks.findIndex(a)>-1;if(l||d)return t}return n.handleDisplaySnack(_extends$2({},t,{queue:[].concat(t.queue,[m])}))}),d},n.handleDisplaySnack=function(e){return e.snacks.length>=n.maxSnack?n.handleDismissOldest(e):n.processQueue(e)},n.processQueue=function(e){var t=e.queue,n=e.snacks;return t.length>0?_extends$2({},e,{snacks:[].concat(n,[t[0]]),queue:t.slice(1,t.length)}):e},n.handleDismissOldest=function(e){if(e.snacks.some(function(e){return!e.open||e.requestClose}))return e;var t=!1,a=!1;e.snacks.reduce(function(e,t){return e+(t.open&&t.persist?1:0)},0)===n.maxSnack&&(a=!0);var o=e.snacks.map(function(e){return!t&&(!e.persist||a)?(t=!0,e.entered?(e.onClose&&e.onClose(null,REASONS.MAXSNACK,e.key),n.props.onClose&&n.props.onClose(null,REASONS.MAXSNACK,e.key),_extends$2({},e,{open:!1})):_extends$2({},e,{requestClose:!0})):_extends$2({},e)});return _extends$2({},e,{snacks:o})},n.handleEnteredSnack=function(e,t,a){if(!isDefined(a))throw Error(`handleEnteredSnack Cannot be called with undefined key`);n.setState(function(e){return{snacks:e.snacks.map(function(e){return e.key===a?_extends$2({},e,{entered:!0}):_extends$2({},e)})}})},n.handleCloseSnack=function(e,t,a){if(n.props.onClose&&n.props.onClose(e,t,a),t!==REASONS.CLICKAWAY){var o=a===void 0;n.setState(function(e){var t=e.snacks,n=e.queue;return{snacks:t.map(function(e){return!o&&e.key!==a?_extends$2({},e):e.entered?_extends$2({},e,{open:!1}):_extends$2({},e,{requestClose:!0})}),queue:n.filter(function(e){return e.key!==a})}})}},n.closeSnackbar=function(e){var t=n.state.snacks.find(function(t){return t.key===e});isDefined(e)&&t&&t.onClose&&t.onClose(null,REASONS.INSTRUCTED,e),n.handleCloseSnack(null,REASONS.INSTRUCTED,e)},n.handleExitedSnack=function(e,t,a){var o=t||a;if(!isDefined(o))throw Error(`handleExitedSnack Cannot be called with undefined key`);n.setState(function(e){var t=n.processQueue(_extends$2({},e,{snacks:e.snacks.filter(function(e){return e.key!==o})}));return t.queue.length===0?t:n.handleDismissOldest(t)})},n.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:n.enqueueSnackbar.bind(_assertThisInitialized$1(n)),closeSnackbar:n.closeSnackbar.bind(_assertThisInitialized$1(n))}},n}var n=t.prototype;return n.render=function(){var e=this,t=this.state.contextValue,n=this.props,a=n.iconVariant,o=n.dense,s=o===void 0?DEFAULTS.dense:o,l=n.hideIconVariant,u=l===void 0?DEFAULTS.hideIconVariant:l,d=n.domRoot,f=n.children,m=n.classes,h=m===void 0?{}:m,v=_objectWithoutPropertiesLoose$2(n,[`maxSnack`,`preventDuplicate`,`variant`,`anchorOrigin`,`iconVariant`,`dense`,`hideIconVariant`,`domRoot`,`children`,`classes`]),y=this.state.snacks.reduce(function(e,t){var n,a=originKeyExtractor(t.anchorOrigin),o=e[a]||[];return _extends$2({},e,(n={},n[a]=[].concat(o,[t]),n))},{}),b=Object.keys(y).map(function(t){var n=y[t];return import_react$24.createElement(SnackbarContainer$1,{key:t,dense:s,anchorOrigin:n[0].anchorOrigin,className:clsx(h.containerRoot,h[transformer.toContainerAnchorOrigin(t)])},n.map(function(t){return import_react$24.createElement(SnackbarItem,Object.assign({},v,{key:t.key,snack:t,dense:s,iconVariant:a,hideIconVariant:u,classes:omitContainerKeys(h),onClose:e.handleCloseSnack,onExited:createChainedFunction([e.handleExitedSnack,e.props.onExited]),onEntered:createChainedFunction([e.handleEnteredSnack,e.props.onEntered])}))}))});return import_react$24.createElement(SnackbarContext.Provider,{value:t},f,d?(0,import_react_dom.createPortal)(b,d):b)},_createClass$2(t,[{key:`maxSnack`,get:function(){return this.props.maxSnack||DEFAULTS.maxSnack}}]),t}(import_react$24.Component),withSnackbar=function(e){var t=import_react$24.forwardRef(function(t,n){return import_react$24.createElement(SnackbarContext.Consumer,null,function(a){return import_react$24.createElement(e,_extends$2({},t,{ref:n,enqueueSnackbar:a.enqueueSnackbar,closeSnackbar:a.closeSnackbar}))})});return(0,import_hoist_non_react_statics_cjs$1.default)(t,e),t},react_hotkeys_production_min_exports=__exportAll({GlobalHotKeys:()=>GlobalHotKeys$1$1,HotKeys:()=>HotKeys,IgnoreKeys:()=>IgnoreKeys$1,ObserveKeys:()=>ObserveKeys$1,configure:()=>configure$1,getApplicationKeyMap:()=>getApplicationKeyMap,recordKeyCombination:()=>recordKeyCombination,withHotKeys:()=>withHotKeys,withIgnoreKeys:()=>withIgnoreKeys,withObserveKeys:()=>withObserveKeys});function _typeof$4(e){return _typeof$4=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof$4(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),e}function _defineProperty$3(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _extends$1(){return _extends$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_extends$1.apply(this,arguments)}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t],a=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach(function(t){_defineProperty$3(e,t,n[t])})}return e}function _inherits(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function isNativeReflectConstruct(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _construct(e,t,n){return _construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&_setPrototypeOf(o,n.prototype),o},_construct.apply(null,arguments)}function _isNativeFunction(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function _wrapNativeSuper(e){var t=typeof Map==`function`?new Map:void 0;return _wrapNativeSuper=function(e){if(e===null||!_isNativeFunction(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct(e,arguments,_getPrototypeOf(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(n,e)},_wrapNativeSuper(e)}function _objectWithoutPropertiesLoose$1(e,t){if(e==null)return{};var n={},a=Object.keys(e),o,s;for(s=0;s<a.length;s++)o=a[s],!(t.indexOf(o)>=0)&&(n[o]=e[o]);return n}function _objectWithoutProperties$1(e,t){if(e==null)return{};var n=_objectWithoutPropertiesLoose$1(e,t),a,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)a=s[o],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function _assertThisInitialized(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function _possibleConstructorReturn(e,t){return t&&(typeof t==`object`||typeof t==`function`)?t:_assertThisInitialized(e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=_getPrototypeOf(e),e!==null););return e}function _get(e,t,n){return _get=typeof Reflect<`u`&&Reflect.get?Reflect.get:function(e,t,n){var a=_superPropBase(e,t);if(a){var o=Object.getOwnPropertyDescriptor(a,t);return o.get?o.get.call(n):o.value}},_get(e,t,n||e)}function _toConsumableArray$1(e){return _arrayWithoutHoles$1(e)||_iterableToArray$1(e)||_nonIterableSpread$1()}function _arrayWithoutHoles$1(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function _iterableToArray$1(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)===`[object Arguments]`)return Array.from(e)}function _nonIterableSpread$1(){throw TypeError(`Invalid attempt to spread non-iterable instance`)}function dictionaryFrom(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;return e.reduce(function(e,n){return e[n]=t||{value:n},e},{})}function resolveShiftedAlias(e){return ShiftedKeysDictionary[e]||[e.length===1?e.toUpperCase():e]}function hasKey(e,t){return e.hasOwnProperty(t)}function invertArrayDictionary(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(n,a){var o=e[a];return o.forEach(function(e){hasKey(n,e)||(n[e]=[]),n[e].push(a)}),t.includeOriginal&&(!hasKey(n,a)&&(n[a]=[]),n[a]=[].concat(_toConsumableArray$1(n[a]),_toConsumableArray$1(o))),n},{})}function resolveUnshiftedAlias(e){return UnshiftedKeysDictionary[e]||[e.length===1?e.toLowerCase():e]}function isString(e){return typeof e==`string`}function stripSuperfluousWhitespace(e){return isString(e)?e.trim().replace(/\s+/g,` `):e}function standardizeKeyName(e){var t=e.toLowerCase();return MousetrapToReactKeyNamesDictionary[t]||KeyShorthandDictionary[t]||(e.match(/^f\d+$/)?e.toUpperCase():e)}function isNonPrintableKeyName(e){return!!NonPrintableKeysDictionary[e]}function isCustomKeyName(e){return Configuration.option(`_customKeyNamesDict`)[e]}function isValidKey(e){return isNonPrintableKeyName(e)||String.fromCharCode(e.charCodeAt(0))===e||isCustomKeyName(e)}function normalizedCombinationId(e){return e.sort().join(`+`)}function parseCombination(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return e.replace(/^\+|(\s|[^+]\+)\+/,`$1plus`).split(`+`).reduce(function(e,n){var a=standardizeKeyName(n);if(t.ensureValidKeys&&!isValidKey(a))throw new InvalidKeyNameError;return e[a]=!0,e},{})}function resolveUnaltedAlias(e){return UnaltedKeysDictionary[e]||[e]}function resolveAltedAlias(e){return AltedKeysDictionary[e]||[e]}function resolveUnaltShiftedAlias(e){return UnaltShiftedKeysDictionary[e]||resolveUnshiftedAlias(e)}function resolveAltShiftedAlias(e){return AltShiftedKeysDictionary[e]||[e]}function resolveKeyAlias(e){return KeyOSAndLayoutAliasesDictionary$1[e]||[e]}function applicableAliasFunctions(e){if(e.Shift)return e.Alt?[resolveAltShiftedAlias,resolveUnaltShiftedAlias]:[resolveShiftedAlias,resolveUnshiftedAlias];if(e.Alt)return[resolveAltedAlias,resolveUnaltedAlias];var t=function(e){return[e]};return[t,t]}function isUndefined(e){return e===void 0}function isObject(e){return!Array.isArray(e)&&_typeof$4(e)===`object`&&e!==null}function isEmpty$2(e){return isObject(e)?Object.keys(e).length===0:!e||e.length===0}function size(e){return isObject(e)?Object.keys(e).length:e.length}function buildKeyAliases(e){return Object.keys(e).reduce(function(t,n){return resolveKeyAlias(n).forEach(function(a){applicableAliasFunctions(e).forEach(function(e){e(a).forEach(function(e){(e!==n||n!==a)&&(t[e]=n)})})}),t},{})}function arrayFrom(e){return Array.isArray(e)?e:e?[e]:[]}function without(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:[],n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=dictionaryFrom(arrayFrom(t));return Array.isArray(e)?e.reduce(function(e,t){return a[t]&&(n.stringifyFirst||a[t].value===t)||e.push(t),e},[]):isObject(e)?Object.keys(e).reduce(function(t,n){return a[n]||(t[n]=e[n]),t},{}):e}function removeAtIndex(e,t){return[].concat(_toConsumableArray$1(e.slice(0,t)),_toConsumableArray$1(e.slice(t+1)))}function normalizeActionOptions(e,t){if(isObject(e)){var n=e.sequence,a=e.action;return{keySequence:n,keyEventType:isUndefined(a)?KeyEventType[t.defaultKeyEvent]:KeyEventType[a]}}return{keySequence:e,keyEventType:KeyEventType[t.defaultKeyEvent]}}function indexFromEnd(e,t){return e[e.length-(t+1)]}function keyupIsHiddenByCmd(e){return e.length===1||hasKey(KeysWithKeyUpHiddenByCmd,e)}function canBeMatched(e,t){var n=size(t.keyDictionary);return Configuration.option(`allowCombinationSubmatches`)||keyUpIsBeingHidden(e)?e.getNumberOfKeys()>=n:e.getNumberOfKeys()===n}function keyUpIsBeingHidden(e){return!!e.isKeyStillPressed(`Meta`)&&e.some(function(e){return keyupIsHiddenByCmd(e)})}function copyAttributes(e,t,n){return n.forEach(function(n){hasKey(e,n)&&(t[n]=e[n])}),t}function describeKeyEventType(e){switch(parseInt(e,10)){case 0:return`keydown`;case 1:return`keypress`;default:return`keyup`}}function hasKeyPressEvent(e){return!isNonPrintableKeyName(e)}function stateFromEvent(e){return e.simulated?KeyEventState.simulated:KeyEventState.seen}function getEventCharCode(e){var t,n=e.keyCode;return`charCode`in e?(t=e.charCode,t===0&&n===13&&(t=13)):t=n,t===10&&(t=13),32<=t||t===13?t:0}function reactsGetEventKey(e){if(e.key){var t=normalizeKey[e.key]||e.key;if(t!==`Unidentified`)return t}if(e.type===`keypress`){var n=getEventCharCode(e);return n===13?`Enter`:String.fromCharCode(n)}return e.type===`keydown`||e.type===`keyup`?translateToKey[e.keyCode]||`Unidentified`:``}function getKeyName(e){var t=function(){var t=Configuration.option(`customKeyCodes`),n=e.keyCode||e.charCode;return hasKey(t,n)?t[n]:e.nativeEvent?e.key:reactsGetEventKey(e)}();return t===`+`?`plus`:t}function isCmdKey(e){return e===`Meta`}function contains(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{};return Array.isArray(e)||isString(e)?n.stringifyFirst?!isUndefined(e.find(function(e){return e.toString()===t.toString()})):e.indexOf(t)!==-1:isObject(e)?hasKey(e,t):n.stringifyFirst?e.toString()===t.toString():e===t}function capitalize$1(e){return e.replace(/\b\w/g,function(e){return e.toUpperCase()})}function normalizeEventName(e){return`${capitalize$1(e.slice(0,3))}${capitalize$1(e.slice(3))}`}function isFromFocusOnlyComponent(e){return!isUndefined(e)}function backwardsCompatibleContext(e,t){var n=t.deprecatedAPI,a=n.contextTypes,o=n.childContextTypes,s=t.newAPI.contextType;if(import_react.createContext===void 0)e.contextTypes=a,e.childContextTypes=o,e.prototype.getChildContext=function(){return this._childContext};else{var l=import_react.createContext(s);e.contextType=l,e.prototype._originalRender=e.prototype.render,e.prototype.render=function(){var e=this._originalRender();return e?import_react.createElement(l.Provider,{value:this._childContext},e):null}}return e}function withHotKeys(e){function t(e,t){return _objectSpread$1({},o[e]||{},t[e]||{})}function n(e){return t(`handlers`,e)}function a(e){return t(`keyMap`,e)}var o=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},s=function(t){function o(e){var t;return _classCallCheck$1(this,o),t=_possibleConstructorReturn(this,_getPrototypeOf(o).call(this,e)),t._handleFocus=t._handleFocus.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleBlur=t._handleBlur.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyDown=t._handleKeyDown.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyPress=t._handleKeyPress.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyUp=t._handleKeyUp.bind(_assertThisInitialized(_assertThisInitialized(t))),t._componentIsFocused=t._componentIsFocused.bind(_assertThisInitialized(_assertThisInitialized(t))),t._id=KeyEventManager.getInstance().registerKeyMap(e.keyMap),t._childContext={hotKeysParentId:t._id},t}return _inherits(o,t),_createClass$1(o,[{key:`render`,value:function(){var t=this.props;t.keyMap,t.handlers,t.allowChanges,t.root;var n=_objectWithoutProperties$1(t,[`keyMap`,`handlers`,`allowChanges`,`root`]),a={onFocus:this._wrapFunction(`onFocus`,this._handleFocus),onBlur:this._wrapFunction(`onBlur`,this._handleBlur),tabIndex:Configuration.option(`defaultTabIndex`)};return this._shouldBindKeyListeners()&&(a.onKeyDown=this._handleKeyDown,a.onKeyPress=this._handleKeyPress,a.onKeyUp=this._handleKeyUp),import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_shouldBindKeyListeners`,value:function(){var e=a(this.props);return!isEmpty$2(e)||this.props.root||Configuration.option(`enableHardSequences`)&&this._handlersIncludeHardSequences(e,n(this.props))}},{key:`_handlersIncludeHardSequences`,value:function(e,t){return Object.keys(t).some(function(t){return!e[t]&&KeyCombinationSerializer.isValidKeySerialization(t)})}},{key:`_wrapFunction`,value:function(e,t){var n=this;return typeof this.props[e]==`function`?function(a){n.props[e](a),t(a)}:t}},{key:`_focusTreeIdsPush`,value:function(e){this._focusTreeIds||=[],this._focusTreeIds.push(e)}},{key:`_focusTreeIdsShift`,value:function(){this._focusTreeIds&&this._focusTreeIds.shift()}},{key:`_getFocusTreeId`,value:function(){if(this._focusTreeIds)return this._focusTreeIds[0]}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterKeyMap(this._id,this.props.keyMap),this._componentIsFocused()&&(this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`))){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledHotKeys(this._getFocusTreeId(),this._id,n,a,this._getComponentOptions())}}},{key:`_componentIsFocused`,value:function(){return!0===this._focused}},{key:`componentDidMount`,value:function(){var e=KeyEventManager.getInstance(),t=this.context.hotKeysParentId;e.registerComponentMount(this._id,t)}},{key:`_handleFocus`,value:function(){if(this.props.onFocus){var e;(e=this.props).onFocus.apply(e,arguments)}var t=KeyEventManager.getInstance().enableHotKeys(this._id,a(this.props),n(this.props),this._getComponentOptions());isUndefined(t)||this._focusTreeIdsPush(t),this._focused=!0}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterKeyMap(this._id),e.registerComponentUnmount(),this._handleBlur()}},{key:`_handleBlur`,value:function(){if(this.props.onBlur){var e;(e=this.props).onBlur.apply(e,arguments)}KeyEventManager.getInstance().disableHotKeys(this._getFocusTreeId(),this._id)||this._focusTreeIdsShift(),this._focused=!1}},{key:`_handleKeyDown`,value:function(e){KeyEventManager.getInstance().handleKeydown(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyPress`,value:function(e){KeyEventManager.getInstance().handleKeyPress(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyUp`,value:function(e){KeyEventManager.getInstance().handleKeyUp(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),o}(import_react.PureComponent);return _defineProperty$3(s,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,onFocus:import_prop_types.default.func,onBlur:import_prop_types.default.func,allowChanges:import_prop_types.default.bool,root:import_prop_types.default.bool}),backwardsCompatibleContext(s,{deprecatedAPI:{contextTypes:{hotKeysParentId:import_prop_types.default.number},childContextTypes:{hotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{hotKeysParentId:void 0}}})}function withHotKeysIgnoreOverride(e){var t,n,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},o=2<arguments.length?arguments[2]:void 0;return n=t=function(t){function n(e){var t;return _classCallCheck$1(this,n),t=_possibleConstructorReturn(this,_getPrototypeOf(n).call(this,e)),t._handleKeyEvent=t._handleKeyEvent.bind(_assertThisInitialized(_assertThisInitialized(t))),t._reloadDictionaries=t._reloadDictionaries.bind(_assertThisInitialized(_assertThisInitialized(t))),t}return _inherits(n,t),_createClass$1(n,[{key:`render`,value:function(){var t=this.props;t.only,t.except;var n=_objectWithoutProperties$1(t,[`only`,`except`]),a={onKeyDown:this._handleKeyEvent,onKeyPress:this._handleKeyEvent,onKeyUp:this._handleKeyEvent,onFocus:this._reloadDictionaries};return import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_reloadDictionaries`,value:function(){var e=this.props,t=e.only,n=e.except;this._onlyDict=keyDictionary(t),this._exceptDict=keyDictionary(n)}},{key:`_shouldIgnoreEvent`,value:function(e){var t=e.key;return isEmpty$2(this._onlyDict)?!!isEmpty$2(this._exceptDict)||!hasKey(this._exceptDict,t):isEmpty$2(this._exceptDict)?hasKey(this._onlyDict,t):hasKey(this._onlyDict,t)&&!hasKey(this._exceptDict,t)}},{key:`_handleKeyEvent`,value:function(e){this._shouldIgnoreEvent(e)&&KeyEventManager.getInstance()[o](e)}}]),n}(import_react.PureComponent),_defineProperty$3(t,`propTypes`,{only:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)]),except:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)])}),_defineProperty$3(t,`defaultProps`,a),n}function keyDictionary(e){return arrayFrom(e).reduce(function(e,t){var n=standardizeKeyName(t);if(!isValidKey(n))throw new InvalidKeyNameError(t);return[resolveAltShiftedAlias,resolveUnaltShiftedAlias,resolveShiftedAlias,resolveUnshiftedAlias,resolveAltedAlias,resolveUnaltedAlias].forEach(function(t){e[t(n)]=!0}),e},{})}function withIgnoreKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`ignoreEvent`)}function withObserveKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`observeIgnoredEvents`)}function configure$1(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};Configuration.init(e)}function getApplicationKeyMap(){return KeyEventManager.getInstance().getApplicationKeyMap()}function recordKeyCombination(e){return KeyEventManager.getInstance().addKeyCombinationListener(e)}var import_prop_types,import_react,_defaultConfiguration,_configuration,Configuration,Logger,KeyEventType,ModifierFlagsDictionary,ShiftedKeysDictionary,UnshiftedKeysDictionary,KeyOSAndLayoutAliasesDictionary$1,MousetrapToReactKeyNamesDictionary,KeyShorthandDictionary,translateToKey,NonPrintableKeysDictionary,InvalidKeyNameError,KeySequenceParser,AltedKeysDictionary,UnaltedKeysDictionary,AltShiftedKeysDictionary,UnaltShiftedKeysDictionary,KeyCombinationSerializer,KeyEventSequenceIndex,KeyEventState,KeyEventStateArrayManager,KeyCombination,KeyHistory,Registry,ComponentTree,ComponentOptionsListIterator,ComponentOptionsList,KeysWithKeyUpHiddenByCmd,i,KeyCombinationMatcher,KeyHistoryMatcher,ActionResolver,SEQUENCE_ATTRIBUTES,KEYMAP_ATTRIBUTES,AbstractKeyEventStrategy,KeyEventCounter,normalizeKey,EventResponse,EventPropagator,FocusOnlyKeyEventStrategy,GlobalKeyEventStrategy,KeyEventManager,HotKeys,GlobalHotKeys$2,GlobalHotKeys$1$1,IgnoreKeys$1,ObserveKeys$1,init_react_hotkeys_production_min=__esmMin((()=>{for(import_prop_types=__toESM(require_prop_types()),import_react=__toESM(require_react()),_defaultConfiguration={logLevel:`warn`,defaultKeyEvent:`keydown`,defaultComponent:`div`,defaultTabIndex:`-1`,ignoreTags:[`input`,`select`,`textarea`],enableHardSequences:!1,ignoreKeymapAndHandlerChangesByDefault:!0,ignoreEventsCondition:function(e){var t=e.target;if(t&&t.tagName){var n=t.tagName.toLowerCase();return Configuration.option(`_ignoreTagsDict`)[n]||t.isContentEditable}return!1},ignoreRepeatedEventsWhenKeyHeldDown:!0,simulateMissingKeyPressEvents:!0,stopEventPropagationAfterHandling:!0,stopEventPropagationAfterIgnoring:!0,allowCombinationSubmatches:!1,customKeyCodes:{}},_configuration=_objectSpread$1({},_defaultConfiguration),_configuration._ignoreTagsDict=dictionaryFrom(_configuration.ignoreTags,!0),Configuration=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`init`,value:function(e){var t=this,n=e.ignoreTags,a=e.customKeyCodes;n&&(e._ignoreTagsDict=dictionaryFrom(e.ignoreTags)),a&&(e._customKeyNamesDict=dictionaryFrom(Object.values(e.customKeyCodes))),[`verbose`,`debug`,`info`].indexOf(e.logLevel)!==-1&&console.warn(`React HotKeys: You have requested log level '${e.logLevel}' but for performance reasons, logging below severity level 'warning' is disabled in production. Please use the development build for complete logs.`),Object.keys(e).forEach(function(n){t.set(n,e[n])})}},{key:`set`,value:function(e,t){_configuration[e]=t}},{key:`reset`,value:function(e){_configuration[e]=_defaultConfiguration[e]}},{key:`option`,value:function(e){return _configuration[e]}}]),e}(),Logger=function(){function e(){var t=this,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:`warn`;if(_classCallCheck$1(this,e),_defineProperty$3(this,`verbose`,this.noop),_defineProperty$3(this,`debug`,this.noop),_defineProperty$3(this,`info`,this.noop),_defineProperty$3(this,`warn`,this.noop),_defineProperty$3(this,`error`,this.noop),this.logLevel=this.constructor.levels[n],this.logLevel>=this.constructor.levels.error)this.error=console.error;else return;if(this.logLevel>=this.constructor.levels.warn)this.warn=console.warn;else return;[`info`,`debug`,`verbose`].some(function(e){return!(t.logLevel>=t.constructor.levels[e])||(t[e]=console.log,!1)})}return _createClass$1(e,[{key:`noop`,value:function(){}}]),e}(),_defineProperty$3(Logger,`logIcons`,[`📕`,`📗`,`📘`,`📙`]),_defineProperty$3(Logger,`componentIcons`,[`🔺`,`⭐️`,`🔷`,`🔶`,`⬛️`]),_defineProperty$3(Logger,`eventIcons`,[`❤️`,`💚`,`💙`,`💛`,`💜`,`🧡`]),_defineProperty$3(Logger,`levels`,{none:0,error:1,warn:2,info:3,debug:4,verbose:5}),KeyEventType={keydown:0,keypress:1,keyup:2},ModifierFlagsDictionary={Shift:[`shiftKey`],Meta:[`metaKey`],Control:[`ctrlKey`],Alt:[`altKey`]},ShiftedKeysDictionary={"`":[`~`],1:[`!`],2:[`@`,`"`],3:[`#`,`£`],4:[`$`],5:[`%`],6:[`^`],7:[`&`],8:[`*`],9:[`(`],0:[`)`],"-":[`_`],"=":[`plus`],";":[`:`],"'":[`"`,`@`],",":[`<`],".":[`>`],"/":[`?`],"\\":[`|`],"[":[`{`],"]":[`}`],"#":[`~`]},UnshiftedKeysDictionary=invertArrayDictionary(ShiftedKeysDictionary),KeyOSAndLayoutAliasesDictionary$1=invertArrayDictionary({},{includeOriginal:!0}),MousetrapToReactKeyNamesDictionary={tab:`Tab`,capslock:`CapsLock`,shift:`Shift`,meta:`Meta`,alt:`Alt`,ctrl:`Control`,space:` `,spacebar:` `,escape:`Escape`,esc:`Escape`,left:`ArrowLeft`,right:`ArrowRight`,up:`ArrowUp`,down:`ArrowDown`,return:`Enter`,del:`Delete`,command:`Meta`,option:`Alt`,enter:`Enter`,backspace:`Backspace`,ins:`Insert`,pageup:`PageUp`,pagedown:`PageDown`,end:`End`,home:`Home`,contextmenu:`ContextMenu`,numlock:`Clear`},KeyShorthandDictionary={cmd:`Meta`},translateToKey={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},NonPrintableKeysDictionary=dictionaryFrom(Object.values(translateToKey),!0),InvalidKeyNameError=function(e){function t(){var e,n;_classCallCheck$1(this,t);var a=[...arguments];return n=_possibleConstructorReturn(this,(e=_getPrototypeOf(t)).call.apply(e,[this].concat(a))),_defineProperty$3(_assertThisInitialized(_assertThisInitialized(n)),`name`,`InvalidKeyNameError`),n}return _inherits(t,e),t}(_wrapNativeSuper(Error)),KeySequenceParser=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`parse`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=stripSuperfluousWhitespace(e).split(` `);try{var a=n.slice(0,n.length-1),o=n[n.length-1],s=a.map(function(e){var n=parseCombination(e,t);return normalizedCombinationId(Object.keys(n))}).join(` `),l=parseCombination(o,t),u={id:normalizedCombinationId(Object.keys(l)),keyDictionary:l,keyEventType:t.keyEventType,size:Object.keys(l).length};return{sequence:{prefix:s,size:a.length+1},combination:u}}catch{return{sequence:null,combination:null}}}}]),e}(),AltedKeysDictionary={"`":["`"],1:[`¡`],2:[`™`],3:[`£`],4:[`¢`],5:[`∞`],6:[`§`],7:[`¶`],8:[`•`],9:[`ª`],0:[`º`],"-":[`–`],"=":[`≠`],a:[`å`],b:[`∫`],c:[`ç`],d:[`∂`],e:[`´`],f:[`ƒ`],g:[`©`],h:[`˙`],i:[`ˆ`],j:[`∆`],k:[`˚`],l:[`¬`],m:[`µ`],n:[`˜`],o:[`ø`],p:[`π`],q:[`œ`],r:[`®`],s:[`ß`],t:[`†`],u:[`¨`],v:[`√`],w:[`∑`],x:[`≈`],y:[`¥`],z:[`Ω`],"[":[`“`],"]":[`‘`],"\\":[`«`],"'":[`æ`],";":[`…`],",":[`≤`],".":[`≥`],"/":[`÷`]},UnaltedKeysDictionary=invertArrayDictionary(AltedKeysDictionary),AltShiftedKeysDictionary={"`":["`"],1:[`⁄`],2:[`€`],3:[`‹`],4:[`›`],5:[`fi`],6:[`fl`],7:[`‡`],8:[`°`],9:[`·`],0:[`‚`],"-":[`—`],"=":[`±`],a:[`Å`],b:[`ı`],c:[`Ç`],d:[`Î`],e:[`´`],f:[`Ï`],g:[`˝`],h:[`Ó`],i:[`ˆ`],j:[`Ô`],k:[``],l:[`Ò`],m:[`Â`],n:[`˜`],o:[`Ø`],p:[`π`],q:[`Œ`],r:[`‰`],s:[`Í`],t:[`Î`],u:[`¨`],v:[`◊`],w:[`„`],x:[`˛`],y:[`Á`],z:[`¸`],"[":[`”`],"]":[`’`],"\\":[`»`],"'":[`Æ`],";":[`Ú`],",":[`¯`],".":[`˘`]},UnaltShiftedKeysDictionary=invertArrayDictionary(AltShiftedKeysDictionary),KeyCombinationSerializer=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`serialize`,value:function(e){var t=e.Shift,n=e.Alt,a={};return Object.keys(e).sort().forEach(function(e){var o=[];if(t)if(n){var s=resolveUnaltShiftedAlias(e),l=resolveAltShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(s),_toConsumableArray$1(l))}else{var u=resolveUnshiftedAlias(e),d=resolveShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(u),_toConsumableArray$1(d))}else if(n){var f=resolveUnaltedAlias(e),m=resolveAltedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(f),_toConsumableArray$1(m))}else{o.push(e);var h=KeyOSAndLayoutAliasesDictionary$1[e];h&&(o=[].concat(_toConsumableArray$1(o),_toConsumableArray$1(h)))}var v=Object.keys(a);0<v.length?v.forEach(function(e){o.forEach(function(t){a[e+`+${t}`]=_objectSpread$1({},a[e],_defineProperty$3({},t,!0))}),delete a[e]}):o.forEach(function(e){a[e]=_defineProperty$3({},e,!0)})}),Object.values(a).map(function(e){return Object.keys(e).sort().join(`+`)})}},{key:`isValidKeySerialization`,value:function(e){return 0<e.length&&!!KeySequenceParser.parse(e,{ensureValidKeys:!0}).combination}}]),e}(),KeyEventSequenceIndex={previous:0,current:1},KeyEventState={unseen:0,seen:1,simulated:2},KeyEventStateArrayManager=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`newRecord`,value:function(e,t){var n=[KeyEventState.unseen,KeyEventState.unseen,KeyEventState.unseen];if(!isUndefined(e))for(var a=0;a<=e;a++)n[a]=t;return n}},{key:`setBit`,value:function(e,t,n){return e[t]=n,e}},{key:`clone`,value:function(e){for(var t=this.newRecord(),n=0;n<e.length;n++)t[n]=e[n];return t}}]),e}(),KeyCombination=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this._keys=t,this._includesKeyUp=!1,this._update()}return _createClass$1(e,[{key:`getIds`,value:function(){return this._ids}},{key:`getKeyAliases`,value:function(){return this._keyAliases}},{key:`getNormalizedKeyName`,value:function(e){return this._keys[e]?e:this._keyAliases[e]||e}},{key:`getNumberOfKeys`,value:function(){return size(this._keys)}},{key:`any`,value:function(){return 0<Object.keys(this._getKeyStates()).length}},{key:`isEnding`,value:function(){return this._includesKeyUp}},{key:`hasEnded`,value:function(){return isEmpty$2(this.keysStillPressedDict())}},{key:`addKey`,value:function(e,t){this._setKeyState(e,[KeyEventStateArrayManager.newRecord(),KeyEventStateArrayManager.newRecord(KeyEventType.keydown,t)])}},{key:`setKeyState`,value:function(e,t,n){var a=this._getKeyState(e);if(this.isKeyIncluded(e)){var o=KeyEventStateArrayManager.clone(a[1]),s=KeyEventStateArrayManager.clone(o);KeyEventStateArrayManager.setBit(s,t,n),this._setKeyState(e,[o,s])}else this.addKey(e,n);t===KeyEventType.keyup&&(this._includesKeyUp=!0)}},{key:`forEachKey`,value:function(e){return Object.keys(this._keys).forEach(e)}},{key:`some`,value:function(e){return Object.keys(this._keys).some(e)}},{key:`getKeyDictionary`,value:function(){return dictionaryFrom(Object.keys(this._getKeyStates()),!0)}},{key:`keysStillPressedDict`,value:function(){var e=this;return Object.keys(this._keys).reduce(function(t,n){return e.isKeyStillPressed(n)&&(t[n]=e._getKeyState(n)),t},{})}},{key:`isKeyIncluded`,value:function(e){return!!this._getKeyState(e)}},{key:`isKeyStillPressed`,value:function(e){return this.isEventTriggered(e,KeyEventType.keypress)&&!this.isKeyReleased(e)}},{key:`isKeyReleased`,value:function(e){return this.isEventTriggered(e,KeyEventType.keyup)}},{key:`isEventTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.current,t)}},{key:`wasEventPreviouslyTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.previous,t)}},{key:`isKeyPressSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keypress)}},{key:`isKeyUpSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keyup)}},{key:`describe`,value:function(){return this.getIds()[0]}},{key:`toJSON`,value:function(){return{keys:this._getKeyStates(),ids:this.getIds(),keyAliases:this.getKeyAliases()}}},{key:`_getKeyStateType`,value:function(e,t,n){var a=this._getKeyState(e);return a&&a[t][n]}},{key:`_update`,value:function(){this._ids=KeyCombinationSerializer.serialize(this._keys),this._keyAliases=buildKeyAliases(this._keys)}},{key:`_isKeyEventSimulated`,value:function(e,t){return this.isEventTriggered(e,t)===KeyEventState.simulated}},{key:`_getKeyStates`,value:function(){return this._keys}},{key:`_getKeyState`,value:function(e){var t=this._keys[e];if(t)return t;var n=this._keyAliases[e];if(n)return this._keys[n]}},{key:`_setKeyState`,value:function(e,t){var n=this.getNormalizedKeyName(e);this._keys[n]=t,this._update()}}]),e}(),KeyHistory=function(){function e(t){var n=t.maxLength,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;_classCallCheck$1(this,e),this._records=[],this._maxLength=n,a?this._push(a):this._push(new KeyCombination)}return _createClass$1(e,[{key:`getMostRecentCombinations`,value:function(e){return this._records.slice(-e,-1)}},{key:`any`,value:function(){return this._records.some(function(e){return e.any()})}},{key:`getLength`,value:function(){return this._records.length}},{key:`getCurrentCombination`,value:function(){return this._records[this.getLength()-1]}},{key:`addKeyToCurrentCombination`,value:function(e,t,n){this._ensureInitialKeyCombination(),this.getCurrentCombination().setKeyState(e,t,n)}},{key:`setMaxLength`,value:function(e){this._maxLength=e,this._trimHistory()}},{key:`startNewKeyCombination`,value:function(e,t){this._ensureInitialKeyCombination();var n=new KeyCombination(this.getCurrentCombination().keysStillPressedDict());n.addKey(e,t),this._push(n)}},{key:`toJSON`,value:function(){return this._records.map(function(e){return e.toJSON()})}},{key:`_ensureInitialKeyCombination`,value:function(){this.getLength()===0&&this._push(new KeyCombination)}},{key:`_push`,value:function(e){this._trimHistory(),this._records.push(e)}},{key:`_trimHistory`,value:function(){for(;this.getLength()>this._maxLength;)this._shift()}},{key:`_shift`,value:function(){this._records.shift()}}]),e}(),Registry=function(){function e(){_classCallCheck$1(this,e),this._registry={}}return _createClass$1(e,[{key:`get`,value:function(e){return this._registry[e]}},{key:`set`,value:function(e,t){this._registry[e]=t}},{key:`remove`,value:function(e){delete this._registry[e]}},{key:`toJSON`,value:function(){return this._registry}}]),e}(),ComponentTree=function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`add`,value:function(e,n){_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,{childIds:[],parentId:null,keyMap:n})}},{key:`update`,value:function(e,n){var a=_get(_getPrototypeOf(t.prototype),`get`,this).call(this,e);_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,_objectSpread$1({},a,{keyMap:n}))}},{key:`setParent`,value:function(e,t){this.get(e).parentId=t,this._addChildId(t,e)}},{key:`remove`,value:function(e){var n=this._getParentId(e);this._removeChildId(n,e),_get(_getPrototypeOf(t.prototype),`remove`,this).call(this,e)}},{key:`_getParentId`,value:function(e){var t=this.get(e);return t&&t.parentId}},{key:`_addChildId`,value:function(e,t){this.get(e).childIds.push(t)}},{key:`_removeChildId`,value:function(e,t){var n=this.get(e);n&&(n.childIds=without(n.childIds,t))}}]),t}(Registry),ComponentOptionsListIterator=function(){function e(t){_classCallCheck$1(this,e),this._list=t,this._position=-1}return _createClass$1(e,[{key:`getPosition`,value:function(){return this._position}},{key:`getComponent`,value:function(){return this._list.getAtPosition(this.getPosition())}},{key:`next`,value:function(){return this.getPosition()+1<this._list.getLength()?(this._position++,this.getComponent()):null}}]),e}(),ComponentOptionsList=function(){function e(){_classCallCheck$1(this,e),this._list=[],this._idToIndex={},this._longestSequence=1,this._longestSequenceComponentId=null,this._keyMapEventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`getNewIterator`,value:function(){return new ComponentOptionsListIterator(this)}},{key:`add`,value:function(e,t,n,a){if(this.containsId(e))return this.update(e,t,n,a);var o=this._build(e,t,n,a);this._list.push(o);var s=this._getLastIndex();return this._idToIndex[e]=s}},{key:`containsId`,value:function(e){return!!this.get(e)}},{key:`get`,value:function(e){return this.getAtPosition(this.getIndexById(e))}},{key:`getIndexById`,value:function(e){return this._idToIndex[e]}},{key:`update`,value:function(e,t,n,a){var o=this._isUpdatingComponentWithLongestSequence(e),s=this.getLongestSequence(),l=this._build(e,t,n,a);o&&l.sequenceLength!==s&&(l.sequenceLength>s?this._longestSequence=l.sequenceLength:this._recalculateLongestSequence()),this._list[this.getIndexById(e)]=l}},{key:`remove`,value:function(e){var t=this._isUpdatingComponentWithLongestSequence(e);this.removeAtPosition(this.getIndexById(e)),t&&this._recalculateLongestSequence()}},{key:`any`,value:function(){return this.getLength()!==0}},{key:`isRoot`,value:function(e){return this.getIndexById(e)>=this.getLength()-1}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`anyActionsForEventType`,value:function(e){return!!this._keyMapEventRecord[e]}},{key:`getLength`,value:function(){return this._list.length}},{key:`getAtPosition`,value:function(e){return this._list[e]}},{key:`removeAtPosition`,value:function(e){this._list=removeAtIndex(this._list,e);for(var t=e;t<this.getLength();)this._idToIndex[this.getAtPosition(t).componentId]=t,t++}},{key:`toJSON`,value:function(){return this._list}},{key:`_getLastIndex`,value:function(){return this.getLength()-1}},{key:`_build`,value:function(e,t,n,a){var o=this._applyHardSequences(t,n),s=o.keyMap,l=o.handlers;return{actions:this._buildActionDictionary(_objectSpread$1({},t,s),a,e),handlers:l,componentId:e,options:a}}},{key:`_isUpdatingComponentWithLongestSequence`,value:function(e){return e===this._getLongestSequenceComponentId()}},{key:`_getLongestSequenceComponentId`,value:function(){return this._longestSequenceComponentId}},{key:`_recalculateLongestSequence`,value:function(){for(var e=this.getNewIterator();e.next();){var t=e.getComponent(),n=t.longestSequence,a=t.componentId;n>this.getLongestSequence()&&(this._longestSequenceComponentId=a,this._longestSequence=n)}}},{key:`_applyHardSequences`,value:function(e,t){return Configuration.option(`enableHardSequences`)?Object.keys(t).reduce(function(n,a){return!e[a]&&KeyCombinationSerializer.isValidKeySerialization(a)&&(n.keyMap[a]=a),n.handlers[a]=t[a],n},{keyMap:{},handlers:{}}):{keyMap:e,handlers:t}}},{key:`_buildActionDictionary`,value:function(e,t,n){var a=this;return Object.keys(e).reduce(function(o,s){var l=e[s];return function(){return isObject(l)&&hasKey(l,`sequences`)?arrayFrom(l.sequences):arrayFrom(l)}().forEach(function(e){var l=normalizeActionOptions(e,t),u=l.keySequence,d=l.keyEventType;a._addActionOptions(o,n,s,u,d)}),o},{})}},{key:`_addActionOptions`,value:function(e,t,n,a,o){var s=KeySequenceParser.parse(a,{keyEventType:o}),l=s.sequence,u=s.combination;l.size>this.getLongestSequence()&&(this._longestSequence=l.size,this._longestSequenceComponentId=t),this._keyMapEventRecord[o]=KeyEventState.seen,e[n]||(e[n]=[]),e[n].push(_objectSpread$1({prefix:l.prefix,actionName:n,sequenceLength:l.size},u))}}]),e}(),KeysWithKeyUpHiddenByCmd={Enter:!0,Backspace:!0,ArrowRight:!0,ArrowLeft:!0,ArrowUp:!0,ArrowDown:!0,CapsLock:!0},i=1;13>i;i++)KeysWithKeyUpHiddenByCmd[`F${i}`]=!0;KeyCombinationMatcher=function(){function e(){_classCallCheck$1(this,e),this._actionConfigs={},this._order=null}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){if(this._includesMatcherForCombination(e.id)){var n=e.keyEventType,a=e.actionName,o=e.id;this._addHandlerToActionConfig(o,{keyEventType:n,actionName:a,handler:t})}else this._addNewActionConfig(e,t)}},{key:`findMatch`,value:function(e,t,n){this._order||this._setOrder();var a=!0,o=!1,s=void 0;try{for(var l,u=this._order[Symbol.iterator]();!(a=(l=u.next()).done);a=!0){var d=l.value,f=this._actionConfigs[d];if(this._matchesActionConfig(e,t,n,f))return f}}catch(e){o=!0,s=e}finally{try{a||u.return==null||u.return()}finally{if(o)throw s}}return null}},{key:`toJSON`,value:function(){return{actionConfigs:this._actionConfigs,order:this._order}}},{key:`_matchesActionConfig`,value:function(e,t,n,a){if(!canBeMatched(e,a)||!a.events[n])return!1;var o=!1;return Object.keys(a.keyDictionary).every(function(a){return!!e.isEventTriggered(a,n)&&(t&&t===e.getNormalizedKeyName(a)&&(o=!e.wasEventPreviouslyTriggered(a,n)),!0)})&&o}},{key:`_setOrder`,value:function(){var e=Object.values(this._actionConfigs).reduce(function(e,t){var n=t.id,a=t.size;return e[a]||(e[a]=[]),e[a].push(n),e},{});this._order=Object.keys(e).sort(function(e,t){return t-e}).reduce(function(t,n){return t.concat(e[n])},[])}},{key:`_addNewActionConfig`,value:function(e,t){var n=e.prefix,a=e.sequenceLength,o=e.id,s=e.keyDictionary,l=e.size,u=e.keyEventType,d=e.actionName;this._setCombinationMatcher(o,{prefix:n,sequenceLength:a,id:o,keyDictionary:s,size:l,events:{}}),this._addHandlerToActionConfig(o,{keyEventType:u,actionName:d,handler:t})}},{key:`_addHandlerToActionConfig`,value:function(e,t){var n=t.keyEventType,a=t.actionName,o=t.handler,s=this._getCombinationMatcher(e);this._setCombinationMatcher(e,_objectSpread$1({},s,{events:_objectSpread$1({},s.events,_defineProperty$3({},n,{actionName:a,handler:o}))}))}},{key:`_setCombinationMatcher`,value:function(e,t){this._actionConfigs[e]=t}},{key:`_getCombinationMatcher`,value:function(e){return this._actionConfigs[e]}},{key:`_includesMatcherForCombination`,value:function(e){return!!this._getCombinationMatcher(e)}}]),e}(),KeyHistoryMatcher=function(){function e(){_classCallCheck$1(this,e),this._combinationMatchers={},this._eventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){this._getOrCreateCombinationMatcher(e.prefix).addMatch(e,t),KeyEventStateArrayManager.setBit(this._eventRecord,e.keyEventType,KeyEventState.seen),(!this._longestSequence||this._longestSequence<e.sequenceLength)&&(this._longestSequence=e.sequenceLength)}},{key:`findMatch`,value:function(e,t,n){var a=this._findCombinationMatcher(e);return a?a.findMatch(e.getCurrentCombination(),e.getCurrentCombination().getNormalizedKeyName(t),n):null}},{key:`hasMatchesForEventType`,value:function(e){return!!this._eventRecord[e]}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`toJSON`,value:function(){var e=this;return Object.keys(this._combinationMatchers).reduce(function(t,n){return t[n]=e._combinationMatchers[n].toJSON(),t},{})}},{key:`_getOrCreateCombinationMatcher`,value:function(e){return this._combinationMatchers[e]||(this._combinationMatchers[e]=new KeyCombinationMatcher),this._combinationMatchers[e]}},{key:`_findCombinationMatcher`,value:function(e){var t=e.getMostRecentCombinations(this.getLongestSequence());if(t.length===0)return this._combinationMatchers[``];for(var n=t.map(function(e){return e.getIds()}),a=n.map(function(e){return e.length}),o=Array(n.length).fill(0),s=!1;!s;){var l=o.map(function(e,t){return n[t][e]}).join(` `);if(this._combinationMatchers[l])return this._combinationMatchers[l];for(var u=0,d=!0;d&&u<o.length;){var f=(indexFromEnd(o,u)+1)%(indexFromEnd(a,u)||1);o[o.length-(u+1)]=f,d=f==0,d&&u++}s=u===o.length}}}]),e}(),ActionResolver=function(){function e(t){_classCallCheck$1(this,e),this._keyMapMatchers=[],this._unmatchedHandlerStatus=[],this._handlersDictionary={},this._keySequencesDictionary={};for(var n=t.getNewIterator();n.next();){var a=n.getComponent().handlers;this._unmatchedHandlerStatus.push([Object.keys(a).length,{}]),this._keyMapMatchers.push(new KeyHistoryMatcher)}this._componentList=t,this._componentListIterator=t.getNewIterator()}return _createClass$1(e,[{key:`getKeyHistoryMatcher`,value:function(e){if(this._componentHasUnmatchedHandlers(e))for(;this._componentListIterator.next();)this._addHandlersFromComponent(),this._addActionsFromComponent();return this._getKeyHistoryMatcher(e)}},{key:`componentHasActionsBoundToEventType`,value:function(e,t){return this.getKeyHistoryMatcher(e).hasMatchesForEventType(t)}},{key:`findMatchingKeySequenceInComponent`,value:function(e,t,n,a){return this.componentHasActionsBoundToEventType(e,a)?this.getKeyHistoryMatcher(e).findMatch(t,n,a):null}},{key:`_getKeyHistoryMatcher`,value:function(e){return this._keyMapMatchers[e]}},{key:`_addActionsFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().actions;Object.keys(t).forEach(function(n){var a=e._getHandlers(n);if(a){var o=a[0],s=e._componentList.getAtPosition(o).handlers[n],l=e._getKeyHistoryMatcher(o);t[n].forEach(function(t){var n=[t.prefix,t.id].join(` `);e._isClosestHandlerFound(n,t)||(l.addMatch(t,s),e._addKeySequence(n,[o,t.keyEventType]))}),a.forEach(function(t){var a=e._getUnmatchedHandlerStatus(t);a[1][n]||(a[1][n]=!0,a[0]--)})}})}},{key:`_getHandlers`,value:function(e){return this._handlersDictionary[e]}},{key:`_addHandlersFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().handlers;Object.keys(t).forEach(function(t){e._addHandler(t)})}},{key:`_addHandler`,value:function(e){this._handlersDictionary[e]||(this._handlersDictionary[e]=[]),this._handlersDictionary[e].push(this._componentListIterator.getPosition())}},{key:`_addKeySequence`,value:function(e,t){this._keySequencesDictionary[e]||(this._keySequencesDictionary[e]=[]),this._keySequencesDictionary[e].push(t)}},{key:`_componentHasUnmatchedHandlers`,value:function(e){return 0<this._getUnmatchedHandlerStatus(e)[0]}},{key:`_getUnmatchedHandlerStatus`,value:function(e){return this._unmatchedHandlerStatus[e]}},{key:`_isClosestHandlerFound`,value:function(e,t){return this._keySequencesDictionary[e]&&this._keySequencesDictionary[e].some(function(e){return e[1]===t.keyEventType})}}]),e}(),SEQUENCE_ATTRIBUTES=[`sequence`,`action`],KEYMAP_ATTRIBUTES=[`name`,`description`,`group`],AbstractKeyEventStrategy=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},n=1<arguments.length?arguments[1]:void 0;_classCallCheck$1(this,e),this.logger=t.logger||new Logger(`warn`),this.componentId=-1,this.keyEventManager=n,this._componentTree=new ComponentTree,this.rootComponentId=null,this._reset(),this.resetKeyHistory()}return _createClass$1(e,[{key:`_reset`,value:function(){this.componentList=new ComponentOptionsList,this._initHandlerResolutionState()}},{key:`_newKeyHistory`,value:function(){return new KeyHistory({maxLength:this.componentList.getLongestSequence()})}},{key:`getKeyHistory`,value:function(){return this._keyHistory||=this._newKeyHistory(),this._keyHistory}},{key:`_initHandlerResolutionState`,value:function(){this._actionResolver=null}},{key:`resetKeyHistory`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};this.keypressEventsToSimulate=[],this.keyupEventsToSimulate=[],this._keyHistory=this.getKeyHistory().any()&&!e.force?new KeyHistory({maxLength:this.componentList.getLongestSequence()},new KeyCombination(this.getCurrentCombination().keysStillPressedDict())):this._newKeyHistory()}},{key:`getApplicationKeyMap`,value:function(){return this.rootComponentId===null?{}:this._buildApplicationKeyMap([this.rootComponentId],{})}},{key:`_buildApplicationKeyMap`,value:function(e,t){var n=this;return e.forEach(function(e){var a=n._componentTree.get(e),o=a.childIds,s=a.keyMap;s&&Object.keys(s).forEach(function(e){var a=s[e];t[e]={},isObject(a)?hasKey(a,`sequences`)?(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=n._createSequenceFromConfig(a.sequences)):(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=[copyAttributes(a,{},SEQUENCE_ATTRIBUTES)]):t[e].sequences=n._createSequenceFromConfig(a)}),n._buildApplicationKeyMap(o,t)}),t}},{key:`_createSequenceFromConfig`,value:function(e){return arrayFrom(e).map(function(e){return isObject(e)?copyAttributes(e,{},SEQUENCE_ATTRIBUTES):{sequence:e}})}},{key:`registerKeyMap`,value:function(e){return this.componentId+=1,this._componentTree.add(this.componentId,e),this.componentId}},{key:`reregisterKeyMap`,value:function(e,t){this._componentTree.update(e,t)}},{key:`registerComponentMount`,value:function(e,t){isUndefined(t)?this.rootComponentId=e:this._componentTree.setParent(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._componentTree.remove(e),e===this.rootComponentId&&(this.rootComponentId=null)}},{key:`_addComponent`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;this.componentList.add(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence())}},{key:`_allKeysAreReleased`,value:function(){return this.getCurrentCombination().hasEnded()}},{key:`getCurrentCombination`,value:function(){return this.getKeyHistory().getCurrentCombination()}},{key:`_shouldSimulate`,value:function(e,t){var n=hasKeyPressEvent(t),a=this.getCurrentCombination();return e===KeyEventType.keypress?!n||n&&a.isKeyStillPressed(`Meta`):e===KeyEventType.keyup&&keyupIsHiddenByCmd(t)&&a.isKeyReleased(`Meta`)}},{key:`_cloneAndMergeEvent`,value:function(e,t){return _objectSpread$1({},Object.keys(ModifierFlagsDictionary).reduce(function(t,n){return t[n]=e[n],t},{}),t)}},{key:`_callClosestMatchingHandler`,value:function(e,t,n,a,o){for(this._actionResolver||=new ActionResolver(this.componentList);o<=a;){this._actionResolver.getKeyHistoryMatcher(o);var s=this._actionResolver.findMatchingKeySequenceInComponent(o,this.getKeyHistory(),t,n);if(this.getCurrentCombination(),s){var l=s.events[n];return Configuration.option(`allowCombinationSubmatches`)&&KeyCombinationSerializer.serialize(s.keyDictionary),l.handler(e),this._stopEventPropagationAfterHandlingIfEnabled(e,o),!0}this._actionResolver.componentHasActionsBoundToEventType(o,n),o++}}},{key:`_stopEventPropagationAfterHandlingIfEnabled`,value:function(e,t){return!!Configuration.option(`stopEventPropagationAfterHandling`)&&(this._stopEventPropagation(e,t),!0)}},{key:`_stopEventPropagation`,value:function(){throw Error(`_stopEventPropagation must be overridden by a subclass`)}},{key:`_checkForModifierFlagDiscrepancies`,value:function(e,t,n){var a=this;Object.keys(ModifierFlagsDictionary).forEach(function(o){if(t!==o||n!==KeyEventType.keyup){var s=a.getCurrentCombination(),l=s.isKeyStillPressed(o);ModifierFlagsDictionary[o].forEach(function(t){!1===e[t]&&l&&s.setKeyState(o,KeyEventType.keyup,stateFromEvent(e))})}})}},{key:`_logPrefix`,value:function(){}}]),e}(),KeyEventCounter=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`getId`,value:function(){return isUndefined(this._id)&&(this._id=0),this._id}},{key:`incrementId`,value:function(){this._id=this.getId()+1}}]),e}(),normalizeKey={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},EventResponse={unseen:0,ignored:1,seen:2,recorded:3,handled:4},EventPropagator=function(){function e(t,n){var a=n.logger,o=n.logPrefix;_classCallCheck$1(this,e),this._componentList=t,this._previousPropagation=null,this.logger=a,this._logPrefix=o,this._reset()}return _createClass$1(e,[{key:`_reset`,value:function(){this._previousPosition=-1,this._position=-1,this._actionHandled=!1,this._ignoreEvent=!1,this._observeIgnoredEvents=!1,this._stopping=!1,this._componentId=null,this._key=null,this._type=null}},{key:`isFirstPropagationStep`,value:function(){var e=this.getPreviousPosition();return e===-1||e>=this._position}},{key:`isForKey`,value:function(e){return this._key===e}},{key:`isForEventType`,value:function(e){return this._type===e}},{key:`startNewPropagationStep`,value:function(e,t,n,a){return this._position=this._componentList.getIndexById(e),this._componentId=e,this.isFirstPropagationStep()&&(KeyEventCounter.incrementId(),this._key=t.key,this._type=a),!(t.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))||(this.ignoreEvent(t),!1)}},{key:`finishPropagationStep`,value:function(){this.isStopped()||this._componentList.isRoot(this._componentId)?(this._previousPropagation=this._clone(),this._reset()):this._previousPosition=this._position}},{key:`getPreviousPropagation`,value:function(){return this._previousPropagation||=this._clone({copyState:!1}),this._previousPropagation}},{key:`getPreviousPosition`,value:function(){return this._previousPosition}},{key:`observeIgnoredEvents`,value:function(){this._observeIgnoredEvents=!0}},{key:`ignoreEvent`,value:function(e){return this.setIgnoreEvent(!0),!!(this.isIgnoringEvent()&&Configuration.option(`stopEventPropagationAfterIgnoring`))&&(this.stop(e),this.finishPropagationStep(),!0)}},{key:`setIgnoreEvent`,value:function(e){this._ignoreEvent=e}},{key:`isIgnoringEvent`,value:function(){return!this._observeIgnoredEvents&&this._ignoreEvent}},{key:`isStopped`,value:function(){return this._stopping}},{key:`stop`,value:function(e){return!this.isStopped()&&(this._stopping=!0,e.simulated||e.stopPropagation(),!0)}},{key:`isPendingPropagation`,value:function(){var e=this.getPreviousPosition();return e!==-1&&e+1<this._position}},{key:`isHandled`,value:function(){return this._actionHandled}},{key:`setHandled`,value:function(){this._actionHandled=!0}},{key:`_clone`,value:function(){var t=(0<arguments.length&&arguments[0]!==void 0?arguments[0]:{}).copyState,n=new e(this._componentList,{logger:this.logger,logPrefix:this._logPrefix});return(t===void 0||t)&&Object.assign(n,this),n}}]),e}(),FocusOnlyKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.focusTreeId=0,e}return _inherits(t,e),_createClass$1(t,[{key:`_reset`,value:function(){_get(_getPrototypeOf(t.prototype),`_reset`,this).call(this),this.keypressEventsToSimulate=[],this.focusTreeId+=1,this.eventPropagator=new EventPropagator(this.componentList,{logger:this.logger,logPrefix:this._logPrefix.bind(this)})}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;if(this.resetOnNextFocus&&=(this._reset(),!1),!this.componentList.containsId(e))return this._addComponent(e,t,n,a),this.focusTreeId}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;e===this.focusTreeId&&this.componentList.containsId(t)&&(this.componentList.update(t,n,a,o),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._initHandlerResolutionState())}},{key:`disableHotKeys`,value:function(e,t){return this.resetOnNextFocus||=!0,this.eventPropagator.isPendingPropagation()}},{key:`handleKeydown`,value:function(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=getKeyName(e);if(t!==this.focusTreeId)return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keydown)){if(this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keydown)===EventResponse.handled){var s=stateFromEvent(e),l=this.getCurrentCombination();l.isKeyIncluded(o)||l.isEnding()?this._startAndLogNewKeyCombination(o,t,n,s):this._addToAndLogCurrentKeyCombination(o,KeyEventType.keydown,t,n,s),this._callHandlerIfActionNotHandled(e,o,KeyEventType.keydown,n,t)}return this._simulateKeyPressForNonPrintableKeys(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),!1}}},{key:`_howToHandleKeyEvent`,value:function(e,t,n,a,o,s){if(this.eventPropagator.isFirstPropagationStep()){if(o.ignoreEventsCondition(e)&&this.eventPropagator.ignoreEvent(e))return this._eventIsToBeIgnored(e,n,a,s);this._checkForModifierFlagDiscrepancies(e,a,s)}else if(this.eventPropagator.isIgnoringEvent())return this._eventIsToBeIgnored(e,n,a,s);return EventResponse.handled}},{key:`_eventIsToBeIgnored`,value:function(e,t,n,a){return EventResponse.ignored}},{key:`handleKeyPress`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyPressSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keypress)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keypress);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keypress,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keypress,n,t),this.eventPropagator.finishPropagationStep(),l}}},{key:`handleKeyUp`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyUpSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keyup)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keyup);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keyup,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keyup,n,t),this._simulateKeyUpEventsHiddenByCmd(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),l}}},{key:`closeHangingKeyCombination`,value:function(e,t){var n=this.getCurrentCombination();n.isKeyIncluded(e)&&!n.isEventTriggered(e,t)&&n.setKeyState(e,t,KeyEventState.simulated)}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t,n,a,o){this._handleEventSimulation(`keypressEventsToSimulate`,`simulatePendingKeyPressEvents`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t,n,a,o){var s=this;isCmdKey(t)&&this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||s._handleEventSimulation(`keyupEventsToSimulate`,`simulatePendingKeyUpEvents`,s._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})})}},{key:`_stopEventPropagation`,value:function(e,t){this.eventPropagator.stop(e)}},{key:`getEventPropagator`,value:function(){return this.eventPropagator}},{key:`_startAndLogNewKeyCombination`,value:function(e,t,n,a){this.getKeyHistory().startNewKeyCombination(e,a)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n,a,o){this.getKeyHistory().addKeyToCurrentCombination(e,t,o)}},{key:`_handleEventSimulation`,value:function(e,t,n,a){var o=a.event,s=a.key,l=a.focusTreeId,u=a.componentId,d=a.options;if(n&&Configuration.option(`simulateMissingKeyPressEvents`)){var f=this._cloneAndMergeEvent(o,{key:s,simulated:!0});this[e].push({event:f,focusTreeId:l,componentId:u,options:d})}(this.componentList.isRoot(u)||this.eventPropagator.isStopped())&&!this.keyEventManager.isGlobalListenersBound()&&this[t]()}},{key:`simulatePendingKeyPressEvents`,value:function(){this._simulatePendingKeyEvents(`keypressEventsToSimulate`,`handleKeyPress`)}},{key:`simulatePendingKeyUpEvents`,value:function(){this._simulatePendingKeyEvents(`keyupEventsToSimulate`,`handleKeyUp`)}},{key:`_simulatePendingKeyEvents`,value:function(e,t){var n=this;0<this[e].length&&KeyEventCounter.incrementId(),this[e].forEach(function(e){var a=e.event,o=e.focusTreeId,s=e.componentId,l=e.options;n[t](a,o,s,l)}),this[e]=[]}},{key:`_callHandlerIfActionNotHandled`,value:function(e,t,n,a,o){if(this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&!this.eventPropagator.isHandled()){var s=this.eventPropagator.getPreviousPosition(),l=this.componentList.getIndexById(a);this._callClosestMatchingHandler(e,t,n,l,s===-1?0:s)&&this.eventPropagator.setHandled()}}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.logIcons,a=Logger.eventIcons,o=Logger.componentIcons,s=`HotKeys (`;if(!1!==t.focusTreeId){var l=isUndefined(t.focusTreeId)?this.focusTreeId:t.focusTreeId;s+=`F${l}${n[l%n.length]}-`}if(!1!==t.eventId){var u=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;s+=`E${u}${a[u%a.length]}-`}s+=`C${e}${o[e%o.length]}`;var d=this.componentList.getIndexById(e);return isUndefined(d)||(s+=`-P${d}${o[d%o.length]}:`),`${s})`}}]),t}(AbstractKeyEventStrategy),GlobalKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.listenersBound=!1,e.eventOptions={ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)},e.listeners={},e}return _inherits(t,e),_createClass$1(t,[{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this._addComponent(e,t,n,a),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`updateEnabledHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this.componentList.update(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`disableHotKeys`,value:function(e){this.componentList.remove(e),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`_updateDocumentHandlers`,value:function(){var e=this,t=this._listenersShouldBeBound();!this.listenersBound&&t?(Object.values(KeyEventType).forEach(function(t){var n=describeKeyEventType(t);document[`on${n}`]=function(t){e.keyEventManager[`handleGlobal${normalizeEventName(n)}`](t)}}),this.listenersBound=!0):this.listenersBound&&!t&&(Object.values(KeyEventType).forEach(function(e){var t=describeKeyEventType(e);delete document[`on${t}`]}),this.listenersBound=!1)}},{key:`_listenersShouldBeBound`,value:function(){return this.componentList.any()||this.listeners.keyCombination}},{key:`handleKeydown`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;this._checkForModifierFlagDiscrepancies(e,t,KeyEventType.keydown);var n=this._howReactAppRespondedTo(e,t,KeyEventType.keydown);if(!(n===EventResponse.unseen&&this.eventOptions.ignoreEventsCondition(e))){if(n!==EventResponse.ignored){var a=stateFromEvent(e),o=this.getCurrentCombination();o.isKeyIncluded(t)||o.isEnding()?this._startAndLogNewKeyCombination(t,a):this._addToAndLogCurrentKeyCombination(t,KeyEventType.keydown,a)}contains([EventResponse.ignored,EventResponse.handled],n)||this._callHandlerIfExists(e,t,KeyEventType.keydown),this._simulateKeyPressForNonPrintableKeys(e,t)}}},{key:`_howReactAppRespondedTo`,value:function(e,t,n){var a=this.keyEventManager.reactAppHistoryWithEvent(t,n);return a===EventResponse.handled||a===EventResponse.ignored||a===EventResponse.seen||KeyEventCounter.incrementId(),a}},{key:`handleKeyPress`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;var n=this.getCurrentCombination();if(n.isKeyPressSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keypress);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keypress,stateFromEvent(e)),a===EventResponse.unseen&&(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keypress),this.eventOptions.ignoreEventsCondition(e))||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keypress)}},{key:`handleKeyUp`,value:function(e){var t=getKeyName(e),n=this.getCurrentCombination();if(n.isKeyUpSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keyup);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keyup,stateFromEvent(e)),a===EventResponse.unseen?(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keyup),this.eventOptions.ignoreEventsCondition(e)||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup)):!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup),this._simulateKeyUpEventsHiddenByCmd(e,t),this.listeners.keyCombination&&this._allKeysAreReleased()&&this.listeners.keyCombination({keys:n.getKeyDictionary(),id:n.describe()})}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t){this.keyEventManager.simulatePendingKeyPressEvents(),this._handleEventSimulation(`handleKeyPress`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t){var n=this;isCmdKey(t)&&(this.keyEventManager.simulatePendingKeyUpEvents(),this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||n._handleEventSimulation(`handleKeyUp`,n._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t})}))}},{key:`_startAndLogNewKeyCombination`,value:function(e,t){this.getKeyHistory().startNewKeyCombination(e,t)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n){this.getKeyHistory().addKeyToCurrentCombination(e,t,n)}},{key:`_handleEventSimulation`,value:function(e,t,n){var a=n.event,o=n.key;if(t&&Configuration.option(`simulateMissingKeyPressEvents`)){var s=this._cloneAndMergeEvent(a,{key:o,simulated:!0});this[e](s)}}},{key:`_callHandlerIfExists`,value:function(e,t,n){this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&this._callClosestMatchingHandler(e,t,n)}},{key:`_callClosestMatchingHandler`,value:function(e,n,a){for(var o,s=this.componentList.getNewIterator();s.next();)if(o=_get(_getPrototypeOf(t.prototype),`_callClosestMatchingHandler`,this).call(this,e,n,a,s.getPosition(),0),o)return}},{key:`_stopEventPropagation`,value:function(e,t){e.simulated||e.stopPropagation()}},{key:`addKeyCombinationListener`,value:function(e){var t=this,n=function(){delete t.listeners.keyCombination};return this.listeners.keyCombination=function(t){e(t),n()},this._updateDocumentHandlers(),n}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.eventIcons,a=Logger.componentIcons,o=`HotKeys (GLOBAL`;if(!1!==t.eventId){var s=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;o=`${o}-E${s}${n[s%n.length]}`}return isUndefined(e)?`${o}):`:`${o}-C${e}${a[e%a.length]}):`}}]),t}(AbstractKeyEventStrategy),KeyEventManager=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this.logger=t.logger||new Logger(Configuration.option(`logLevel`)),this._focusOnlyEventStrategy=new FocusOnlyKeyEventStrategy({configuration:t,logger:this.logger},this),this._globalEventStrategy=new GlobalKeyEventStrategy({configuration:t,logger:this.logger},this),this.mountedComponentsCount=0}return _createClass$1(e,null,[{key:`getInstance`,value:function(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this.instance||=new e(t),this.instance}},{key:`clear`,value:function(){delete this.instance}}]),_createClass$1(e,[{key:`getApplicationKeyMap`,value:function(){return Object.assign(this._globalEventStrategy.getApplicationKeyMap(),this._focusOnlyEventStrategy.getApplicationKeyMap())}},{key:`registerKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._focusOnlyEventStrategy.registerKeyMap(e)}},{key:`reregisterKeyMap`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};this._focusOnlyEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._focusOnlyEventStrategy.deregisterKeyMap(e)}},{key:`registerComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._focusOnlyEventStrategy.registerComponentMount(e,t)}},{key:`registerComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`_incrementComponentCount`,value:function(){var e=this,t=this.mountedComponentsCount;this.mountedComponentsCount+=1,t===0&&this.mountedComponentsCount===1&&(window.onblur=function(){return e._clearKeyHistory()})}},{key:`_decrementComponentCount`,value:function(){var e=this.mountedComponentsCount;--this.mountedComponentsCount,e===1&&this.mountedComponentsCount===0&&delete window.onblur}},{key:`_clearKeyHistory`,value:function(){this._focusOnlyEventStrategy.resetKeyHistory({force:!0}),this._globalEventStrategy.resetKeyHistory({force:!0})}},{key:`registerGlobalKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._globalEventStrategy.registerKeyMap(e)}},{key:`registerGlobalComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`registerGlobalComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._globalEventStrategy.registerComponentMount(e,t)}},{key:`reregisterGlobalKeyMap`,value:function(e,t){this._globalEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterGlobalKeyMap`,value:function(e){this._globalEventStrategy.deregisterKeyMap(e)}},{key:`addKeyCombinationListener`,value:function(e){return this._globalEventStrategy.addKeyCombinationListener(e)}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;return this._focusOnlyEventStrategy.enableHotKeys(e,t,n,a)}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;return this._focusOnlyEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableHotKeys`,value:function(e,t){return this._focusOnlyEventStrategy.disableHotKeys(e,t)}},{key:`handleKeydown`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeydown(e,t,n,a)}},{key:`handleKeyPress`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyPress(e,t,n,a)}},{key:`handleKeyUp`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyUp(e,t,n,a)}},{key:`enableGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.enableHotKeys(e,t,n,a,o)}},{key:`updateEnabledGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableGlobalHotKeys`,value:function(e){return this._globalEventStrategy.disableHotKeys(e)}},{key:`handleGlobalKeyDown`,value:function(e){return this._globalEventStrategy.handleKeydown(e)}},{key:`handleGlobalKeyPress`,value:function(e){return this._globalEventStrategy.handleKeyPress(e)}},{key:`handleGlobalKeyUp`,value:function(e){return this._globalEventStrategy.handleKeyUp(e)}},{key:`ignoreEvent`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().ignoreEvent(e)}},{key:`observeIgnoredEvents`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().observeIgnoredEvents(e)}},{key:`closeHangingKeyCombination`,value:function(e,t){this._focusOnlyEventStrategy.closeHangingKeyCombination(e,t)}},{key:`reactAppHistoryWithEvent`,value:function(e,t){var n=this._focusOnlyEventStrategy.eventPropagator.getPreviousPropagation();return n.isForKey(e)&&n.isForEventType(t)?n.isHandled()?EventResponse.handled:n.isIgnoringEvent()?EventResponse.ignored:EventResponse.seen:EventResponse.unseen}},{key:`simulatePendingKeyPressEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyPressEvents()}},{key:`simulatePendingKeyUpEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyUpEvents()}},{key:`isGlobalListenersBound`,value:function(){return this._globalEventStrategy.listenersBound}}]),e}(),HotKeys=withHotKeys(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=e.innerRef,a=e.component,o=_objectWithoutProperties$1(e,[`hotKeys`,`innerRef`,`component`]),s=a||Configuration.option(`defaultComponent`);return import_react.createElement(s,_objectSpread$1({},t,{ref:n},o))}}]),t}(import_react.Component)),HotKeys.propTypes={innerRef:import_prop_types.default.oneOfType([import_prop_types.default.object,import_prop_types.default.func])},GlobalHotKeys$2=function(e){function t(e){var n;return _classCallCheck$1(this,t),n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)),n._id=KeyEventManager.getInstance().registerGlobalKeyMap(e.keyMap),n._childContext={globalHotKeysParentId:n._id},n}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){return this.props.children||null}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterGlobalKeyMap(this._id,this.props.keyMap),this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`)){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledGlobalHotKeys(this._id,n,a,this._getComponentOptions(),this._getEventOptions())}}},{key:`componentDidMount`,value:function(){var e=this.props,t=e.keyMap,n=e.handlers,a=this.context.globalHotKeysParentId,o=KeyEventManager.getInstance();o.registerGlobalComponentMount(this._id,a),o.enableGlobalHotKeys(this._id,t,n,this._getComponentOptions(),this._getEventOptions())}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterGlobalKeyMap(this._id),e.disableGlobalHotKeys(this._id),e.registerGlobalComponentUnmount()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),t}(import_react.Component),_defineProperty$3(GlobalHotKeys$2,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,allowChanges:import_prop_types.default.bool}),GlobalHotKeys$1$1=backwardsCompatibleContext(GlobalHotKeys$2,{deprecatedAPI:{contextTypes:{globalHotKeysParentId:import_prop_types.default.number},childContextTypes:{globalHotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{globalHotKeysParentId:void 0}}}),IgnoreKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`ignoreEvent`),ObserveKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`observeIgnoredEvents`)})),require_index_es=__commonJSMin(((e,t)=>{t.exports=(init_react_hotkeys_production_min(),__toCommonJS(react_hotkeys_production_min_exports))})),import_index_es=require_index_es(),cropType={ASPARAGUS:`ASPARAGUS`,CARROT:`CARROT`,CORN:`CORN`,GARLIC:`GARLIC`,GRAPE:`GRAPE`,JALAPENO:`JALAPENO`,OLIVE:`OLIVE`,ONION:`ONION`,PEA:`PEA`,POTATO:`POTATO`,PUMPKIN:`PUMPKIN`,SOYBEAN:`SOYBEAN`,SPINACH:`SPINACH`,SUNFLOWER:`SUNFLOWER`,STRAWBERRY:`STRAWBERRY`,SUGARCANE:`SUGARCANE`,SWEET_POTATO:`SWEET_POTATO`,TOMATO:`TOMATO`,WATERMELON:`WATERMELON`,WHEAT:`WHEAT`,WEED:`WEED`},recipeType={FERMENTATION:`FERMENTATION`,FORGE:`FORGE`,KITCHEN:`KITCHEN`,RECYCLING:`RECYCLING`,WINE:`WINE`,WOOD_CHIPPER:`WOOD_CHIPPER`},fieldMode={CHOP:`CHOP`,CLEANUP:`CLEANUP`,FERTILIZE:`FERTILIZE`,HARVEST:`HARVEST`,HARVEST_FRUIT:`HARVEST_FRUIT`,MINE:`MINE`,OBSERVE:`OBSERVE`,PLANT:`PLANT`,SET_SPRINKLER:`SET_SPRINKLER`,SET_SCARECROW:`SET_SCARECROW`,WATER:`WATER`},stageFocusType={NONE:`NONE`,HOME:`HOME`,FIELD:`FIELD`,FOREST:`FOREST`,SHOP:`SHOP`,COW_PEN:`COW_PEN`,INVENTORY:`INVENTORY`,WORKSHOP:`WORKSHOP`,CELLAR:`CELLAR`},cropLifeStage={SEED:`SEED`,GROWING:`GROWING`,GROWN:`GROWN`},treeLifeStage={...cropLifeStage,DEAD:`DEAD`},itemType={COW_FEED:`COW_FEED`,CRAFTED_ITEM:`CRAFTED_ITEM`,CROP:`CROP`,FERTILIZER:`FERTILIZER`,FUEL:`FUEL`,HUGGING_MACHINE:`HUGGING_MACHINE`,MILK:`MILK`,MULCH:`MULCH`,ORE:`ORE`,SCARECROW:`SCARECROW`,SPRINKLER:`SPRINKLER`,STONE:`STONE`,TOOL_UPGRADE:`TOOL_UPGRADE`,TREE:`TREE`,WEED:`WEED`,WOOD:`WOOD`},treeType={APPLE:`APPLE`,BANANA:`BANANA`},fertilizerType={NONE:`NONE`,STANDARD:`STANDARD`,RAINBOW:`RAINBOW`},genders={FEMALE:`FEMALE`,MALE:`MALE`},cowColors={BLUE:`BLUE`,BROWN:`BROWN`,GREEN:`GREEN`,ORANGE:`ORANGE`,PURPLE:`PURPLE`,RAINBOW:`RAINBOW`,WHITE:`WHITE`,YELLOW:`YELLOW`},{RAINBOW:RAINBOW$2,...standardCowColors}=cowColors,dialogView={NONE:`NONE`,ACCOUNTING:`ACCOUNTING`,ACHIEVEMENTS:`ACHIEVEMENTS`,FARMERS_LOG:`FARMERS_LOG`,KEYBINDINGS:`KEYBINDINGS`,ONLINE_PEERS:`ONLINE_PEERS`,PRICE_EVENTS:`PRICE_EVENTS`,SETTINGS:`SETTINGS`,STATS:`STATS`},toolType={AXE:`AXE`,PICKER_POLE:`PICKER_POLE`,SCYTHE:`SCYTHE`,SHOVEL:`SHOVEL`,HOE:`HOE`,WATERING_CAN:`WATERING_CAN`},toolLevel={UNAVAILABLE:`UNAVAILABLE`,DEFAULT:`DEFAULT`,BRONZE:`BRONZE`,IRON:`IRON`,SILVER:`SILVER`,GOLD:`GOLD`},cowTradeRejectionReason={REQUESTED_COW_UNAVAILABLE:`REQUESTED_COW_UNAVAILABLE`},cropFamily={GRAPE:`GRAPE`},grapeVariety={CHARDONNAY:`CHARDONNAY`,SAUVIGNON_BLANC:`SAUVIGNON_BLANC`,CABERNET_SAUVIGNON:`CABERNET_SAUVIGNON`,TEMPRANILLO:`TEMPRANILLO`,NEBBIOLO:`NEBBIOLO`},{freeze:freeze$10}=Object,BREAKPOINTS={XS:0,SM:600,MD:960,LG:1280,XL:1920},LOAN_GARNISHMENT_RATE=.05,LOAN_INTEREST_RATE=.02,FERTILIZER_BONUS=.5,PURCHASEABLE_FIELD_SIZES=freeze$10(new Map([[1,{columns:8,rows:12,price:1e3}],[2,{columns:10,rows:16,price:5e3}],[3,{columns:12,rows:18,price:2e4}]])),PURCHASABLE_FOREST_SIZES=freeze$10(new Map([[1,{columns:4,rows:2,price:1e5}],[2,{columns:4,rows:3,price:2e5}],[3,{columns:4,rows:4,price:3e5}]])),LARGEST_PURCHASABLE_FIELD_SIZE=PURCHASEABLE_FIELD_SIZES.get(PURCHASEABLE_FIELD_SIZES.size),PURCHASEABLE_COMBINES=freeze$10(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_COMPOSTERS=freeze$10(new Map([[1,{type:`Basic`,price:1e3}]])),PURCHASEABLE_SMELTERS=freeze$10(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_WOOD_CHIPPERS=freeze$10(new Map([[1,{type:`Basic`,price:5e4}]])),PURCHASEABLE_COW_PENS=freeze$10(new Map([[1,{cows:10,price:1500}],[2,{cows:20,price:1e4}],[3,{cows:30,price:5e4}]])),PURCHASEABLE_CELLARS=freeze$10(new Map([[1,{space:10,price:25e4}],[2,{space:20,price:75e4}],[3,{space:30,price:2e6}]])),CROW_CHANCE=.4,PRECIPITATION_CHANCE=.1,STORM_CHANCE=.5,SCARECROW_ITEM_ID=`scarecrow`,SPRINKLER_ITEM_ID=`sprinkler`,COW_STARTING_WEIGHT_BASE=1800,MALE_COW_WEIGHT_MULTIPLIER=1.1,COW_HUG_BENEFIT=.05,COW_WEIGHT_MULTIPLIER_FEED_BENEFIT=.1,COW_WEIGHT_MULTIPLIER_MINIMUM=.5,COW_WEIGHT_MULTIPLIER_MAXIMUM=1.5,COW_FEED_ITEM_ID=`cow-feed`,HUGGING_MACHINE_ITEM_ID=`hugging-machine`,COW_MINIMUM_HAPPINESS_TO_BREED=.8,NOTIFICATION_DURATION=6e3,PRICE_EVENT_CHANCE=.2,STAGE_TITLE_MAP={[stageFocusType.HOME]:`Home`,[stageFocusType.FIELD]:`Field`,[stageFocusType.FOREST]:`Forest`,[stageFocusType.SHOP]:`Shop`,[stageFocusType.COW_PEN]:`Cows`,[stageFocusType.WORKSHOP]:`Workshop`,[stageFocusType.CELLAR]:`Cellar`},RECIPE_INGREDIENT_VALUE_MULTIPLIER=1.25,I_AM_RICH_BONUSES=[.05,.1,.25],PERSISTED_STATE_KEYS=`allowCustomPeerCowNames.cellarInventory.completedAchievements.cowBreedingPen.cowColorsPurchased.cowForSale.cowInventory.cowsSold.cowsTraded.cropsHarvested.dayCount.experience.farmName.field.forest.hasProducedRainbowFertilizer.historicalDailyLosses.historicalDailyRevenue.historicalValueAdjustments.hoveredPlotRangeSize.playerId.inventory.inventoryLimit.isCombineEnabled.itemsSold.cellarItemsSold.learnedRecipes.loanBalance.loansTakenOut.money.mulchApplied.newDayNotifications.notificationLog.priceCrashes.priceSurges.profitabilityStreak.purchasedCombine.purchasedComposter.purchasedCowPen.purchasedCellar.purchasedField.purchasedForest.purchasedSmelter.purchasedWoodChipper.recipesMade.record7dayProfitAverage.recordProfitabilityStreak.recordSingleDayProfit.revenue.showHomeScreen.showNotifications.todaysLosses.todaysPurchases.todaysRevenue.todaysStartingInventory.toolLevels.treeFruitsHarvested.treesChopped.useAlternateEndDayButtonPosition.valueAdjustments.version`.split(`.`),PEER_METADATA_STATE_KEYS=[`cowsSold`,`cropsHarvested`,`dayCount`,`experience`,`playerId`,`money`,`pendingPeerMessages`,`version`],DEFAULT_ROOM=`global`,LEFT=`left`,RIGHT=`right`,TOOLBELT_FIELD_MODES=new Set([fieldMode.CLEANUP,fieldMode.HARVEST,fieldMode.WATER,fieldMode.MINE]),RESOURCE_SPAWN_CHANCE=.3,ORE_SPAWN_CHANCE=.25,COAL_SPAWN_CHANCE=.15,STONE_SPAWN_CHANCE=.4,SALT_ROCK_SPAWN_CHANCE=.3,BRONZE_SPAWN_CHANCE=.4,GOLD_SPAWN_CHANCE=.07,IRON_SPAWN_CHANCE=.33,SILVER_SPAWN_CHANCE=.2,HOE_LEVEL_TO_SEED_RECLAIM_RATE={[toolLevel.DEFAULT]:0,[toolLevel.BRONZE]:.25,[toolLevel.IRON]:.5,[toolLevel.SILVER]:.75,[toolLevel.GOLD]:1},AXE_WOOD_YIELD_RANGE={[toolLevel.DEFAULT]:[1,2],[toolLevel.BRONZE]:[2,4],[toolLevel.IRON]:[4,6],[toolLevel.SILVER]:[6,8],[toolLevel.GOLD]:[8,10]},PICKER_POLE_LEVEL_TO_FRUIT_YIELD={[toolLevel.DEFAULT]:1,[toolLevel.BRONZE]:2,[toolLevel.IRON]:3,[toolLevel.SILVER]:4,[toolLevel.GOLD]:5},TREE_LIFESPAN_VARIANCE_MAX=.05,TREE_DEATH_CHANCE_BASE=.05,TREE_DEATH_CHANCE_INCREMENT_PER_DAY=.02,TREE_DEATH_CHANCE_MAX=.85,COW_COLORS_HEX_MAP={[cowColors.BLUE]:`#8ff0f9`,[cowColors.BROWN]:`#b45f28`,[cowColors.GREEN]:`#65f295`,[cowColors.ORANGE]:`#ff7031`,[cowColors.PURPLE]:`#d884f2`,[cowColors.WHITE]:`#ffffff`,[cowColors.YELLOW]:`#fff931`},COW_TRADE_TIMEOUT=1e4,WEEDS_SPAWN_CHANCE=.15,KEG_INTEREST_RATE=.02,KEG_SPOILAGE_RATE_MULTIPLIER=.001,WINE_INTEREST_RATE=.015,EXPERIENCE_VALUES={CELLAR_ACQUIRED:10,CELLAR_EXPANDED:5,COMPOSTER_ACQUIRED:10,COW_BRED:1,COW_PEN_ACQUIRED:10,COW_PEN_EXPANDED:5,COW_TRADED:1,FERMENTATION_RECIPE_MADE:1,FIELD_EXPANDED:5,FOREST_EXPANDED:10,FORGE_RECIPE_MADE:3,ITEM_SOLD:1,KEG_SOLD:2,KITCHEN_RECIPE_MADE:2,LOAN_PAID_OFF:25,NEW_YEAR:5,RAINBOW_COW_BRED:2,RECYCLING_RECIPE_MADE:1,SMELTER_ACQUIRED:10,WOOD_CHIPPER_ACQUIRED:10,WOOD_CHIPPER_RECIPE_MADE:1},STANDARD_VIEW_LIST=[stageFocusType.SHOP,stageFocusType.FIELD],Z_INDEX={END_DAY_BUTTON:1100},HEARTBEAT_INTERVAL_PERIOD=10*1e3,blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAv0lEQVRoQ+2aOw6AIBBEofAiHtqzeBrvYGNjsUaDBsFqMWw2eZZWDJ/HzGicVpFxCNWz7CF4eB/nTcTLYL/GeQk4p9+riEeAVxEvAR5FVAK8iYhQKAOwBQigkPVlB4WsqQWFchcIhRRIxgtZbJscHHihe9tarQSJrAzTvVcCCvWe8fLMQSEo1FiqkchIZOkQaWkGhaAQFEr1unW7oKUZvZD1ytEL0Qs1fg0lkWk9zF9ZGi+EF8IL4YVs/2pxT6EDTzqfZhoHJYMAAAAASUVORK5CYIIA`,light_blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAiklEQVRoge3UsQnAMAwFUUd4Du8/Q8bJEK4CTpEuAYOrs+BUPjW/uuPsY7RafnfdpWTwaPV9fi+Lx46jVjx2HLXiMXtm8Jg9M3jsOGrFrRDtVoh2K0S7FaLdCtFuhWi3QrRbIdqtEO1WiHYrRLsVot0K0W6FaLdCtFsh2q0Q7VaIditEuxWiPX2FHsE1Al0X/e79AAAAAElFTkSuQmCC`,colors={itemBackground:`#f7b459`,heart:`#ff4040`,error:`#ce0000`,cardBackground:`#ffe3a1`,cardBackgroundNested:`#ffd46e`,cow:{blue:`#8ff0f9`,brown:`#b45f28`,green:`#65f295`,orange:`#ff7031`,purple:`#d884f2`,white:`#ffffff`,yellow:`#fff931`}},breakpoints={smallPhone:320,mediumPhone:400,largePhone:450,sm:600,md:960,lg:1280,xl:1920},layout={cardMaxWidth:550,sidebarWidth:`22em`,narrowSidebarWidth:320,fieldSpaceForRightSideControls:`4.5em`},fillSx={bottom:0,left:0,position:`absolute`,right:0,top:0},squareImgSx={backgroundRepeat:`no-repeat`,backgroundSize:`cover`,display:`block`,width:`100%`},cardStyleSx=e=>({background:colors.cardBackground,border:`solid 2px #b68000`,transition:e.transitions.create(`background`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut})}),cardStyleSelectedSx={background:lighten$6(colors.cardBackground,.4)},centerTabsSx={margin:`0 auto`,maxWidth:600,"& .MuiTabs-flexContainer":{justifyContent:`center`},"& > .MuiTabs-root":{marginTop:`4em`},'& [role="tabpanel"]':{background:`rgba(255, 255, 255, 0.5)`,borderRadius:`0 0 0.5em 0.5em`,padding:`0.5em 0.5em 0.5em`,"& .card-list > li:last-child":{marginBottom:0}}},spriteShadowSx={filter:`drop-shadow(2px 2px 2px rgba(100, 100, 100, 0.4))`},quickSelectSx=(e,t)=>({...cardStyleSx(e),bottom:`7.5em`,left:`50%`,maxWidth:`calc(100% - 2em)`,position:`fixed`,transform:`translateX(-50%)`,"@media (orientation: landscape)":{bottom:`auto`,[`@media (max-height: ${breakpoints.largePhone}px)`]:{top:`5em`,maxWidth:`calc(100% - 12em)`,left:`calc(50% - (${layout.fieldSpaceForRightSideControls} / 2))`},[`@media (max-width: ${breakpoints.md}px)`]:{display:t?`none`:void 0}},[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{left:`auto`,maxHeight:`calc(100vh - 20em)`,minWidth:`4em`,overflow:`auto`,right:`0.75em`,top:`9em`,transform:`none`,bottom:`8em`},"@media (orientation: portrait)":{display:t?`none`:void 0},"& .MuiGrid-root":{borderRadius:`0.25em`,overflowX:`scroll`,overflowY:`hidden`,padding:`0.5em`,position:`relative`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{overflowX:`hidden`,flexDirection:`column`},"& > *":{[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{alignItems:`center`,width:`3em`}}},"& .Toolbelt":{display:`flex`,flexFlow:`column`,justifyContent:`center`},"& .MuiDivider-root":{margin:`0 0.5em`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{margin:`0.5em 0`,height:`1px`,width:`100%`,borderRightWidth:0,borderBottomWidth:`thin`}}});init_createTheme();var globalStyleOverrides={body:{overscrollBehavior:`contain`},"ul, ol":{listStyle:`none`,margin:0,padding:0},p:{margin:0},".markdown":{"& p":{margin:`1em 0`},"& ul li":{listStyle:`disc`,marginLeft:`1em`},"& strong":{fontWeight:`bold`}},img:{imageRendering:`pixelated`},strong:{fontWeight:`bold`},".visually_hidden:not(:focus):not(:active)":{clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,height:`1px`,overflow:`hidden`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`},"h4, h5, h6, p, p.MuiTypography-root":{fontFamily:`"Public Sans", sans-serif`},"h3, h4, h5, h6":{fontWeight:`bold`},h2:{fontSize:`1.4em`},"h3, h4":{margin:`1em 0`},"p, .MuiTypography-body2":{lineHeight:`1.5em`},"ul.card-list":{flexGrow:1,marginBottom:`1em`,"& li":{margin:`1em 0`},"& > li":{margin:`1em auto`,maxWidth:layout.cardMaxWidth}},'input[type="number"]':{minWidth:`140px`},th:{fontWeight:`bold`},"h1, h2, h3, h4, h5, h6, legend, td, th, .MuiTypography-h1, .MuiTypography-h2, .MuiTypography-h3, .MuiTypography-h4, .MuiTypography-h5, .MuiTypography-h6, .MuiButtonBase-root":{fontFamily:`"Francois One", sans-serif`},".danger-text":{color:colors.error},hr:{background:`none`},".MuiDivider-vertical":{width:`auto`},".Farmhand.notification-container":{marginTop:`8em`,paddingTop:0,[`@media (min-width: ${breakpoints.md}px)`]:{marginTop:`4em`,marginRight:`4em`},"& .MuiCollapse-wrapperInner":{width:`100%`},"& .MuiCollapse-wrapper":{marginBottom:0}},".spacer":{minHeight:`7.5em`}},mui_theme_default=createTheme({palette:{mode:`light`},shape:{},typography:{fontFamily:`"Public Sans", sans-serif`,button:{fontFamily:`"Francois One", sans-serif`,textTransform:`none`},h6:{fontFamily:`"Francois One", sans-serif`,fontSize:`1.4em`},h5:{fontFamily:`"Francois One", sans-serif`}},components:{MuiCssBaseline:{styleOverrides:globalStyleOverrides},MuiTabs:{styleOverrides:{root:({theme:e})=>({background:`#ffeec6`,borderColor:`#9b6d00`,borderWidth:2,borderStyle:`solid`,borderRadius:`${e.shape.borderRadius}px ${e.shape.borderRadius}px 0 0`})}},MuiInput:{styleOverrides:{root:{margin:`1rem 0`}}},MuiCard:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx,"& .MuiCard-root":{background:colors.cardBackgroundNested}})}},MuiTableContainer:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx})}},MuiCardHeader:{styleOverrides:{avatar:{"& img":spriteShadowSx}}},MuiCardContent:{styleOverrides:{root:{"&:last-child":{padding:`16px`}}}},MuiTableCell:{styleOverrides:{root:{borderColor:`#e9c777`}}},MuiButtonBase:{styleOverrides:{root:{textTransform:`none`}}},MuiPaper:{styleOverrides:{rounded:{backgroundColor:`#fff7e7`}}},MuiTooltip:{styleOverrides:{tooltip:{"& p":{textAlign:`center`}}}},MuiDialog:{styleOverrides:{root:{display:`block`},paper:{backgroundImage:`url(${light_blue_stripe_bg_default})`}}},MuiDivider:{styleOverrides:{root:{margin:`1.5em 0`}}},MuiAlert:{styleOverrides:{root:{marginBottom:`1em`,"@media (min-width: 0px) and (orientation: landscape)":{top:`3.5em`},[`@media (min-width: ${breakpoints.sm}px)`]:{top:`4.5em`},"& p":{margin:`1em 0`,"&:first-of-type":{marginTop:0},"&:last-child":{marginBottom:0}},"& strong":{fontWeight:`bold`},"& li":{marginLeft:`1em`},"& ul li":{listStyle:`disc`},"& ol li":{listStyle:`decimal`}}}}}});init_styled();var Span=styled$1(`span`)({}),Div=styled$1(`div`)({}),P$1=styled$1(`p`)({}),Ol=styled$1(`ol`)({}),Ul=styled$1(`ul`)({}),Li=styled$1(`li`)({}),Img=styled$1(`img`)({}),Form=styled$1(`form`)({}),Header=styled$1(`header`)({}),H3=styled$1(`h3`)({}),A=styled$1(`a`)({}),require_shifty=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a():typeof define==`function`&&define.amd?define(`shifty`,[],a):typeof e==`object`?e.shifty=a():n.shifty=a()})(self,(function(){return function(){var e={933:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.setBezierFunction=t.getCubicBezierTransition=void 0;let a=n(55);t.getCubicBezierTransition=(e=.25,t=.25,n=.75,a=.75)=>o=>function(e,t,n,a,o,s){let l=0,u=0,d=0,f=0,m=0,h=0,v=e=>((l*e+u)*e+d)*e,y=e=>(3*l*e+2*u)*e+d,b=e=>e>=0?e:0-e;return d=3*t,u=3*(a-t)-d,l=1-d-u,h=3*n,m=3*(o-n)-h,f=1-h-m,x=e,S=(e=>1/(200*e))(s),(e=>((f*e+m)*e+h)*e)(((e,t)=>{let n,a,o,s,l,u;for(o=e,u=0;u<8;u++){if(s=v(o)-e,b(s)<t)return o;if(l=y(o),b(l)<1e-6)break;o-=s/l}if(n=0,a=1,o=e,o<n)return n;if(o>a)return a;for(;n<a;){if(s=v(o),b(s-e)<t)return o;e>s?n=o:a=o,o=.5*(a-n)+n}return o})(x,S));var x,S}(o,e,t,n,a,1),t.setBezierFunction=(e,n,o,s,l)=>{let u=(0,t.getCubicBezierTransition)(n,o,s,l);return u.displayName=e,u.x1=n,u.y1=o,u.x2=s,u.y2=l,a.Tweenable.easing[e]=u}},156:function(e,t,n){var a=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)n==="default"||Object.prototype.hasOwnProperty.call(t,n)||a(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=t.standardEasingFunctions=t.setBezierFunction=t.Scene=t.interpolate=t.tween=t.Tweenable=t.shouldScheduleUpdate=t.processTweens=void 0;let s=n(55);Object.defineProperty(t,"processTweens",{enumerable:!0,get:function(){return s.processTweens}}),Object.defineProperty(t,"shouldScheduleUpdate",{enumerable:!0,get:function(){return s.shouldScheduleUpdate}}),Object.defineProperty(t,"Tweenable",{enumerable:!0,get:function(){return s.Tweenable}}),Object.defineProperty(t,"tween",{enumerable:!0,get:function(){return s.tween}});var l=n(243);Object.defineProperty(t,"interpolate",{enumerable:!0,get:function(){return l.interpolate}});var u=n(612);Object.defineProperty(t,"Scene",{enumerable:!0,get:function(){return u.Scene}});var d=n(933);Object.defineProperty(t,"setBezierFunction",{enumerable:!0,get:function(){return d.setBezierFunction}});var f=n(809);Object.defineProperty(t,"standardEasingFunctions",{enumerable:!0,get:function(){return f.standardEasingFunctions}}),o(n(613),t),t.VERSION=`3.0.6`},243:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.interpolate=void 0;let a=n(55),o=new a.Tweenable,{filters:s}=a.Tweenable;t.interpolate=(e,t,n,l=a.Tweenable.easing.linear,u=0)=>{let d=Object.assign({},e),f=(0,a.composeEasingObject)(e,l);o._filters.length=0,o.setState({}),o._currentState=d,o._originalState=e,o._targetState=t,o._easing=f;for(let e in s)s[e].doesApply(o)&&o._filters.push(s[e]);o._applyFilter(`tweenCreated`),o._applyFilter(`beforeTween`);let m=(0,a.tweenProps)(n,d,e,t,1,u,f);return o._applyFilter(`afterTween`),m}},612:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Scene=void 0,t.Scene=class{constructor(...e){this._tweenables=[],e.forEach(this.add.bind(this))}get tweenables(){return[...this._tweenables]}get promises(){return this._tweenables.map((e=>e.then()))}add(e){return this._tweenables.push(e),e}remove(e){let t=this._tweenables.indexOf(e);return t>-1&&this._tweenables.splice(t,1),e}empty(){return this.tweenables.map(this.remove.bind(this))}get isPlaying(){return this._tweenables.some((({isPlaying:e})=>e))}tween(){return this._tweenables.forEach((e=>e.tween())),this}pause(){return this._tweenables.forEach((e=>e.pause())),this}resume(){return this._tweenables.filter((({hasEnded:e})=>!e)).forEach((e=>e.resume())),this}stop(e){return this._tweenables.forEach((t=>t.stop(e))),this}}},809:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.standardEasingFunctions=void 0,t.standardEasingFunctions=Object.freeze({linear:e=>e,easeInQuad:e=>e**2,easeOutQuad:e=>-((e-1)**2-1),easeInOutQuad:e=>(e/=.5)<1?.5*e**2:-.5*((e-=2)*e-2),easeInCubic:e=>e**3,easeOutCubic:e=>(e-1)**3+1,easeInOutCubic:e=>(e/=.5)<1?.5*e**3:.5*((e-2)**3+2),easeInQuart:e=>e**4,easeOutQuart:e=>-((e-1)**4-1),easeInOutQuart:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeInQuint:e=>e**5,easeOutQuint:e=>(e-1)**5+1,easeInOutQuint:e=>(e/=.5)<1?.5*e**5:.5*((e-2)**5+2),easeInSine:e=>1-Math.cos(Math.PI/2*e),easeOutSine:e=>Math.sin(Math.PI/2*e),easeInOutSine:e=>-.5*(Math.cos(Math.PI*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:1-2**(-10*e),easeInOutExpo:e=>e===0?0:e===1?1:(e/=.5)<1?.5*2**(10*(e-1)):.5*(2-2**(-10*--e)),easeInCirc:e=>-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-1)**2),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeOutBounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,easeInBack:e=>e*e*(2.70158*e-1.70158),easeOutBack:e=>--e*e*(2.70158*e+1.70158)+1,easeInOutBack:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},elastic:e=>-1*4**(-8*e)*Math.sin((6*e-1)*(2*Math.PI)/2)+1,swingFromTo:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},swingFrom:e=>e*e*(2.70158*e-1.70158),swingTo:e=>--e*e*(2.70158*e+1.70158)+1,bounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,bouncePast:e=>e<1/2.75?7.5625*e*e:e<2/2.75?2-(7.5625*(e-=1.5/2.75)*e+.75):e<2.5/2.75?2-(7.5625*(e-=2.25/2.75)*e+.9375):2-(7.5625*(e-=2.625/2.75)*e+.984375),easeFromTo:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeFrom:e=>e**4,easeTo:e=>e**.25})},525:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.afterTween=t.beforeTween=t.tweenCreated=t.doesApply=void 0;let a=n(613),o=/(\d|-|\.)/,s=/([^\-0-9.]+)/g,l=/[0-9.-]+/g,u=(()=>{let e=l.source,t=`,\\s*`;return RegExp(`rgba?\\(${e}${t}${e}${t}${e}(${t}${e})?\\)`,`g`)})(),d=/^.*\(/,f=/#([0-9]|[a-f]){3,6}/gi,m=`VAL`,h=(e,t)=>e.map(((e,n)=>`_${t}_${n}`)),v=e=>{let t=e.match(s);return t?(t.length===1||e.charAt(0).match(o))&&t.unshift(``):t=[``,``],t.join(`VAL`)};function y(e){return parseInt(e,16)}let b=e=>`rgb(${(e=>{if((e=e.replace(/#/,``)).length===3){let[t,n,a]=e.split(``);e=t+t+n+n+a+a}return[y(e.substring(0,2)),y(e.substring(2,4)),y(e.substring(4,6))]})(e).join(`,`)})`,x=(e,t,n)=>{let a=t.match(e),o=t.replace(e,`VAL`);return a&&a.forEach((e=>o=o.replace(`VAL`,n(e)))),o},S=e=>{for(let t in e){let n=e[t];typeof n==`string`&&n.match(f)&&(e[t]=x(f,n,b))}},C=e=>{var t,n;let a=e.match(l)??[],o=a.slice(0,3).map((e=>Math.floor(Number(e)))),s=e.match(d)?.[0];if(a.length===3)return`${s}${o.join(`,`)})`;if(a.length===4)return`${s}${o.join(`,`)},${a[3]})`;throw Error(`Invalid rgbChunk: ${e}`)},T=e=>{var t;return e.match(l)??[]},E=(e,t)=>{let n={};return t.forEach((t=>{n[t]=e[t],delete e[t]})),n},D=(e,t)=>t.map((t=>Number(e[t]))),O=(e,t)=>(t.forEach((t=>e=e.replace(`VAL`,String(+t.toFixed(4))))),e);t.doesApply=e=>{for(let t in e._currentState)if(typeof e._currentState[t]==`string`)return!0;return!1},t.tweenCreated=function(e){let{_currentState:t,_originalState:n,_targetState:a}=e;[t,n,a].forEach(S),e._tokenData=(e=>{var t;let n={};for(let t in e){let a=e[t];typeof a==`string`&&(n[t]={formatString:v(a),chunkNames:h(T(a)?.map(Number),t)})}return n})(t)},t.beforeTween=function(e){let{_currentState:t,_originalState:n,_targetState:o,_easing:s,_tokenData:l}=e;typeof s!=`function`&&l&&((e,t)=>{var n;for(let n in t){let{chunkNames:o}=t[n],s=e[n];if(typeof s==`string`){let t=s.split(` `),n=t[t.length-1];for(let s=0;s<o.length;s++){let l=o[s],u=t[s]??n;(0,a.isEasingKey)(u)&&(e[l]=u)}}else o.forEach((t=>e[t]=s));delete e[n]}})(s,l),[t,n,o].forEach((e=>((e,t)=>{for(let n in t)T(String(e[n])).forEach(((a,o)=>e[t[n].chunkNames[o]]=+a)),delete e[n]})(e,l??{})))},t.afterTween=function(e){let{_currentState:t,_originalState:n,_targetState:a,_easing:o,_tokenData:s}=e;[t,n,a].forEach((e=>((e,t)=>{for(let n in t){let{chunkNames:a,formatString:o}=t[n],s=O(o,D(E(e,a),a));e[n]=x(u,s,C)}})(e,s??{}))),typeof o!=`function`&&s&&((e,t)=>{for(let n in t){let{chunkNames:a}=t[n],o=e[a[0]];e[n]=typeof o==`string`?a.map((t=>{let n=e[t];return delete e[t],n})).join(` `):o}})(o,s)}},55:function(e,t,n){var a,o=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.shouldScheduleUpdate=t.tween=t.Tweenable=t.composeEasingObject=t.scheduleUpdate=t.processTweens=t.tweenProps=t.getListTail=t.getListHead=t.resetList=void 0;let u=n(809),d=n(933),f=n(613),m=l(n(525)),h=`linear`,v=1e3/60,y=typeof window<`u`?window:n.g,b=`afterTween`,x=`beforeTween`,S=`string`,C=`function`,T=y.requestAnimationFrame;T||=typeof window>`u`?setTimeout:window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozCancelRequestAnimationFrame&&window.mozRequestAnimationFrame||setTimeout;let E=()=>{},D=null,O=null;t.resetList=()=>{D=O=null},t.getListHead=()=>D,t.getListTail=()=>O,t.tweenProps=(e,t,n,a,o,s,l)=>{var d;let f,m=0,h=e<s?0:(e-s)/o,v;for(let e in t){if(typeof l==C)v=l;else{let t=l[e];v=typeof t==C?t:L.easing[t]??u.standardEasingFunctions.linear}m=v(h),f=n[e],t[e]=f+(a[e]-f)*m}return t};let k=(e,n)=>{var a;let o=e._timestamp??0,s=e._currentState,l=e._delay;if(n<o+l)return;let u=e._duration,d=e._targetState,f=o+l+u,m=n>f?f:n;e._hasEnded=m>=f;let h=u-(f-m);if(e._hasEnded)return e._render(d,h,e._data),e.stop(!0);e._applyFilter(x),m<o+l?o=u=m=1:o+=l,(0,t.tweenProps)(m,s,e._originalState,d,u,o,e._easing),e._applyFilter(b),e._render(s,h,e._data)};t.processTweens=()=>{let e,t=L.now(),n=D;for(;n;)e=n._next,k(n,t),n=e};let{now:j}=Date,M,N=!1;t.scheduleUpdate=()=>{M=j(),N&&T.call(y,t.scheduleUpdate,16.666666666666668),(0,t.processTweens)()},t.composeEasingObject=(e,t=h,n={})=>{if(typeof t==S&&(0,f.isEasingKey)(t))return L.easing[t];if(Array.isArray(t))return(0,d.getCubicBezierTransition)(...t);if(typeof n==`object`)if(typeof t==S||typeof t==C)for(let a in e)n[a]=t;else for(let a in e)n[a]=t[a]||h;return n};let F=(()=>{let e,t;return n=>{e=null,t=null,n===D?(D=n._next,D?D._previous=null:O=null):n===O?(O=n._previous,O?O._next=null:D=null):(e=n._previous,t=n._next,e&&(e._next=t),t&&(t._previous=e)),n._previous=n._next=null}})(),I=typeof Promise==C?Promise:null;class L{constructor(e={},t){this[a]=`Promise`,this._next=null,this._previous=null,this._config={},this._data={},this._delay=0,this._duration=500,this._filters=[],this._timestamp=null,this._hasEnded=!1,this._resolve=null,this._reject=null,this._originalState={},this._targetState={},this._start=E,this._render=E,this._promiseCtor=I,this._promise=null,this._isPlaying=!1,this._pausedAtTime=null,this._easing={},this._currentState=e||{},t&&this.setConfig(t)}_applyFilter(e){var t;for(let n=this._filters.length;n>0;n--){let a=this._filters[n-n];(t=a[e])==null||t.call(a,this)}}tween(e){return this._isPlaying&&this.stop(),!e&&this._config||this.setConfig(e),this._pausedAtTime=null,this._timestamp=L.now(),this._start(this.state,this._data),this._delay&&this._render(this._currentState,0,this._data),this._resume(this._timestamp)}setConfig(e={}){var n;let{_config:a}=this,o;for(o in e)a[o]=e[o];let{promise:s=this._promiseCtor,start:l=E,finish:u,render:d=E}=a;this._data=a.data||this._data,this._isPlaying=!1,this._pausedAtTime=null,this._delay=e.delay||0,this._start=l,this._render=d,this._duration=a.duration||500,this._promiseCtor=s,u&&(this._resolve=u);let{from:f,to:m={}}=e,{_currentState:h,_originalState:v,_targetState:y}=this;for(let e in f)h[e]=f[e];let b=!1;for(let e in h){let t=h[e];b||typeof t!=S||(b=!0),v[e]=t,y[e]=m[e]??t}if(this._easing=(0,t.composeEasingObject)(this._currentState,a.easing,this._easing),this._filters.length=0,b){for(let e in L.filters)L.filters[e].doesApply(this)&&this._filters.push(L.filters[e]);this._applyFilter(`tweenCreated`)}return this}then(e,t){if(!this._promiseCtor)throw Error(`Promise implementation is unavailable`);return this._promise=new this._promiseCtor(((e,t)=>{this._resolve=e,this._reject=t})),this._promise.then(e,t)}catch(e){return this.then().catch(e)}finally(e){return this.then().finally(e)}get state(){return Object.assign({},this._currentState)}setState(e){this._currentState=e}pause(){return this._isPlaying?(this._pausedAtTime=L.now(),this._isPlaying=!1,F(this),this):this}resume(){return this._resume()}_resume(e=L.now()){if(this._timestamp===null)return this.tween();if(this._isPlaying&&this._promise)return this;this._pausedAtTime&&=(this._timestamp+=e-this._pausedAtTime,null),this._isPlaying=!0;let n=!!D;return D===null?(D=this,O=this):(this._previous=O,O&&(O._next=this),O=this),n||(0,t.shouldScheduleUpdate)(!0),this}seek(e){var t;e=Math.max(e,0);let n=L.now();return(this._timestamp??0)+e===0||(this._timestamp=n-e,k(this,n)),this}stop(e=!1){var n;return this._isPlaying?(this._isPlaying=!1,F(this),e&&(this._applyFilter(x),(0,t.tweenProps)(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),this._applyFilter(b),this._applyFilter(`afterTweenEnd`)),(n=this._resolve)==null||n.call(this,{data:this._data,state:this._currentState,tweenable:this}),this._resolve=null,this._reject=null,this):this}cancel(e=!1){var t;let{_currentState:n,_data:a,_isPlaying:o}=this;return o?((t=this._reject)==null||t.call(this,{data:a,state:n,tweenable:this}),this._resolve=null,this._reject=null,this.stop(e)):this}get isPlaying(){return this._isPlaying}get hasEnded(){return this._hasEnded}data(e=null){return e&&(this._data=Object.assign({},e)),this._data}dispose(){for(let e in this)delete this[e]}}t.Tweenable=L,a=Symbol.toStringTag,L.now=()=>(N||(M=j()),M),L.setScheduleFunction=e=>T=e,L.filters={token:m},L.easing=Object.create(u.standardEasingFunctions),t.tween=function(e={}){return new L({},{}).tween(e)},t.shouldScheduleUpdate=e=>{e&&N||(N=e,e&&(0,t.scheduleUpdate)())}},613:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.isEasingKey=void 0;let a=n(55);t.isEasingKey=e=>e in a.Tweenable.easing}},t={};function n(a){var o=t[a];if(o!==void 0)return o.exports;var s=t[a]={exports:{}};return e[a].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if(typeof globalThis==`object`)return globalThis;try{return this||Function(`return this`)()}catch{if(typeof window==`object`)return window}}(),n(156)}()}))}));init_generateUtilityClasses(),init_generateUtilityClass();function getAppBarUtilityClass(e){return generateUtilityClass(`MuiAppBar`,e)}var appBarClasses=generateUtilityClasses(`MuiAppBar`,[`root`,`positionFixed`,`positionAbsolute`,`positionSticky`,`positionStatic`,`positionRelative`,`colorDefault`,`colorPrimary`,`colorSecondary`,`colorInherit`,`colorTransparent`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$56=[`className`,`color`,`enableColorOnDark`,`position`],useUtilityClasses$50=e=>{let{color:t,position:n,classes:a}=e;return composeClasses({root:[`root`,`color${capitalize_default(t)}`,`position${capitalize_default(n)}`]},getAppBarUtilityClass,a)},joinVars=(e,t)=>e?`${e?.replace(`)`,``)}, ${t})`:t,AppBarRoot=styled$1(Paper,{name:`MuiAppBar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${capitalize_default(n.position)}`],t[`color${capitalize_default(n.color)}`]]}})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?e.palette.grey[100]:e.palette.grey[900];return _extends$3({display:`flex`,flexDirection:`column`,width:`100%`,boxSizing:`border-box`,flexShrink:0},t.position===`fixed`&&{position:`fixed`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0,"@media print":{position:`absolute`}},t.position===`absolute`&&{position:`absolute`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`sticky`&&{position:`sticky`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`static`&&{position:`static`},t.position===`relative`&&{position:`relative`},!e.vars&&_extends$3({},t.color==="default"&&{backgroundColor:n,color:e.palette.getContrastText(n)},t.color&&t.color!=="default"&&t.color!==`inherit`&&t.color!==`transparent`&&{backgroundColor:e.palette[t.color].main,color:e.palette[t.color].contrastText},t.color===`inherit`&&{color:`inherit`},e.palette.mode===`dark`&&!t.enableColorOnDark&&{backgroundColor:null,color:null},t.color===`transparent`&&_extends$3({backgroundColor:`transparent`,color:`inherit`},e.palette.mode===`dark`&&{backgroundImage:`none`})),e.vars&&_extends$3({},t.color==="default"&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette.AppBar.defaultBg:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette.AppBar.defaultBg),"--AppBar-color":t.enableColorOnDark?e.vars.palette.text.primary:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette.text.primary)},t.color&&!t.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette[t.color].main:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette[t.color].main),"--AppBar-color":t.enableColorOnDark?e.vars.palette[t.color].contrastText:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette[t.color].contrastText)},![`inherit`,`transparent`].includes(t.color)&&{backgroundColor:`var(--AppBar-background)`},{color:t.color===`inherit`?`inherit`:`var(--AppBar-color)`},t.color===`transparent`&&{backgroundImage:`none`,backgroundColor:`transparent`,color:`inherit`}))}),AppBar$1=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAppBar`}),{className:a,color:o=`primary`,enableColorOnDark:s=!1,position:l=`fixed`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$56),d=_extends$3({},n,{color:o,position:l,enableColorOnDark:s}),f=useUtilityClasses$50(d);return(0,import_jsx_runtime.jsx)(AppBarRoot,_extends$3({square:!0,component:`header`,ownerState:d,elevation:4,className:clsx$1(f.root,a,l===`fixed`&&`mui-fixed`),ref:t},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getToolbarUtilityClass(e){return generateUtilityClass(`MuiToolbar`,e)}var toolbarClasses=generateUtilityClasses(`MuiToolbar`,[`root`,`gutters`,`regular`,`dense`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled();var _excluded$55=[`className`,`component`,`disableGutters`,`variant`],useUtilityClasses$49=e=>{let{classes:t,disableGutters:n,variant:a}=e;return composeClasses({root:[`root`,!n&&`gutters`,a]},getToolbarUtilityClass,t)},ToolbarRoot=styled$1(`div`,{name:`MuiToolbar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(({theme:e,ownerState:t})=>_extends$3({position:`relative`,display:`flex`,alignItems:`center`},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},t.variant===`dense`&&{minHeight:48}),({theme:e,ownerState:t})=>t.variant===`regular`&&e.mixins.toolbar),Toolbar=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiToolbar`}),{className:a,component:o=`div`,disableGutters:s=!1,variant:l=`regular`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$55),d=_extends$3({},n,{component:o,disableGutters:s,variant:l}),f=useUtilityClasses$49(d);return(0,import_jsx_runtime.jsx)(ToolbarRoot,_extends$3({as:o,className:clsx$1(f.root,a),ref:t,ownerState:d},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getTypographyUtilityClass(e){return generateUtilityClass(`MuiTypography`,e)}var typographyClasses=generateUtilityClasses(`MuiTypography`,[`root`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`subtitle1`,`subtitle2`,`body1`,`body2`,`inherit`,`button`,`caption`,`overline`,`alignLeft`,`alignRight`,`alignCenter`,`alignJustify`,`noWrap`,`gutterBottom`,`paragraph`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$54=[`align`,`className`,`component`,`gutterBottom`,`noWrap`,`paragraph`,`variant`,`variantMapping`],useUtilityClasses$48=e=>{let{align:t,gutterBottom:n,noWrap:a,paragraph:o,variant:s,classes:l}=e;return composeClasses({root:[`root`,s,e.align!==`inherit`&&`align${capitalize_default(t)}`,n&&`gutterBottom`,a&&`noWrap`,o&&`paragraph`]},getTypographyUtilityClass,l)},TypographyRoot=styled$1(`span`,{name:`MuiTypography`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!==`inherit`&&t[`align${capitalize_default(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(({theme:e,ownerState:t})=>_extends$3({margin:0},t.variant===`inherit`&&{font:`inherit`},t.variant!==`inherit`&&e.typography[t.variant],t.align!==`inherit`&&{textAlign:t.align},t.noWrap&&{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},t.gutterBottom&&{marginBottom:`0.35em`},t.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,h5:`h5`,h6:`h6`,subtitle1:`h6`,subtitle2:`h6`,body1:`p`,body2:`p`,inherit:`p`},colorTransformations={primary:`primary.main`,textPrimary:`text.primary`,secondary:`secondary.main`,textSecondary:`text.secondary`,error:`error.main`},transformDeprecatedColors=e=>colorTransformations[e]||e,Typography=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTypography`}),a=transformDeprecatedColors(n.color),o=extendSxProp(_extends$3({},n,{color:a})),{align:s=`inherit`,className:l,component:u,gutterBottom:d=!1,noWrap:f=!1,paragraph:m=!1,variant:h=`body1`,variantMapping:v=defaultVariantMapping}=o,y=_objectWithoutPropertiesLoose$3(o,_excluded$54),b=_extends$3({},o,{align:s,color:a,className:l,component:u,gutterBottom:d,noWrap:f,paragraph:m,variant:h,variantMapping:v}),x=u||(m?`p`:v[h]||defaultVariantMapping[h])||`span`,S=useUtilityClasses$48(b);return(0,import_jsx_runtime.jsx)(TypographyRoot,_extends$3({as:x,ref:t,ownerState:b,className:clsx$1(S.root,l)},y))});init_createSvgIcon();var CheckCircle_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z`}),`CheckCircle`);init_createSvgIcon();var Warning_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z`}),`Warning`);init_generateUtilityClasses(),init_generateUtilityClass();function getStepIconUtilityClass(e){return generateUtilityClass(`MuiStepIcon`,e)}var stepIconClasses=generateUtilityClasses(`MuiStepIcon`,[`root`,`active`,`completed`,`error`,`text`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_SvgIcon();var _circle,_excluded$53=[`active`,`className`,`completed`,`error`,`icon`],useUtilityClasses$47=e=>{let{classes:t,active:n,completed:a,error:o}=e;return composeClasses({root:[`root`,n&&`active`,a&&`completed`,o&&`error`],text:[`text`]},getStepIconUtilityClass,t)},StepIconRoot=styled$1(SvgIcon,{name:`MuiStepIcon`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>({display:`block`,transition:e.transitions.create(`color`,{duration:e.transitions.duration.shortest}),color:(e.vars||e).palette.text.disabled,[`&.${stepIconClasses.completed}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.active}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.error}`]:{color:(e.vars||e).palette.error.main}})),StepIconText=styled$1(`text`,{name:`MuiStepIcon`,slot:`Text`,overridesResolver:(e,t)=>t.text})(({theme:e})=>({fill:(e.vars||e).palette.primary.contrastText,fontSize:e.typography.caption.fontSize,fontFamily:e.typography.fontFamily})),StepIcon=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiStepIcon`}),{active:a=!1,className:o,completed:s=!1,error:l=!1,icon:u}=n,d=_objectWithoutPropertiesLoose$3(n,_excluded$53),f=_extends$3({},n,{active:a,completed:s,error:l}),m=useUtilityClasses$47(f);if(typeof u==`number`||typeof u==`string`){let e=clsx$1(o,m.root);return l?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:Warning_default,className:e,ref:t,ownerState:f},d)):s?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:CheckCircle_default,className:e,ref:t,ownerState:f},d)):(0,import_jsx_runtime.jsxs)(StepIconRoot,_extends$3({className:e,ref:t,ownerState:f},d,{children:[_circle||=(0,import_jsx_runtime.jsx)(`circle`,{cx:`12`,cy:`12`,r:`12`}),(0,import_jsx_runtime.jsx)(StepIconText,{className:m.text,x:`12`,y:`12`,textAnchor:`middle`,dominantBaseline:`central`,ownerState:f,children:u})]}))}return u}),require_FileSaver_min=__commonJSMin(((e,t)=>{(function(t,n){typeof define==`function`&&define.amd?define([],n):e===void 0?(n(),t.FileSaver={exports:{}}.exports):n()})(e,function(){function e(e,t){return t===void 0?t={autoBom:!1}:typeof t!=`object`&&(console.warn(`Deprecated: Expected third argument to be a object`),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function n(e,t,n){var a=new XMLHttpRequest;a.open(`GET`,e),a.responseType=`blob`,a.onload=function(){u(a.response,t,n)},a.onerror=function(){console.error(`could not download file`)},a.send()}function a(e){var t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function o(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{var t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var s=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:{}.global==={}?{}:void 0,l=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=s.saveAs||(typeof window!=`object`||window!==s?function(){}:`download`in HTMLAnchorElement.prototype&&!l?function(e,t,l){var u=s.URL||s.webkitURL,d=document.createElement(`a`);t=t||e.name||`download`,d.download=t,d.rel=`noopener`,typeof e==`string`?(d.href=e,d.origin===location.origin?o(d):a(d.href)?n(e,t,l):o(d,d.target=`_blank`)):(d.href=u.createObjectURL(e),setTimeout(function(){u.revokeObjectURL(d.href)},4e4),setTimeout(function(){o(d)},0))}:`msSaveOrOpenBlob`in navigator?function(t,s,l){if(s=s||t.name||`download`,typeof t!=`string`)navigator.msSaveOrOpenBlob(e(t,l),s);else if(a(t))n(t,s,l);else{var u=document.createElement(`a`);u.href=t,u.target=`_blank`,setTimeout(function(){o(u)})}}:function(e,t,a,o){if(o||=open(``,`_blank`),o&&(o.document.title=o.document.body.innerText=`downloading...`),typeof e==`string`)return n(e,t,a);var u=e.type===`application/octet-stream`,d=/constructor/i.test(s.HTMLElement)||s.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||u&&d||l)&&typeof FileReader<`u`){var m=new FileReader;m.onloadend=function(){var e=m.result;e=f?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),o?o.location.href=e:location=e,o=null},m.readAsDataURL(e)}else{var h=s.URL||s.webkitURL,v=h.createObjectURL(e);o?o.location=v:location.href=v,o=null,setTimeout(function(){h.revokeObjectURL(v)},4e4)}});s.saveAs=u.saveAs=u,t!==void 0&&(t.exports=u)})})),require_window=__commonJSMin(((e,t)=>{t.exports=typeof window<`u`?window:{}})),import_shifty=require_shifty(),import_FileSaver_min=require_FileSaver_min(),import_window=__toESM(require_window()),PROGRESS_SAVED_MESSAGE=`Progress saved!`,RAIN_MESSAGE=`It rained in the night!`,STORM_MESSAGE=`There was a storm in the night!`,STORM_DESTROYS_SCARECROWS_MESSAGE=`There was a storm in the night! No scarecrows survived!`,FARM_PRODUCTS_TOOLTIP_TEXT=`This figure only includes sales of grown crops, crafted items, and animal products.`,COW_SOLD_TOOLTIP_TEXT=`This figure only includes cows you were not the original owner for.`,DATA_DELETED=`Your local game data has been deleted.`,INVALID_DATA_PROVIDED=`Invalid Farmhand data provided.`,UPDATE_AVAILABLE=`A game update is available! Click this message to reload and see what's new.`,SERVER_ERROR=`There was an issue connecting to the server. Please try again in a moment.`,CONNECTING_TO_SERVER=`Connecting...`,DISCONNECTING_FROM_SERVER=`Disconnecting...`,DISCONNECTED_FROM_SERVER=`You are now playing offline.`,REQUESTED_COW_TRADE_UNAVAILABLE=`The requested cow is no longer available.`,UNKNOWN_COW_TRADE_FAILURE=`Something went wrong with your cow trade request. Please try again!`,COW_ALREADY_OWNED=`It looks like you already have this cow!`,OUT_OF_COW_FEED_NOTIFICATION=`You're out of cow feed! Buy some more before your cows get hungry and run away!`,INVENTORY_FULL_NOTIFICATION=`Your inventory is full!`,SHOVELED=`Shoveled plot`,WATERING_CAN_ALT_TEXT=`A watering can for hydrating plants.`,WATERING_CAN_HIDDEN_TEXT=`Select the watering can to water your crops`,SCYTHE_ALT_TEXT=`A scythe for crop harvesting.`,SCYTHE_HIDDEN_TEXT=`Select the scythe to harvest ripened crops`,HOE_ALT_TEXT=`A hoe for removing crops and disposing of them. Also returns replantable items to your inventory.`,HOE_HIDDEN_TEXT=`Select the hoe to clear crops, or replantable field items`,SHOVEL_ALT_TEXT=`A shovel for digging up rocks.`,SHOVEL_HIDDEN_TEXT=`Select the shovel to dig for ore`,AXE_ALT_TEXT=`An axe for chopping down trees.`,AXE_HIDDEN_TEXT=`Select the axe to chop down trees in the forest for wood`,PICKER_POLE_ALT_TEXT=`A picker pole for gathering tree fruit.`,PICKER_POLE_HIDDEN_TEXT=`Select the picker pole to pick ripe fruit from trees in the forest`,TOOL_LEVEL_INFO={SCYTHE:{DEFAULT:`**Basic**: Harvests one crop per plot.`,BRONZE:`**Bronze**: Harvests two crops per plot.`,IRON:`**Iron**: Harvests three crops per plot.`,SILVER:`**Silver**: Harvests four crops per plot.`,GOLD:`**Gold**: Harvests five crops per plot.`},SHOVEL:{DEFAULT:`**Basic**: Has a 30% chance of digging up resources.`,BRONZE:`**Bronze**: Has a 40% chance of digging up resources.`,IRON:`**Iron**: Has a 50% chance of digging up resources.`,SILVER:`**Silver**: Has a 60% chance of digging up resources.`,GOLD:`**Gold**: Has a 70% chance of digging up resources.`},WATERING_CAN:{DEFAULT:`**Basic**: Keeps plots watered for one day.`,BRONZE:`**Bronze**: Keeps plots watered for two days.`,IRON:`**Iron**: Keeps plots watered for three days.`,SILVER:`**Silver**: Keeps plots watered for four days.`,GOLD:`**Gold**: Keeps plots watered for five days.`},HOE:{DEFAULT:`**Basic**: Destroys crops.`,BRONZE:`**Bronze**: 25% chance to retrieve seeds when digging up crops.`,IRON:`**Iron**: 50% chance to retrieve seeds when digging up crops.`,SILVER:`**Silver**: 75% chance to retrieve seeds when digging up crops.`,GOLD:`**Gold**: 100% chance to retrieve seeds when digging up crops.`},AXE:{DEFAULT:`**Basic**: Chops down trees for 1-2 wood.`,BRONZE:`**Bronze**: Chops down trees for 2-4 wood.`,IRON:`**Iron**: Chops down trees for 4-6 wood.`,SILVER:`**Silver**: Chops down trees for 6-8 wood.`,GOLD:`**Gold**: Chops down trees for 8-10 wood.`},PICKER_POLE:{DEFAULT:`**Basic**: Picks 1 fruit per harvest.`,BRONZE:`**Bronze**: Picks 2 fruit per harvest.`,IRON:`**Iron**: Picks 3 fruit per harvest.`,SILVER:`**Silver**: Picks 4 fruit per harvest.`,GOLD:`**Gold**: Picks 5 fruit per harvest.`}},FORGE_AVAILABLE_NOTIFICATION=`**The Forge** is now available in the Workshop!`,RECYCLING_AVAILABLE_NOTIFICATION=`**Recycling** is now available in the Workshop!`,FOREST_AVAILABLE_NOTIFICATION=`The **Forest** is now available!`,WOOD_CHIPPER_AVAILABLE_NOTIFICATION=`**Wood Chipper** recipes are now available in the Workshop!`,COW_COLOR_NAMES={[cowColors.BLUE]:`Blue`,[cowColors.BROWN]:`Brown`,[cowColors.GREEN]:`Green`,[cowColors.ORANGE]:`Orange`,[cowColors.PURPLE]:`Purple`,[cowColors.RAINBOW]:`Rainbow`,[cowColors.WHITE]:`White`,[cowColors.YELLOW]:`Yellow`},SHOVEL_UNLOCKED=`You've unlocked a new tool for the field, The **Shovel**!`,require_src=__commonJSMin(((e,t)=>{function n(e,t){var n=t&&t.cache?t.cache:v,a=t&&t.serializer?t.serializer:m;return(t&&t.strategy?t.strategy:u)(e,{cache:n,serializer:a})}function a(e){return e==null||typeof e==`number`||typeof e==`boolean`}function o(e,t,n,o){var s=a(o)?o:n(o),l=t.get(s);return l===void 0&&(l=e.call(this,o),t.set(s,l)),l}function s(e,t,n){var a=Array.prototype.slice.call(arguments,3),o=n(a),s=t.get(o);return s===void 0&&(s=e.apply(this,a),t.set(o,s)),s}function l(e,t,n,a,o){return n.bind(t,e,a,o)}function u(e,t){var n=e.length===1?o:s;return l(e,this,n,t.cache.create(),t.serializer)}function d(e,t){var n=s;return l(e,this,n,t.cache.create(),t.serializer)}function f(e,t){var n=o;return l(e,this,n,t.cache.create(),t.serializer)}function m(){return JSON.stringify(arguments)}function h(){this.cache=Object.create(null)}h.prototype.has=function(e){return e in this.cache},h.prototype.get=function(e){return this.cache[e]},h.prototype.set=function(e,t){this.cache[e]=t};var v={create:function(){return new h}};t.exports=n,t.exports.strategies={variadic:d,monadic:f}})),import_src=__toESM(require_src()),MemoizeCache=class{cache={};cacheSize;constructor({cacheSize:e=10}={}){this.cacheSize=e}has(e){return e in this.cache}get(e){return this.cache[e]}set(e,t){Object.keys(this.cache).length>this.cacheSize&&(this.cache={}),this.cache[e]=t}},memoize=(e,t={})=>(0,import_src.default)(e,{cache:{create:()=>new MemoizeCache(t)},...t}),getCropLifecycleDuration=memoize(({cropTimeline:e})=>e.reduce((e,t)=>e+t,0)),{freeze:freeze$9}=Object,crop=({cropTimeline:e=[],growsInto:t,tier:n=1,isSeed:a=!!t,cropLifecycleDuration:o=getCropLifecycleDuration({cropTimeline:e}),id:s=``,name:l=``,...u})=>freeze$9({id:s,name:l,cropTimeline:e,doesPriceFluctuate:!0,tier:n,type:itemType.CROP,value:10+o*n*(a?1:3),...a&&{enablesFieldMode:fieldMode.PLANT,growsInto:t,isPlantableCrop:!0},...u}),fromSeed=({cropTimeline:e,cropType:t,growsInto:n,tier:a=1},{variantIdx:o=0,canBeFermented:s=!1}={})=>({id:(Array.isArray(n)?n:[n])[o]||``,cropTimeline:e||[],cropType:t,doesPriceFluctuate:!0,tier:a,type:itemType.CROP,...s&&e&&{daysToFerment:getCropLifecycleDuration({cropTimeline:e})*a}}),cropVariety=({imageId:e,cropFamily:t,variety:n,...a})=>({imageId:e,cropFamily:t,variety:n,...crop({...a})}),isGrape=e=>`cropFamily`in e&&e.cropFamily===cropFamily.GRAPE,grape=e=>({...e,...cropVariety({...e,cropFamily:cropFamily.GRAPE})}),grapeSeed=crop({cropType:cropType.GRAPE,cropTimeline:[3,4],growsInto:[`grape-chardonnay`,`grape-sauvignon-blanc`,`grape-cabernet-sauvignon`,`grape-tempranillo`,`grape-nebbiolo`],id:`grape-seed`,name:`Grape Seed`,tier:7}),grapeVarietyNameMap={[grapeVariety.CHARDONNAY]:`Chardonnay`,[grapeVariety.SAUVIGNON_BLANC]:`Sauvignon Blanc`,[grapeVariety.CABERNET_SAUVIGNON]:`Cabernet Sauvignon`,[grapeVariety.TEMPRANILLO]:`Tempranillo`,[grapeVariety.NEBBIOLO]:`Nebbiolo`},wineVarietyValueMap={[grapeVariety.CHARDONNAY]:1,[grapeVariety.SAUVIGNON_BLANC]:8,[grapeVariety.CABERNET_SAUVIGNON]:3,[grapeVariety.TEMPRANILLO]:5,[grapeVariety.NEBBIOLO]:10},grapeChardonnay=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-chardonnay`)}),name:`Chardonnay Grape`,imageId:`grape-green`,variety:grapeVariety.CHARDONNAY,wineId:`wine-chardonnay`}),grapeSauvignonBlanc=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-sauvignon-blanc`)}),name:`Sauvignon Blanc Grape`,imageId:`grape-green`,variety:grapeVariety.SAUVIGNON_BLANC,wineId:`wine-sauvignon-blanc`}),grapeCabernetSauvignon=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-cabernet-sauvignon`)}),name:`Cabernet Sauvignon Grape`,imageId:`grape-purple`,variety:grapeVariety.CABERNET_SAUVIGNON,wineId:`wine-cabernet-sauvignon`}),grapeTempranillo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-tempranillo`)}),name:`Tempranillo Grape`,imageId:`grape-purple`,variety:grapeVariety.TEMPRANILLO,wineId:`wine-tempranillo`}),grapeNebbiolo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-nebbiolo`)}),name:`Nebbiolo Grape`,imageId:`grape-purple`,variety:grapeVariety.NEBBIOLO,wineId:`wine-nebbiolo`}),grapeVarietyToGrapeItemMap={[grapeVariety.CHARDONNAY]:grapeChardonnay,[grapeVariety.SAUVIGNON_BLANC]:grapeSauvignonBlanc,[grapeVariety.CABERNET_SAUVIGNON]:grapeCabernetSauvignon,[grapeVariety.TEMPRANILLO]:grapeTempranillo,[grapeVariety.NEBBIOLO]:grapeNebbiolo},getYeastRequiredForWine=e=>wineVarietyValueMap[e]*5,asparagusSeed=crop({cropType:cropType.ASPARAGUS,cropTimeline:[4,2,2,1],growsInto:`asparagus`,id:`asparagus-seed`,name:`Asparagus Seed`,tier:4}),asparagus=crop({...fromSeed(asparagusSeed,{canBeFermented:!0}),name:`Asparagus`}),carrotSeed=crop({cropType:cropType.CARROT,cropTimeline:[2,1,1,1],growsInto:`carrot`,id:`carrot-seed`,name:`Carrot Seed`,tier:1}),carrot=crop({...fromSeed(carrotSeed,{canBeFermented:!0}),name:`Carrot`}),cornSeed=crop({cropType:cropType.CORN,cropTimeline:[3,1,1,1,2,2],growsInto:`corn`,id:`corn-seed`,name:`Corn Kernels`,tier:2}),corn=crop({...fromSeed(cornSeed,{canBeFermented:!0}),name:`Corn`}),garlicSeed=crop({cropType:cropType.GARLIC,cropTimeline:[2,1,1,1],growsInto:`garlic`,id:`garlic-seed`,name:`Garlic Bulb`,tier:5}),garlic=crop({...fromSeed(garlicSeed,{canBeFermented:!0}),name:`Garlic`}),jalapenoSeed=crop({cropType:cropType.JALAPENO,cropTimeline:[2,1,1,1],growsInto:`jalapeno`,id:`jalapeno-seed`,name:`Jalapeño Seed`,tier:4}),jalapeno=crop({...fromSeed(jalapenoSeed,{canBeFermented:!0}),name:`Jalapeño`}),oliveSeed=crop({cropType:cropType.OLIVE,cropTimeline:[3,6],growsInto:`olive`,id:`olive-seed`,name:`Olive Seed`,tier:6}),olive=crop({...fromSeed(oliveSeed,{canBeFermented:!0}),name:`Olive`}),onionSeed=crop({cropType:cropType.ONION,cropTimeline:[3,1,2,1],growsInto:`onion`,id:`onion-seed`,name:`Onion Seeds`,tier:2}),onion=crop({...fromSeed(onionSeed,{canBeFermented:!0}),name:`Onion`}),peaSeed=crop({cropType:cropType.PEA,cropTimeline:[2,3],growsInto:`pea`,id:`pea-seed`,name:`Pea Seed`,tier:5}),pea=crop({...fromSeed(peaSeed,{canBeFermented:!0}),name:`Pea`}),potatoSeed=crop({cropType:cropType.POTATO,cropTimeline:[2,1,1,1],growsInto:`potato`,id:`potato-seed`,name:`Potato Seeds`,tier:2}),potato=crop({...fromSeed(potatoSeed,{canBeFermented:!0}),name:`Potato`}),pumpkinSeed=crop({cropType:cropType.PUMPKIN,cropTimeline:[3,1,1,1,1,1],growsInto:`pumpkin`,id:`pumpkin-seed`,name:`Pumpkin Seed`,tier:1}),pumpkin=crop({...fromSeed(pumpkinSeed,{canBeFermented:!0}),name:`Pumpkin`}),soybeanSeed=crop({cropType:cropType.SOYBEAN,cropTimeline:[2,2],growsInto:`soybean`,id:`soybean-seed`,name:`Soybean Seeds`,tier:3}),soybean=crop({...fromSeed(soybeanSeed,{canBeFermented:!0}),name:`Soybean`}),spinachSeed=crop({cropType:cropType.SPINACH,cropTimeline:[2,4],growsInto:`spinach`,id:`spinach-seed`,name:`Spinach Seed`,tier:1}),spinach=crop({...fromSeed(spinachSeed,{canBeFermented:!0}),name:`Spinach`}),sunflowerSeed=crop({cropType:cropType.SUNFLOWER,cropTimeline:[1,1,1,1,1,1],growsInto:`sunflower`,id:`sunflower-seed`,name:`Sunflower Seed`,tier:6}),sunflower=crop({...fromSeed(sunflowerSeed,{canBeFermented:!0}),name:`Sunflower`}),strawberrySeed=crop({cropType:cropType.STRAWBERRY,cropTimeline:[6,2],growsInto:`strawberry`,id:`strawberry-seed`,name:`Strawberry Seed`,tier:5}),strawberry=crop({...fromSeed(strawberrySeed),name:`Strawberry`}),sugarcaneSeed=crop({cropType:cropType.SUGARCANE,cropTimeline:[2,2,3],growsInto:`sugarcane`,id:`sugarcane-seed`,name:`Sugarcane Seed`,tier:7}),sugarcane=crop({...fromSeed(sugarcaneSeed),name:`Sugarcane`}),sweetPotatoSeed=crop({cropType:cropType.SWEET_POTATO,cropTimeline:[2,1,1,2,2],growsInto:`sweet-potato`,id:`sweet-potato-seed`,name:`Sweet Potato Slip`,tier:6}),sweetPotato=crop({...fromSeed(sweetPotatoSeed,{canBeFermented:!0}),name:`Sweet Potato`}),tomatoSeed=crop({cropType:cropType.TOMATO,cropTimeline:[2,1,1,1,2,2,2],growsInto:`tomato`,id:`tomato-seed`,name:`Tomato Seeds`,tier:3}),tomato=crop({...fromSeed(tomatoSeed,{canBeFermented:!0}),name:`Tomato`}),watermelonSeed=crop({cropType:cropType.WATERMELON,cropTimeline:[2,10],growsInto:`watermelon`,id:`watermelon-seed`,name:`Watermelon Seed`,tier:4}),watermelon=crop({...fromSeed(watermelonSeed),name:`Watermelon`}),wheatSeed=crop({cropType:cropType.WHEAT,cropTimeline:[1,1],growsInto:`wheat`,id:`wheat-seed`,name:`Wheat Seeds`,tier:3}),wheat=crop({...fromSeed(wheatSeed),name:`Wheat`}),{freeze:freeze$8}=Object,getFruitLifecycleDuration=e=>e.reduce((e,t)=>e+t,0),SAPLING_FRUIT_CYCLES_TO_BREAK_EVEN=4,tree=({treeTimeline:e=[],fruitTimeline:t=[],growsInto:n,tier:a=1,isSeed:o=!!n,id:s=``,name:l=``,...u})=>{let d=10+getFruitLifecycleDuration(t)*a*3;return freeze$8({id:s,name:l,treeTimeline:e,fruitTimeline:t,doesPriceFluctuate:!0,tier:a,type:itemType.TREE,value:o?d*SAPLING_FRUIT_CYCLES_TO_BREAK_EVEN:d,...o&&{growsInto:n,isPlantableTree:!0},...u})},fromSapling=({treeTimeline:e,fruitTimeline:t,treeType:n,growsInto:a,tier:o=1,lifespan:s},{variantIdx:l=0}={})=>({id:(Array.isArray(a)?a:[a])[l]||``,treeTimeline:e||[],fruitTimeline:t||[],treeType:n,doesPriceFluctuate:!0,tier:o,type:itemType.TREE,lifespan:s}),appleSapling=tree({treeType:treeType.APPLE,treeTimeline:[5,5,5,5,5],lifespan:200,fruitTimeline:[2,2,2],growsInto:`apple`,id:`apple-sapling`,name:`Apple Sapling`,tier:2}),apple=tree({...fromSapling(appleSapling),name:`Apple`}),bananaSapling=tree({treeType:treeType.BANANA,treeTimeline:[4,4,4,4,4],lifespan:200,fruitTimeline:[3,3,3,3],growsInto:`banana`,id:`banana-sapling`,name:`Banana Sapling`,tier:3}),banana=tree({...fromSapling(bananaSapling),name:`Banana`}),{freeze:freeze$7}=Object,bronzeOre=freeze$7({description:`A piece of bronze ore.`,doesPriceFluctuate:!0,id:`bronze-ore`,name:`Bronze Ore`,type:itemType.ORE,value:25,spawnChance:BRONZE_SPAWN_CHANCE}),{freeze:freeze$6}=Object,coal$1=freeze$6({description:`A piece of coal.`,doesPriceFluctuate:!1,id:`coal`,name:`Coal`,type:itemType.FUEL,spawnChance:COAL_SPAWN_CHANCE,value:2}),{freeze:freeze$5}=Object,goldOre=freeze$5({description:`A piece of gold ore.`,doesPriceFluctuate:!0,id:`gold-ore`,name:`Gold Ore`,type:itemType.ORE,value:500,spawnChance:GOLD_SPAWN_CHANCE}),{freeze:freeze$4}=Object,ironOre=freeze$4({description:`A piece of iron ore.`,doesPriceFluctuate:!0,id:`iron-ore`,name:`Iron Ore`,type:itemType.ORE,value:40,spawnChance:IRON_SPAWN_CHANCE}),{freeze:freeze$3}=Object,silverOre=freeze$3({description:`A piece of silver ore.`,doesPriceFluctuate:!0,id:`silver-ore`,name:`Silver Ore`,type:itemType.ORE,value:100,spawnChance:SILVER_SPAWN_CHANCE}),{freeze:freeze$2}=Object,stone=freeze$2({description:`A piece of rock.`,doesPriceFluctuate:!1,id:`stone`,name:`Stone`,spawnChance:STONE_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze:freeze$1}=Object,saltRock=freeze$1({description:`A large chunk of salt.`,doesPriceFluctuate:!0,id:`salt-rock`,name:`Salt Rock`,spawnChance:SALT_ROCK_SPAWN_CHANCE,type:itemType.STONE,value:10}),items_exports=__exportAll({apple:()=>apple,appleSapling:()=>appleSapling,asparagus:()=>asparagus,asparagusSeed:()=>asparagusSeed,banana:()=>banana,bananaSapling:()=>bananaSapling,bronzeOre:()=>bronzeOre,carrot:()=>carrot,carrotSeed:()=>carrotSeed,chocolateMilk:()=>chocolateMilk,coal:()=>coal$1,corn:()=>corn,cornSeed:()=>cornSeed,cowFeed:()=>cowFeed$1,garlic:()=>garlic,garlicSeed:()=>garlicSeed,goldOre:()=>goldOre,grapeCabernetSauvignon:()=>grapeCabernetSauvignon,grapeChardonnay:()=>grapeChardonnay,grapeNebbiolo:()=>grapeNebbiolo,grapeSauvignonBlanc:()=>grapeSauvignonBlanc,grapeSeed:()=>grapeSeed,grapeTempranillo:()=>grapeTempranillo,huggingMachine:()=>huggingMachine,ironOre:()=>ironOre,jalapeno:()=>jalapeno,jalapenoSeed:()=>jalapenoSeed,milk1:()=>milk1,milk2:()=>milk2,milk3:()=>milk3,olive:()=>olive,oliveSeed:()=>oliveSeed,onion:()=>onion,onionSeed:()=>onionSeed,pea:()=>pea,peaSeed:()=>peaSeed,potato:()=>potato,potatoSeed:()=>potatoSeed,pumpkin:()=>pumpkin,pumpkinSeed:()=>pumpkinSeed,rainbowFertilizer:()=>rainbowFertilizer,rainbowMilk1:()=>rainbowMilk1,rainbowMilk2:()=>rainbowMilk2,rainbowMilk3:()=>rainbowMilk3,saltRock:()=>saltRock,scarecrow:()=>scarecrow,silverOre:()=>silverOre,soybean:()=>soybean,soybeanSeed:()=>soybeanSeed,spinach:()=>spinach,spinachSeed:()=>spinachSeed,sprinkler:()=>sprinkler,stone:()=>stone,strawberry:()=>strawberry,strawberrySeed:()=>strawberrySeed,sugarcane:()=>sugarcane,sugarcaneSeed:()=>sugarcaneSeed,sunflower:()=>sunflower,sunflowerSeed:()=>sunflowerSeed,sweetPotato:()=>sweetPotato,sweetPotatoSeed:()=>sweetPotatoSeed,tomato:()=>tomato,tomatoSeed:()=>tomatoSeed,watermelon:()=>watermelon,watermelonSeed:()=>watermelonSeed,weed:()=>weed,wheat:()=>wheat,wheatSeed:()=>wheatSeed,wood:()=>wood}),{freeze}=Object,{COW_FEED,FERTILIZER,HUGGING_MACHINE,MILK,SCARECROW,SPRINKLER,WEED:WEED$1,WOOD}=itemType,weed=freeze({id:`weed`,name:`Weed`,value:.1,doesPriceFluctuate:!1,type:WEED$1}),wood=freeze({description:`A sturdy piece of wood, chopped from a tree.`,doesPriceFluctuate:!1,id:`wood`,name:`Wood`,type:WOOD,value:10}),rainbowFertilizer=freeze({description:`Helps crops grow a little faster and automatically replants them upon harvesting. Consumes seeds upon replanting and disappears if none are available. Also works for Scarecrows.`,enablesFieldMode:fieldMode.FERTILIZE,id:`rainbow-fertilizer`,name:`Rainbow Fertilizer`,type:FERTILIZER,value:15}),sprinkler=freeze({description:`Automatically waters adjacent plants every day.`,enablesFieldMode:fieldMode.SET_SPRINKLER,hoveredPlotRangeSize:1,id:`sprinkler`,isReplantable:!0,name:`Sprinkler`,type:SPRINKLER,value:120}),scarecrow=freeze({description:`Prevents crows from eating your crops. One scarecrow covers an entire field, but they are afraid of storms.`,enablesFieldMode:fieldMode.SET_SCARECROW,hoveredPlotRangeSize:2**53-1,id:`scarecrow`,isReplantable:!0,name:`Scarecrow`,type:SCARECROW,value:160}),cowFeed$1=freeze({id:COW_FEED_ITEM_ID,description:`Each cow automatically consumes one unit of Cow Feed per day. Fed cows gain and maintain weight.`,name:`Cow Feed`,type:COW_FEED,value:5}),huggingMachine=freeze({id:HUGGING_MACHINE_ITEM_ID,description:`Automatically hugs one cow three times every day.`,name:`Hugging Machine`,type:HUGGING_MACHINE,value:500}),milk1=freeze({id:`milk-1`,name:`Grade C Milk`,type:MILK,value:40}),milk2=freeze({id:`milk-2`,name:`Grade B Milk`,type:MILK,value:80}),milk3=freeze({id:`milk-3`,name:`Grade A Milk`,type:MILK,value:120}),rainbowMilk1=freeze({id:`rainbow-milk-1`,name:`Grade C Rainbow Milk`,type:MILK,value:60}),rainbowMilk2=freeze({id:`rainbow-milk-2`,name:`Grade B Rainbow Milk`,type:MILK,value:120}),rainbowMilk3=freeze({id:`rainbow-milk-3`,name:`Grade A Rainbow Milk`,type:MILK,value:180}),chocolateMilk=freeze({id:`chocolate-milk`,name:`Chocolate Milk`,type:MILK,value:80}),itemsMap$2={...Object.keys(items_exports).reduce((e,t)=>{let n=items_exports[t];return e[n.id]=n,e},{})},recipes_exports=__exportAll({appleJuice:()=>appleJuice,applePie:()=>applePie,bananaBread:()=>bananaBread,bananaCreamPie:()=>bananaCreamPie,bread:()=>bread,bronzeIngot:()=>bronzeIngot$1,burger:()=>burger,butter:()=>butter,carrotSoup:()=>carrotSoup,cheese:()=>cheese,chicknPotPie:()=>chicknPotPie,chocolate:()=>chocolate,chocolateSoyMilk:()=>chocolateSoyMilk,compost:()=>compost,fertilizer:()=>fertilizer,flour:()=>flour,frenchOnionSoup:()=>frenchOnionSoup,friedTofu:()=>friedTofu,garlicBread:()=>garlicBread,garlicFries:()=>garlicFries,goldIngot:()=>goldIngot$1,grapeSyrup:()=>grapeSyrup,hotSauce:()=>hotSauce,ironIngot:()=>ironIngot$1,jackolantern:()=>jackolantern,mulch:()=>mulch,oliveOil:()=>oliveOil,onionRings:()=>onionRings,popcorn:()=>popcorn,pumpkinPie:()=>pumpkinPie,rainbowCheese:()=>rainbowCheese,rainbowMulch:()=>rainbowMulch,salsa:()=>salsa,salt:()=>salt,silverIngot:()=>silverIngot$1,soyMilk:()=>soyMilk,spaghetti:()=>spaghetti,spicyAppleJam:()=>spicyAppleJam,spicyCheese:()=>spicyCheese,spicyPickledGarlic:()=>spicyPickledGarlic,strawberryJam:()=>strawberryJam,sugar:()=>sugar,summerSalad:()=>summerSalad,sunButter:()=>sunButter,sweetPotatoFries:()=>sweetPotatoFries,sweetPotatoPie:()=>sweetPotatoPie,tofu:()=>tofu,vegetableOil:()=>vegetableOil,wineCabernetSauvignon:()=>wineCabernetSauvignon,wineChardonnay:()=>wineChardonnay,wineNebbiolo:()=>wineNebbiolo,wineSauvignonBlanc:()=>wineSauvignonBlanc,wineTempranillo:()=>wineTempranillo,woodChips:()=>woodChips,yeast:()=>yeast}),itemsMap$1={...itemsMap$2},convertToRecipe=e=>{let t=Object.freeze({type:itemType.CRAFTED_ITEM,value:Object.keys(e.ingredients).reduce((t,n)=>t+RECIPE_INGREDIENT_VALUE_MULTIPLIER*itemsMap$1[n].value*e.ingredients[n],0),...e});return itemsMap$1[e.id]=t,t},salt=convertToRecipe({id:`salt`,name:`Salt`,ingredients:{[saltRock.id]:1},condition:e=>(e.itemsSold[saltRock.id]||0)>=30,description:`Useful for seasoning food and fermentation.`,recipeType:recipeType.KITCHEN}),flour=convertToRecipe({id:`flour`,name:`Flour`,ingredients:{[wheat.id]:10},condition:e=>(e.itemsSold[wheat.id]||0)>=20,recipeType:recipeType.KITCHEN}),sugar=convertToRecipe({id:`sugar`,name:`Sugar`,ingredients:{[sugarcane.id]:5},condition:e=>(e.itemsSold[sugarcane.id]||0)>=25,recipeType:recipeType.KITCHEN}),yeast=convertToRecipe({id:`yeast`,name:`Yeast`,ingredients:{[flour.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=25,recipeType:recipeType.KITCHEN}),getWineRecipeFromGrape=e=>({...convertToRecipe({id:e.wineId,name:`${grapeVarietyNameMap[e.variety]} Wine`,type:itemType.CRAFTED_ITEM,ingredients:{[e.id]:50,[yeast.id]:getYeastRequiredForWine(e.variety)},recipeType:recipeType.WINE,condition:()=>!1}),variety:e.variety}),bread=convertToRecipe({id:`bread`,name:`Bread`,ingredients:{[flour.id]:10,[yeast.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=30&&(e.itemsSold[yeast.id]||0)>=15,recipeType:recipeType.KITCHEN}),butter=convertToRecipe({id:`butter`,name:`Butter`,ingredients:{[milk3.id]:5},condition:e=>(e.itemsSold[milk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),sunButter=convertToRecipe({id:`sun-butter`,name:`Sun Butter`,ingredients:{[sunflower.id]:25},condition:e=>(e.itemsSold[sunflower.id]||0)>=200,recipeType:recipeType.KITCHEN}),oliveOil=convertToRecipe({id:`olive-oil`,name:`Olive Oil`,ingredients:{[olive.id]:250},condition:e=>(e.itemsSold[olive.id]||0)>=500,recipeType:recipeType.KITCHEN}),cheese=convertToRecipe({id:`cheese`,name:`Cheese`,ingredients:{[milk3.id]:8},condition:e=>(e.itemsSold[milk3.id]||0)>=20,recipeType:recipeType.KITCHEN}),rainbowCheese=convertToRecipe({id:`rainbowCheese`,name:`Rainbow Cheese`,ingredients:{[rainbowMilk3.id]:10},condition:e=>(e.itemsSold[rainbowMilk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),chocolate=convertToRecipe({id:`chocolate`,name:`Chocolate`,ingredients:{[chocolateMilk.id]:10},condition:e=>(e.itemsSold[chocolateMilk.id]||0)>=25,recipeType:recipeType.KITCHEN}),carrotSoup=convertToRecipe({id:`carrot-soup`,name:`Carrot Soup`,ingredients:{[carrot.id]:4},condition:e=>(e.itemsSold[carrot.id]||0)>=10,recipeType:recipeType.KITCHEN}),jackolantern=convertToRecipe({id:`jackolantern`,name:`Jack-o'-lantern`,ingredients:{[pumpkin.id]:1},condition:e=>(e.itemsSold[pumpkin.id]||0)>=50,recipeType:recipeType.KITCHEN}),spaghetti=convertToRecipe({id:`spaghetti`,name:`Spaghetti`,ingredients:{[wheat.id]:10,[tomato.id]:2},condition:e=>(e.itemsSold[wheat.id]||0)>=20&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),frenchOnionSoup=convertToRecipe({id:`french-onion-soup`,name:`French Onion Soup`,ingredients:{[onion.id]:5,[cheese.id]:2,[salt.id]:2},condition:e=>(e.itemsSold[onion.id]||0)>=15&&(e.itemsSold[cheese.id]||0)>=10,recipeType:recipeType.KITCHEN}),burger=convertToRecipe({id:`burger`,name:`Burger`,ingredients:{[bread.id]:1,[cheese.id]:1,[onion.id]:1,[soybean.id]:12,[spinach.id]:1,[tomato.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=5&&(e.itemsSold[cheese.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[soybean.id]||0)>=25&&(e.itemsSold[spinach.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),summerSalad=convertToRecipe({id:`summer-salad`,name:`Summer Salad`,ingredients:{[spinach.id]:6,[corn.id]:1,[carrot.id]:1},condition:e=>(e.itemsSold[spinach.id]||0)>=30&&(e.itemsSold[corn.id]||0)>5&&(e.itemsSold[carrot.id]||0)>5,recipeType:recipeType.KITCHEN}),soyMilk=convertToRecipe({id:`soy-milk`,name:`Soy Milk`,ingredients:{[soybean.id]:20},condition:e=>(e.itemsSold[soybean.id]||0)>=100,recipeType:recipeType.KITCHEN}),chocolateSoyMilk=convertToRecipe({id:`chocolate-soy-milk`,name:`Chocolate Soy Milk`,ingredients:{[soyMilk.id]:1,[chocolate.id]:1},condition:e=>(e.itemsSold[soyMilk.id]||0)>=5&&(e.itemsSold[chocolate.id]||0)>=5,recipeType:recipeType.KITCHEN}),tofu=convertToRecipe({id:`tofu`,name:`Tofu`,ingredients:{[soyMilk.id]:4},condition:e=>(e.itemsSold[soyMilk.id]||0)>=20,recipeType:recipeType.KITCHEN}),chicknPotPie=convertToRecipe({id:`chickn-pot-pie`,name:`Chick'n Pot Pie`,ingredients:{[tofu.id]:6,[pea.id]:10,[carrot.id]:8,[wheat.id]:12,[soyMilk.id]:3},condition:e=>(e.itemsSold[tofu.id]||0)>=30&&(e.itemsSold[pea.id]||0)>=225&&(e.itemsSold[carrot.id]||0)>=300&&(e.itemsSold[wheat.id]||0)>=425&&(e.itemsSold[soyMilk.id]||0)>=15,recipeType:recipeType.KITCHEN,isPie:!0}),hotSauce=convertToRecipe({id:`hot-sauce`,name:`Hot Sauce`,ingredients:{[jalapeno.id]:10,[salt.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=50,recipeType:recipeType.KITCHEN}),salsa=convertToRecipe({id:`salsa`,name:`Salsa`,ingredients:{[jalapeno.id]:1,[onion.id]:1,[tomato.id]:1,[corn.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5&&(e.itemsSold[corn.id]||0)>=5,recipeType:recipeType.KITCHEN}),spicyCheese=convertToRecipe({id:`spicy-cheese`,name:`Spicy Cheese`,ingredients:{[jalapeno.id]:4,[milk3.id]:10},condition:e=>(e.itemsSold[jalapeno.id]||0)>=20&&(e.itemsSold[milk3.id]||0)>=50,recipeType:recipeType.KITCHEN}),vegetableOil=convertToRecipe({id:`vegetable-oil`,name:`Vegetable Oil`,ingredients:{[soybean.id]:350},condition:e=>(e.itemsSold[soybean.id]||0)>=900,recipeType:recipeType.KITCHEN}),friedTofu=convertToRecipe({id:`fried-tofu`,name:`Deep Fried Tofu`,ingredients:{[tofu.id]:1,[vegetableOil.id]:2},condition:e=>(e.itemsSold[tofu.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>=50,recipeType:recipeType.KITCHEN}),spicyPickledGarlic=convertToRecipe({id:`spicy-pickled-garlic`,name:`Spicy Pickled Garlic`,ingredients:{[jalapeno.id]:2,[garlic.id]:5},condition:e=>(e.itemsSold[jalapeno.id]||0)>=12&&(e.itemsSold[garlic.id]||0)>=25,recipeType:recipeType.KITCHEN}),garlicFries=convertToRecipe({id:`garlic-fries`,name:`Garlic Fries`,ingredients:{[potato.id]:5,[garlic.id]:3,[vegetableOil.id]:1,[salt.id]:2},condition:e=>(e.itemsSold[potato.id]||0)>=50&&(e.itemsSold[garlic.id]||0)>=30,recipeType:recipeType.KITCHEN}),garlicBread=convertToRecipe({id:`garlic-bread`,name:`Garlic Bread`,ingredients:{[bread.id]:1,[garlic.id]:5,[oliveOil.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=30&&(e.itemsSold[oliveOil.id]||0)>=20&&(e.itemsSold[garlic.id]||0)>=50,recipeType:recipeType.KITCHEN}),strawberryJam=convertToRecipe({id:`strawberry-jam`,name:`Strawberry Jam`,ingredients:{[strawberry.id]:10},condition:e=>(e.itemsSold[strawberry.id]||0)>=60,recipeType:recipeType.KITCHEN}),spicyAppleJam=convertToRecipe({id:`spicy-apple-jam`,name:`Spicy Apple Jam`,ingredients:{[apple.id]:10,[jalapeno.id]:3},condition:e=>(e.itemsSold[apple.id]||0)>=60&&(e.itemsSold[jalapeno.id]||0)>=15,recipeType:recipeType.KITCHEN}),popcorn=convertToRecipe({id:`popcorn`,name:`Popcorn`,ingredients:{[corn.id]:2,[butter.id]:1},condition:e=>(e.itemsSold[corn.id]||0)>=12&&(e.itemsSold[butter.id]||0)>=6,recipeType:recipeType.KITCHEN}),pumpkinPie=convertToRecipe({id:`pumpkin-pie`,name:`Pumpkin Pie`,ingredients:{[pumpkin.id]:4,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[pumpkin.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN,isPie:!0}),applePie=convertToRecipe({id:`apple-pie`,name:`Apple Pie`,ingredients:{[apple.id]:4,[flour.id]:2,[butter.id]:2},condition:e=>(e.itemsSold[apple.id]||0)>=60&&(e.itemsSold[flour.id]||0)>=15&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN,isPie:!0}),appleJuice=convertToRecipe({id:`apple-juice`,name:`Apple Juice`,ingredients:{[apple.id]:6,[sugar.id]:2},condition:e=>(e.itemsSold[apple.id]||0)>=60&&(e.itemsSold[sugar.id]||0)>=10,recipeType:recipeType.KITCHEN}),grapeSyrup=convertToRecipe({id:`grape-syrup`,name:`Grape Syrup`,ingredients:{[grapeCabernetSauvignon.id]:8},condition:e=>(e.itemsSold[grapeCabernetSauvignon.id]||0)>=25,recipeType:recipeType.KITCHEN}),bananaBread=convertToRecipe({id:`banana-bread`,name:`Banana Bread`,ingredients:{[banana.id]:4,[flour.id]:3,[oliveOil.id]:1},condition:e=>(e.itemsSold[banana.id]||0)>=60&&(e.itemsSold[flour.id]||0)>=20&&(e.itemsSold[oliveOil.id]||0)>=20,recipeType:recipeType.KITCHEN}),bananaCreamPie=convertToRecipe({id:`banana-cream-pie`,name:`Banana Cream Pie`,ingredients:{[banana.id]:4,[flour.id]:2,[butter.id]:2,[sugar.id]:2,[milk3.id]:5},condition:e=>(e.itemsSold[banana.id]||0)>=60&&(e.itemsSold[flour.id]||0)>=15&&(e.itemsSold[butter.id]||0)>=75&&(e.itemsSold[sugar.id]||0)>=10&&(e.itemsSold[milk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),sweetPotatoPie=convertToRecipe({id:`sweet-potato-pie`,name:`Sweet Potato Pie`,ingredients:{[sweetPotato.id]:6,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN,isPie:!0}),sweetPotatoFries=convertToRecipe({id:`sweet-potato-fries`,name:`Sweet Potato Fries`,ingredients:{[sweetPotato.id]:10,[vegetableOil.id]:1,[salt.id]:1},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=100,recipeType:recipeType.KITCHEN}),onionRings=convertToRecipe({id:`onion-rings`,name:`Onion Rings`,ingredients:{[onion.id]:1,[vegetableOil.id]:1,[wheat.id]:5,[soyMilk.id]:1,[salt.id]:3},condition:e=>(e.itemsSold[onion.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>20&&(e.itemsSold[soyMilk.id]||0)>20&&(e.itemsSold[wheat.id]||0)>30,recipeType:recipeType.KITCHEN}),bronzeIngot$1=convertToRecipe({id:`bronze-ingot`,name:`Bronze Ingot`,ingredients:{[bronzeOre.id]:5,[coal$1.id]:5},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[bronzeOre.id]||0)>=50,recipeType:recipeType.FORGE}),ironIngot$1=convertToRecipe({id:`iron-ingot`,name:`Iron Ingot`,ingredients:{[ironOre.id]:5,[coal$1.id]:12},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[ironOre.id]||0)>=50,recipeType:recipeType.FORGE}),silverIngot$1=convertToRecipe({id:`silver-ingot`,name:`Silver Ingot`,ingredients:{[silverOre.id]:5,[coal$1.id]:8},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[silverOre.id]||0)>=50,recipeType:recipeType.FORGE}),goldIngot$1=convertToRecipe({id:`gold-ingot`,name:`Gold Ingot`,ingredients:{[goldOre.id]:5,[coal$1.id]:10},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[goldOre.id]||0)>=50,recipeType:recipeType.FORGE}),compost=convertToRecipe({id:`compost`,name:`Compost`,ingredients:{[weed.id]:10},condition:e=>e.purchasedComposter>0&&(e.itemsSold[weed.id]||0)>=100,description:`Can be used to make fertilizer.`,recipeType:recipeType.RECYCLING,type:itemType.CRAFTED_ITEM}),fertilizer=convertToRecipe({id:`fertilizer`,name:`Fertilizer`,ingredients:{[compost.id]:3},condition:e=>e.purchasedComposter>0&&(e.itemsSold[compost.id]||0)>=10,description:`Helps crops grow and mature a little faster.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.RECYCLING,type:itemType.FERTILIZER,value:25}),woodChips=convertToRecipe({id:`wood-chips`,name:`Wood Chips`,ingredients:{[wood.id]:1},condition:e=>e.purchasedWoodChipper>0&&(e.itemsSold[wood.id]||0)>=20,description:`Chipped wood, useful for making mulch.`,recipeType:recipeType.WOOD_CHIPPER,type:itemType.CRAFTED_ITEM}),mulch=convertToRecipe({id:`mulch`,name:`Mulch`,ingredients:{[woodChips.id]:3,[compost.id]:1},condition:e=>e.purchasedWoodChipper>0&&(e.itemsSold[woodChips.id]||0)>=10,description:`Helps trees grow a little faster.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.WOOD_CHIPPER,type:itemType.MULCH,value:50}),rainbowMulch=convertToRecipe({id:`rainbow-mulch`,name:`Rainbow Mulch`,ingredients:{[woodChips.id]:3,[rainbowFertilizer.id]:1},condition:e=>e.purchasedWoodChipper>0&&(e.itemsSold[woodChips.id]||0)>=10&&e.hasProducedRainbowFertilizer,description:`Helps trees grow a little faster and speeds up fruit regrowth too.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.WOOD_CHIPPER,type:itemType.MULCH}),wineChardonnay=getWineRecipeFromGrape({...grapeChardonnay}),wineSauvignonBlanc=getWineRecipeFromGrape({...grapeSauvignonBlanc}),wineCabernetSauvignon=getWineRecipeFromGrape({...grapeCabernetSauvignon}),wineTempranillo=getWineRecipeFromGrape({...grapeTempranillo}),wineNebbiolo=getWineRecipeFromGrape({...grapeNebbiolo}),coalNeededForIngots=(e,t=1)=>{switch(e){case bronzeIngot$1.id:return t*2;case ironIngot$1.id:return Math.round(t*3.5);case silverIngot$1.id:return Math.round(t*2.5);case goldIngot$1.id:return t*3;default:return t}},{bronzeIngot,ironIngot,silverIngot,goldIngot}=recipes_exports,{coal}=items_exports,upgrades={[toolType.HOE]:{[toolLevel.DEFAULT]:{id:`hoe-default`,name:`Basic Hoe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`hoe-bronze`,description:`Gives 25% chance to retrieve seeds when digging up crops`,name:`Bronze Hoe`,ingredients:{[bronzeIngot.id]:8,[coal.id]:coalNeededForIngots(bronzeIngot.id,8)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`hoe-iron`,description:`Gives 50% chance to retrieve seeds when digging up crops`,name:`Iron Hoe`,ingredients:{[ironIngot.id]:8,[coal.id]:coalNeededForIngots(ironIngot.id,8)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`hoe-silver`,description:`Gives 75% chance to retrieve seeds when digging up crops`,name:`Silver Hoe`,ingredients:{[silverIngot.id]:8,[coal.id]:coalNeededForIngots(silverIngot.id,8)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`hoe-gold`,description:`Gives 100% chance to retrieve seeds when digging up crops`,name:`Gold Hoe`,ingredients:{[goldIngot.id]:8,[coal.id]:coalNeededForIngots(goldIngot.id,8)},isMaxLevel:!0}},[toolType.SCYTHE]:{[toolLevel.DEFAULT]:{id:`scythe-default`,name:`Basic Scythe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`scythe-bronze`,description:`Increases crop yield by 1 when harvesting`,name:`Bronze Scythe`,ingredients:{[bronzeIngot.id]:10,[coal.id]:coalNeededForIngots(bronzeIngot.id,10)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`scythe-iron`,description:`Increases crop yield by 2 when harvesting`,name:`Iron Scythe`,ingredients:{[ironIngot.id]:10,[coal.id]:coalNeededForIngots(ironIngot.id,10)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`scythe-silver`,description:`Increases crop yield by 3 when harvesting`,name:`Silver Scythe`,ingredients:{[silverIngot.id]:10,[coal.id]:coalNeededForIngots(silverIngot.id,10)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`scythe-gold`,description:`Increases crop yield by 4 when harvesting`,name:`Gold Scythe`,ingredients:{[goldIngot.id]:10,[coal.id]:coalNeededForIngots(goldIngot.id,10)},isMaxLevel:!0}},[toolType.SHOVEL]:{[toolLevel.DEFAULT]:{id:`shovel-default`,name:`Basic Shovel`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`shovel-bronze`,description:`Increases chance of finding ore`,name:`Bronze Shovel`,ingredients:{[bronzeIngot.id]:15,[coal.id]:coalNeededForIngots(bronzeIngot.id,15)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`shovel-iron`,description:`Increases chance of finding ore`,name:`Iron Shovel`,ingredients:{[ironIngot.id]:15,[coal.id]:coalNeededForIngots(ironIngot.id,15)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`shovel-silver`,description:`Increases chance of finding ore`,name:`Silver Shovel`,ingredients:{[silverIngot.id]:15,[coal.id]:coalNeededForIngots(silverIngot.id,15)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`shovel-gold`,description:`Increases chance of finding ore`,name:`Gold Shovel`,ingredients:{[goldIngot.id]:15,[coal.id]:coalNeededForIngots(goldIngot.id,15)},isMaxLevel:!0}},[toolType.AXE]:{[toolLevel.DEFAULT]:{id:`axe-default`,name:`Basic Axe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`axe-bronze`,description:`Increases wood yield when chopping down trees`,name:`Bronze Axe`,ingredients:{[bronzeIngot.id]:12,[coal.id]:coalNeededForIngots(bronzeIngot.id,12)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`axe-iron`,description:`Increases wood yield when chopping down trees`,name:`Iron Axe`,ingredients:{[ironIngot.id]:12,[coal.id]:coalNeededForIngots(ironIngot.id,12)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`axe-silver`,description:`Increases wood yield when chopping down trees`,name:`Silver Axe`,ingredients:{[silverIngot.id]:12,[coal.id]:coalNeededForIngots(silverIngot.id,12)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`axe-gold`,description:`Increases wood yield when chopping down trees`,name:`Gold Axe`,ingredients:{[goldIngot.id]:12,[coal.id]:coalNeededForIngots(goldIngot.id,12)},isMaxLevel:!0}},[toolType.PICKER_POLE]:{[toolLevel.DEFAULT]:{id:`picker-pole-default`,name:`Basic Picker Pole`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`picker-pole-bronze`,description:`Picks 2 fruit per harvest`,name:`Bronze Picker Pole`,ingredients:{[bronzeIngot.id]:12,[coal.id]:coalNeededForIngots(bronzeIngot.id,12)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`picker-pole-iron`,description:`Picks 3 fruit per harvest`,name:`Iron Picker Pole`,ingredients:{[ironIngot.id]:12,[coal.id]:coalNeededForIngots(ironIngot.id,12)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`picker-pole-silver`,description:`Picks 4 fruit per harvest`,name:`Silver Picker Pole`,ingredients:{[silverIngot.id]:12,[coal.id]:coalNeededForIngots(silverIngot.id,12)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`picker-pole-gold`,description:`Picks 5 fruit per harvest`,name:`Gold Picker Pole`,ingredients:{[goldIngot.id]:12,[coal.id]:coalNeededForIngots(goldIngot.id,12)},isMaxLevel:!0}}};for(let e in upgrades){let t=upgrades[e];for(let n in t)Object.assign(t[n],{toolType:e,value:0,doesPriceFluctuate:!1,type:itemType.TOOL_UPGRADE,level:n})}var{ASPARAGUS,CARROT,CORN,GARLIC,GRAPE,JALAPENO,OLIVE,ONION,PEA,POTATO,PUMPKIN,SOYBEAN,SPINACH,SUNFLOWER,STRAWBERRY,SUGARCANE,SWEET_POTATO,TOMATO,WATERMELON,WHEAT,WEED}=cropType,recipeCategories={[recipeType.KITCHEN]:{},[recipeType.FORGE]:{},[recipeType.FERMENTATION]:{},[recipeType.RECYCLING]:{},[recipeType.WINE]:{},[recipeType.WOOD_CHIPPER]:{}},recipesMap={};for(let e of Object.keys(recipes_exports)){let t=recipes_exports[e];recipeCategories[t.recipeType][t.id]=t,recipesMap[t.id]=t}var upgradesMap={};for(let e of Object.keys(upgrades))for(let t of Object.values(upgrades[e]))upgradesMap[t.id]=t;var itemsMap={...itemsMap$2,...recipesMap,...upgradesMap},fermentableItemsMap=Object.fromEntries(Object.entries(itemsMap).filter(([e])=>`daysToFerment`in itemsMap[e])),cropItemIdToSeedItemMap=Object.entries(itemsMap$2).reduce((e,[t,n])=>{let{growsInto:a}=n;if(a){let n=Array.isArray(a)?a:[a];for(let a of n)e[a]=itemsMap$2[t]}return e},{}),cropTypeToIdMap={[ASPARAGUS]:`asparagus`,[CARROT]:`carrot`,[CORN]:`corn`,[GARLIC]:`garlic`,[GRAPE]:grapeSeed.growsInto,[JALAPENO]:`jalapeno`,[OLIVE]:`olive`,[ONION]:`onion`,[PEA]:`pea`,[POTATO]:`potato`,[PUMPKIN]:`pumpkin`,[SOYBEAN]:`soybean`,[SPINACH]:`spinach`,[STRAWBERRY]:`strawberry`,[SUGARCANE]:`sugarcane`,[SUNFLOWER]:`sunflower`,[SWEET_POTATO]:`sweet-potato`,[TOMATO]:`tomato`,[WATERMELON]:`watermelon`,[WHEAT]:`wheat`,[WEED]:`weed`},{SEED:SEED$6,GROWING:GROWING$3,GROWN:GROWN$14}=cropLifeStage,getLifeStageRange=memoize(e=>{let t=Array(e[0]).fill(SEED$6);return t=t.concat(e.slice(1).reduce((e,t)=>e.concat(Array(t).fill(GROWING$3)),[])),t},{}),{GROWN:GROWN$13}=cropLifeStage,getLifeStageForTimeline=(e,t)=>getLifeStageRange(e)[Math.floor(t)]||GROWN$13,{GROWN:GROWN$12,DEAD:DEAD$3}=treeLifeStage,getTreeLifeStage=e=>{let{itemId:t,daysOld:n=0,daysGrown:a=n}=e,o=itemsMap[t];if(!o)throw Error(`${t} is not a valid item`);let{treeTimeline:s}=o;if(!s)throw Error(`${t} has no treeTimeline`);let l=getLifeStageForTimeline(s,a),u=e.lifespan??o.lifespan;return l!==GROWN$12||u===void 0?l:n>=s.reduce((e,t)=>e+t,0)+u?DEAD$3:GROWN$12},VIEW_QUERY_PARAM_NAME=`view`,splitHash=()=>{let e=import_window.default.location.hash.replace(/^#/,``),t=e.indexOf(`?`);return t===-1?{path:e,query:``}:{path:e.slice(0,t),query:e.slice(t+1)}},writeHashQueryParams=(e,t=`replace`)=>{let{path:n}=splitHash(),a=e.toString(),o=`${n}${a?`?${a}`:``}`,{origin:s,pathname:l,search:u}=import_window.default.location,d=`${s}${l}${u}#${o}`;t===`push`?import_window.default.history.pushState({},``,d):import_window.default.history.replaceState({},``,d)},getHashQueryParams=()=>new URLSearchParams(splitHash().query),setHashQueryParam=(e,t,n=`replace`)=>{let a=getHashQueryParams();a.set(e,t),writeHashQueryParams(a,n)},removeHashQueryParam=(e,t=`replace`)=>{let n=getHashQueryParams();n.delete(e),writeHashQueryParams(n,t)},withCurrentHashQuery=e=>{let t=getHashQueryParams().toString();return t?`${e}?${t}`:e},isPlantedTree=e=>!!(e&&`itemId`in e),moneyTotal=(...e)=>e.reduce((e,t)=>e+=Math.round(t*100),0)/100,assignPersistedKey=(e,t,n)=>{let a=t[n];a!==void 0&&(e[n]=a)},reduceByPersistedKeys=e=>PERSISTED_STATE_KEYS.reduce((t,n)=>(assignPersistedKey(t,e,n),t),{}),isItemAGrownCrop=e=>e.type===itemType.CROP&&!e.growsInto,isItemAGrownFruit=e=>e.type===itemType.TREE&&!e.isPlantableTree,FARM_PRODUCT_TYPES=[itemType.CRAFTED_ITEM,itemType.FUEL,itemType.MILK,itemType.ORE,itemType.STONE],isItemAFarmProduct=e=>!!(isItemAGrownCrop(e)||isItemAGrownFruit(e)||FARM_PRODUCT_TYPES.includes(e.type)),farmProductsSold=memoize(e=>Object.entries(e).reduce((e,[t,n])=>e+(isItemAFarmProduct(itemsMap[t])&&n||0),0)),levels=[];levels[1]={unlocksShopItem:carrotSeed.id},levels[2]={unlocksShopItem:spinachSeed.id},levels[3]={unlocksShopItem:fertilizer.id},levels[4]={unlocksShopItem:pumpkinSeed.id},levels[5]={unlocksShopItem:sprinkler.id},levels[6]={unlocksTool:[toolType.SHOVEL]},levels[8]={increasesSprinklerRange:!0},levels[10]={unlocksShopItem:cornSeed.id},levels[12]={increasesSprinklerRange:!0},levels[14]={unlocksShopItem:potatoSeed.id},levels[15]={unlocksStageFocusType:stageFocusType.FOREST,unlocksShopItem:appleSapling.id,unlocksTool:[toolType.AXE,toolType.PICKER_POLE]},levels[16]={unlocksShopItem:onionSeed.id},levels[17]={unlocksShopItem:mulch.id},levels[18]={unlocksShopItem:soybeanSeed.id},levels[20]={unlocksShopItem:wheatSeed.id},levels[21]={unlocksShopItem:bananaSapling.id},levels[22]={unlocksShopItem:tomatoSeed.id},levels[24]={unlocksShopItem:asparagusSeed.id},levels[26]={unlocksShopItem:jalapenoSeed.id},levels[28]={unlocksShopItem:watermelonSeed.id},levels[30]={unlocksShopItem:peaSeed.id},levels[32]={unlocksShopItem:strawberrySeed.id},levels[34]={unlocksShopItem:garlicSeed.id},levels[36]={unlocksShopItem:sweetPotatoSeed.id},levels[38]={unlocksShopItem:oliveSeed.id},levels[40]={unlocksShopItem:sunflowerSeed.id},levels[42]={unlocksShopItem:grapeSeed.id},levels[44]={unlocksShopItem:sugarcaneSeed.id};for(let e=0;e<levels.length;e++)levels[e]={id:e,...levels[e]};Object.freeze(levels);var unlockableItems=levels.reduce((e,{id:t,unlocksShopItem:n})=>(n&&t!==void 0&&(e[n]=t),e),{}),itemUnlockLevels=Object.entries(unlockableItems).reduce((e,[t,n])=>(e[String(n)]=t,e),{}),getLevelEntitlements=memoize(e=>{let t={sprinklerRange:1,items:{},tools:{},stageFocusType:{}};return levels.find(({unlocksShopItem:n,unlocksStageFocusType:a,unlocksTool:o,id:s,increasesSprinklerRange:l})=>{if(l&&t.sprinklerRange++,n&&(t.items[n]=!0),o)for(let e of o)t.tools[e]=!0;return a&&(t.stageFocusType[a]=!0),s===e}),t});function levelAchieved(e=0){return Math.floor(Math.sqrt(e)/10)+1}var transformStateDataForImport=e=>{let t={...e};[`version`].forEach(e=>delete t[e]),t.experience===0&&(t.experience=farmProductsSold(t.itemsSold||{})),t.showHomeScreen===!1&&t.stageFocus===stageFocusType.HOME&&(t={...t,stageFocus:STANDARD_VIEW_LIST[0]});{let{cowId1:e,cowId2:n}=t.cowBreedingPen,a=t.cowInventory.reduce((e,t)=>(e[t.id]=t,e),{});[e,n].some(e=>e&&!(e in a))&&(t.cowBreedingPen={cowId1:null,cowId2:null,daysUntilBirth:-1})}t.id&&(t.playerId=t.id,delete t.id);for(let e of[toolType.AXE,toolType.PICKER_POLE])if(t.toolLevels&&!t.toolLevels[e]){let n=!!getLevelEntitlements(levelAchieved(t.experience??0)).tools[e];t.toolLevels={...t.toolLevels,[e]:n?toolLevel.DEFAULT:toolLevel.UNAVAILABLE}}return t},require_alea=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=l();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function s(e,t){var n=new a(e),s=t&&t.state,l=n.next;return l.int32=function(){return n.next()*4294967296|0},l.double=function(){return l()+(l()*2097152|0)*11102230246251565e-32},l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}function l(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var a=.02519603282416938*e;e=a>>>0,a-=e,a*=e,e=a>>>0,a-=e,e+=a*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.alea=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor128=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor128=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorwow=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,a==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorwow=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorshift7=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.x,n=t.i,a=e[n],o;return a^=a>>>7,o=a^a<<24,a=e[n+1&7],o^=a^a>>>10,a=e[n+3&7],o^=a^a>>>3,a=e[n+4&7],o^=a^a<<7,a=e[n+7&7],a^=a<<13,o^=a^a<<9,e[n]=o,t.i=n+1&7,o};function n(e,t){var n,a=[];if(t===(t|0))a[0]=t;else for(t=``+t,n=0;n<t.length;++n)a[n&7]=a[n&7]<<15^t.charCodeAt(n)+a[n+1&7]<<13;for(;a.length<8;)a.push(0);for(n=0;n<8&&a[n]===0;++n);for(n==8?a[7]=-1:a[n],e.x=a,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.x&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorshift7=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor4096=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.w,n=t.X,a=t.i,o,s;return t.w=e=e+1640531527|0,s=n[a+34&127],o=n[a=a+1&127],s^=s<<13,o^=o<<17,s^=s>>>15,o^=o>>>12,s=n[a]=s^o,t.i=a,s+(e^e>>>16)|0};function n(e,t){var n,a,o,s,l,u=[],d=128;for(t===(t|0)?(a=t,t=null):(t+=`\0`,a=0,d=Math.max(d,t.length)),o=0,s=-32;s<d;++s)t&&(a^=t.charCodeAt((s+32)%t.length)),s===0&&(l=a),a^=a<<10,a^=a>>>15,a^=a<<4,a^=a>>>13,s>=0&&(l=l+1640531527|0,n=u[s&127]^=a+l,o=n==0?o+1:0);for(o>=128&&(u[(t&&t.length||0)&127]=-1),o=127,s=512;s>0;--s)a=u[o+34&127],n=u[o=o+1&127],a^=a<<13,n^=n<<17,a^=a>>>15,n^=n>>>12,u[o]=a^n;e.w=l,e.X=u,e.i=o}n(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.X&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor4096=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_tychei=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,a=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-a|0,a=a<<24^a>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-a|0,t.d=a<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var a=0;a<n.length+20;a++)t.b^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.tychei=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require___vite_browser_external=__commonJSMin(((e,t)=>{t.exports={}})),require_seedrandom$1=__commonJSMin(((e,t)=>{(function(e,n,a){var o=256,s=6,l=52,u=`random`,d=a.pow(o,s),f=a.pow(2,l),m=f*2,h=o-1,v;function y(e,t,l){var h=[];t=t==1?{entropy:!0}:t||{};var v=C(S(t.entropy?[e,E(n)]:e??T(),3),h),y=new b(h),D=function(){for(var e=y.g(s),t=d,n=0;e<f;)e=(e+n)*o,t*=o,n=y.g(1);for(;e>=m;)e/=2,t/=2,n>>>=1;return(e+n)/t};return D.int32=function(){return y.g(4)|0},D.quick=function(){return y.g(4)/4294967296},D.double=D,C(E(y.S),n),(t.pass||l||function(e,t,n,o){return o&&(o.S&&x(o,y),e.state=function(){return x(y,{})}),n?(a[u]=e,t):e})(D,v,`global`in t?t.global:this==a,t.state)}function b(e){var t,n=e.length,a=this,s=0,l=a.i=a.j=0,u=a.S=[];for(n||(e=[n++]);s<o;)u[s]=s++;for(s=0;s<o;s++)u[s]=u[l=h&l+e[s%n]+(t=u[s])],u[l]=t;(a.g=function(e){for(var t,n=0,s=a.i,l=a.j,u=a.S;e--;)t=u[s=h&s+1],n=n*o+u[h&(u[s]=u[l=h&l+t])+(u[l]=t)];return a.i=s,a.j=l,n})(o)}function x(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function S(e,t){var n=[],a=typeof e,o;if(t&&a==`object`)for(o in e)try{n.push(S(e[o],t-1))}catch{}return n.length?n:a==`string`?e:e+`\0`}function C(e,t){for(var n=e+``,a,o=0;o<n.length;)t[h&o]=h&(a^=t[h&o]*19)+n.charCodeAt(o++);return E(t)}function T(){try{var t;return v&&(t=v.randomBytes)?t=t(o):(t=new Uint8Array(o),(e.crypto||e.msCrypto).getRandomValues(t)),E(t)}catch{var a=e.navigator,s=a&&a.plugins;return[+new Date,e,s,e.screen,E(n)]}}function E(e){return String.fromCharCode.apply(0,e)}if(C(a.random(),n),typeof t==`object`&&t.exports){t.exports=y;try{v=require___vite_browser_external()}catch{}}else typeof define==`function`&&define.amd?define(function(){return y}):a[`seed`+u]=y})(typeof self<`u`?self:e,[],Math)})),require_seedrandom=__commonJSMin(((e,t)=>{var n=require_alea(),a=require_xor128(),o=require_xorwow(),s=require_xorshift7(),l=require_xor4096(),u=require_tychei(),d=require_seedrandom$1();d.alea=n,d.xor128=a,d.xorwow=o,d.xorshift7=s,d.xor4096=l,d.tychei=u,t.exports=d})),import_seedrandom=__toESM(require_seedrandom()),RandomNumberService=class{seededRandom=null;constructor(){let e=new URLSearchParams(import_window.default.location?.search).get(`seed`);e&&this.seedRandomNumber(e)}seedRandomNumber(e){this.seededRandom=(0,import_seedrandom.default)(e)}generateRandomNumber(){return this.seededRandom?this.seededRandom():Math.random()}unseedRandomNumber(){this.seededRandom=null}isRandomNumberLessThan(e){return this.generateRandomNumber()<=e}},randomNumberService=new RandomNumberService,addCowToInventory=(e,t)=>{let{cowInventory:n}=e;return{...e,cowInventory:[...n,t]}},random$1=()=>randomNumberService.generateRandomNumber(),generateValueAdjustments=(e={},t={})=>Object.keys(itemsMap).reduce((n,a)=>(itemsMap[a].doesPriceFluctuate&&(e[a]?n[a]=.5:t[a]?n[a]=1.5:n[a]=random$1()+.5),n),{}),chooseRandomIndex=e=>Math.round(random$1()*(e.length-1)),chooseRandom=e=>e[chooseRandomIndex(e)],filterItemIdsToSeeds=e=>e.filter(e=>itemsMap[e]?.type===itemType.CROP),getRandomLevelUpReward=e=>itemsMap[chooseRandom(filterItemIdsToSeeds(Object.keys(getLevelEntitlements(e).items)))],getRandomLevelUpRewardQuantity=e=>e*10,INVALID_AMOUNT_MESSAGE=`Amount is invalid.`,INVALID_SCALE_MESSAGE=`Scale is invalid.`,NON_DECIMAL_CURRENCY_MESSAGE=`Currency is not decimal.`;function assert(e,t){if(!e)throw Error(`[Dinero.js] ${t}`)}function createDinero({calculator:e,onCreate:t,formatter:n={toNumber:Number,toString:String}}){return function a({amount:o,currency:{code:s,base:l,exponent:u},scale:d=u}){let f={code:s,base:l,exponent:u};return t?.({amount:o,currency:f,scale:d}),{calculator:e,formatter:n,create:a,toJSON(){return{amount:o,currency:f,scale:d}}}}}var DineroComparisonOperator=function(e){return e[e.LT=-1]=`LT`,e[e.EQ=0]=`EQ`,e[e.GT=1]=`GT`,e}({});function equal$2(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.EQ}function lessThan$1(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.LT}function absolute(e){let t=equal$2(e),n=lessThan$1(e),a=e.zero();return o=>{if(t(o,a))return a;if(n(o,a)){let t=e.decrement(a);return e.multiply(t,o)}return o}}function isArray(e){return Array.isArray(e)}function computeBase(e){return t=>isArray(t)?t.reduce((t,n)=>e.multiply(t,n)):t}function getDivisors(e){let{multiply:t}=e;return e=>e.reduce((n,a,o)=>{let s=e.slice(o).reduce((e,n)=>t(e,n));return[...n,s]},[])}function toUnits$1(e){let t=getDivisors(e);return function(...[n,a]){let{amount:o,currency:s,scale:l}=n.toJSON(),{power:u,integerDivide:d,modulo:f}=e,m=t((isArray(s.base)?s.base:[s.base]).map(e=>u(e,l))).reduce((e,t,n)=>{let a=e[n],o=d(a,t),s=f(a,t);return[...e.filter((e,t)=>t!==n),o,s]},[o]);return a?a({value:m,currency:s}):m}}function toDecimal$1(e){let t=toUnits$1(e),n=computeBase(e),a=equal$2(e);return function(...[o,s]){let{currency:l,scale:u}=o.toJSON(),d=n(l.base),f=e.zero(),m=Array(10).fill(null).reduce(e.increment,f),h=isArray(l.base),v=a(e.modulo(d,m),f);assert(!h&&v,NON_DECIMAL_CURRENCY_MESSAGE);let y=t(o),b=getDecimal(e,o.formatter)(y,u);return s?s({value:b,currency:l}):b}}function getDecimal(e,t){let n=absolute(e),a=equal$2(e),o=lessThan$1(e),s=e.zero();return(e,l)=>{let u=t.toString(e[0]),d=t.toString(n(e[1])),f=t.toNumber(l),m=`${u}${f>0?`.${d.padStart(f,`0`)}`:``}`,h=a(e[0],s),v=o(e[1],s);return h&&v?`-${m}`:m}}function toDecimal(...[e,t]){let{calculator:n}=e;return toDecimal$1(n)(e,t)}var USD={code:`USD`,base:10,exponent:2},add$1=(e,t)=>e+t,compare$1=(e,t)=>e<t?DineroComparisonOperator.LT:e>t?DineroComparisonOperator.GT:DineroComparisonOperator.EQ,decrement=e=>e-1,increment=e=>e+1,integerDivide=(e,t)=>Math.trunc(e/t),modulo=(e,t)=>e%t,multiply$1=(e,t)=>e*t,power=(e,t)=>e**t,subtract$1=(e,t)=>e-t;function zero(){return 0}var dinero=createDinero({calculator:{add:add$1,compare:compare$1,decrement,increment,integerDivide,modulo,multiply:multiply$1,power,subtract:subtract$1,zero},onCreate({amount:e,scale:t}){assert(Number.isInteger(e),INVALID_AMOUNT_MESSAGE),assert(Number.isInteger(t),INVALID_SCALE_MESSAGE)}}),moneyString=e=>toDecimal(dinero({amount:Math.round(e*100),currency:USD}),({value:e})=>Number(e).toLocaleString(`en-US`,{style:`currency`,currency:`USD`})),fruit_names_default=`Akee.Apple.Apricot.Avocado.Açaí.Banana.Bilberry.Blackberry.Blackcurrant.Blueberry.Boysenberry.Cantaloupe.Cherimoya.Cherry.Chico.Clementine.Cloudberry.Coconut.Crabapple.Cranberry.Cucumber.Currant.Damson.Durian.Elderberry.Feijoa.Fig.Goji.Gooseberry.Grape.Grapefruit.Guava.Honeyberry.Honeydew.Huckleberry.Jabuticaba.Jackfruit.Jambul.Jostaberry.Jujube.Juniper.Kiwano.Kiwi.Kumquat.Lemon.Lime.Longan.Loquat.Lychee.Mandarine.Mango.Mangosteen.Marion.Melon.Mulberry.Nance.Nectarine.Olive.Orange.Papaya.Peach.Pear.Persimmon.Pineapple.Pineberry.Pitaya.Plantain.Plum.Plumcot.Pomegranate.Pomelo.Prune.Pumpkin.Quince.Raisin.Rambutan.Raspberry.Salak.Salal.Salmonberry.Sapote.Satsuma.Soursop.Strawberry.Surinam.Tamarillo.Tamarind.Tangerine.Tomato.Watermelon.Yuzu.Zucchini`.split(`.`),convertStringToInteger$1=e=>e.split(``).reduce((e,t,n)=>e+t.charCodeAt(0)*n,0),getDefaultCowName=({id:e})=>fruit_names_default[convertStringToInteger$1(e)%fruit_names_default.length],getCowDisplayName=(e,t,n)=>e.originalOwnerId!==t&&!n?getDefaultCowName(e):e.name,animalNames=`Aardvark.Albatross.Alligator.Alpaca.Angelfish.Anglerfish.Ant.Anteater.Antelope.Antlion.Ape.Armadillo.Asp.Baboon.Badger.Bandicoot.Barnacle.Barracuda.Basilisk.Bass.Bat.Bear.Beaver.Bee.Beetle.Bird.Bison.Blackbird.Boar.Bobcat.Bonobo.Bug.Butterfly.Buzzard.Camel.Capybara.Cardinal.Caribou.Cat.Caterpillar.Catfish.Cattle.Chameleon.Cheetah.Chickadee.Chicken.Chimpanzee.Chinchilla.Chipmunk.Clam.Clownfish.Cobra.Condor.Coral.Cougar.Coyote.Crab.Crane.Crawdad.Crayfish.Cricket.Crocodile.Crow.Cuckoo.Deer.Dingo.Dinosaur.Dog.Dolphin.Donkey.Dove.Dragon.Dragonfly.Duck.Eagle.Earthworm.Echidna.Egret.Elephant.Elk.Emu.Ermine.Falcon.Ferret.Finch.Firefly.Fish.Flamingo.Fowl.Fox.Frog.Gazelle.Gecko.Gerbil.Gibbon.Giraffe.Goat.Goldfish.Goose.Gopher.Gorilla.Grasshopper.Grouse.Gull.Guppy.Hamster.Hare.Harrier.Hawk.Hedgehog.Heron.Hippopotamus.Horse.Hummingbird.Hyena.Iguana.Impala.Jackal.Jaguar.Jay.Jellyfish.Kangaroo.Kingfisher.Kiwi.Koala.Koi.Ladybug.Lark.Lemming.Lemur.Leopard.Lion.Llama.Lobster.Loon.Lynx.Macaw.Mackerel.Mammal.Manatee.Mandrill.Marlin.Marmoset.Marmot.Marsupial.Mastodon.Meerkat.Mink.Minnow.Mockingbird.Mole.Mongoose.Monkey.Moose.Mosquito.Mouse.Mule.Muskox.Narwhal.Ocelot.Octopus.Opossum.Orangutan.Orca.Ostrich.Otter.Owl.Ox.Panda.Panther.Parakeet.Parrot.Partridge.Peacock.Pelican.Penguin.Pig.Pigeon.Platypus.Pony.Porcupine.Porpoise.Puffin.Puma.Python.Quail.Quokka.Rabbit.Raccoon.Raven.Reindeer.Rhinoceros.Roadrunner.Rooster.Salamander.Salmon.Seahorse.Shark.Sheep.Shrew.Sloth.Snail.Sparrow.Squid.Squirrel.Starfish.Stingray.Stoat.Stork.Sturgeon.Swan.Swift.Swordfish.Tapir.Tarsier.Tern.Tiger.Tortoise.Toucan.Turkey.Turtle.Tyrannosaurus.Vole.Wallaby.Walrus.Warbler.Whale.Wildcat.Wolf.Wolverine.Wombat.Woodpecker.Wren.Yak.Zebra`.split(`.`),adjectives=`Adorable.Adventurous.Agreeable.Alert.Amused.Attractive.Average.Beautiful.Blushing.Brainy.Brave.Bright.Busy.Calm.Careful.Cautious.Charming.Cheerful.Clever.Cloudy.Colorful.Comfortable.Concerned.Cooperative.Courageous.Crazy.Curious.Cute.Delightful.Determined.Distinct.Dizzy.Elated.Elegant.Enchanting.Encouraging.Energetic.Enthusiastic.Excited.Exuberant.Famous.Fancy.Fantastic.Fierce.Fine.Friendly.Funny.Gentle.Gifted.Glamorous.Gleaming.Glorious.Gorgeous.Graceful.Handsome.Happy.Healthy.Helpful.Hilarious.Important.Inquisitive.Jolly.Joyous.Kind.Light.Lively.Lovely.Lucky.Magnificent.Mysterious.Nice.Nutty.Outrageous.Outstanding.Perfect.Pleasant.Poised.Powerful.Precious.Proud.Puzzled.Quaint.Relieved.Shiny.Silly.Sleepy.Smiling.Sparkling.Splendid.Stormy.Strange.Successful.Tame.Thankful.Thoughtful.Tough.Victorious.Vivacious.Wandering.Wide-eyed.Wild.Witty.Zany`.split(`.`),convertStringToInteger=function(e){return e.split(``).reduce(function(e,t,n){return e+t.charCodeAt(0)*n},0)},funAnimalName=function(e,t){var n=t===void 0?{}:t,a=n.adjectives,o=a===void 0?adjectives:a,s=n.animalNames,l=s===void 0?animalNames:s,u=convertStringToInteger(e),d=o[u%o.length],f=l[(u+convertStringToInteger(d))%l.length];return d+` `+f},getPlayerName=memoize(e=>funAnimalName(e)),integerString=e=>toDecimal(dinero({amount:Math.round(e),currency:USD,scale:0}),({value:e})=>Number(e).toLocaleString(`en-US`)),CROWS_DESTROYED=(e,t)=>`Oh no! Crows destroyed ${t} crop${t>1?`s`:``}!`,COW_PEN_PURCHASED=(e,t)=>`Purchased a cow pen with capacity for ${t} cows! You can visit your cow pen by going to the "Cows" page.`,CELLAR_PURCHASED=(e,t)=>`Purchased a cellar with capacity for ${t} kegs! View your keg inventory by going to the "Cellar" page.`,MILKS_PRODUCED=(e,t)=>{let n=`Your cows produced milk:
|
|
139
|
+
0 22,12A10,10 0 0,0 12,2Z`}))},iconStyles={fontSize:20,marginInlineEnd:8},defaultIconVariants={default:void 0,success:import_react$24.createElement(CheckIcon,{style:iconStyles}),warning:import_react$24.createElement(WarningIcon,{style:iconStyles}),error:import_react$24.createElement(ErrorIcon,{style:iconStyles}),info:import_react$24.createElement(InfoIcon,{style:iconStyles})};function createChainedFunction(e,t){return e.reduce(function(e,n){return n==null?e:function(){var a=[...arguments],o=[].concat(a);t&&o.indexOf(t)===-1&&o.push(t),e.apply(this,o),n.apply(this,o)}},function(){})}var useEnhancedEffect=typeof window<`u`?import_react$24.useLayoutEffect:import_react$24.useEffect;function useEventCallback(e){var t=(0,import_react$24.useRef)(e);return useEnhancedEffect(function(){t.current=e}),(0,import_react$24.useCallback)(function(){return t.current.apply(void 0,arguments)},[])}var Snackbar=(0,import_react$24.forwardRef)(function(e,t){var n=e.children,a=e.autoHideDuration,o=e.ClickAwayListenerProps,s=e.disableWindowBlurListener,l=s!==void 0&&s,u=e.onClose,d=e.onMouseEnter,f=e.onMouseLeave,m=e.open,h=e.resumeHideDuration,v=_objectWithoutPropertiesLoose$2(e,[`children`,`autoHideDuration`,`ClickAwayListenerProps`,`disableWindowBlurListener`,`onClose`,`onMouseEnter`,`onMouseLeave`,`open`,`resumeHideDuration`]),y=(0,import_react$24.useRef)(),b=useEventCallback(function(){u&&u.apply(void 0,arguments)}),x=useEventCallback(function(e){!u||e==null||(clearTimeout(y.current),y.current=setTimeout(function(){b(null,REASONS.TIMEOUT)},e))});(0,import_react$24.useEffect)(function(){return m&&x(a),function(){clearTimeout(y.current)}},[m,a,x]);var S=function(){clearTimeout(y.current)},C=(0,import_react$24.useCallback)(function(){a!=null&&x(h??a*.5)},[a,h,x]);return(0,import_react$24.useEffect)(function(){if(!l&&m)return window.addEventListener(`focus`,C),window.addEventListener(`blur`,S),function(){window.removeEventListener(`focus`,C),window.removeEventListener(`blur`,S)}},[l,C,m]),(0,import_react$24.createElement)(ClickAwayListener,_extends$2({onClickAway:function(e){u&&u(e,REASONS.CLICKAWAY)}},o),(0,import_react$24.createElement)(`div`,_extends$2({onMouseEnter:function(e){d&&d(e),S()},onMouseLeave:function(e){f&&f(e),C()},ref:t},v),n))}),componentName$1=`SnackbarItem`,classes$1={contentRoot:componentName$1+`-contentRoot`,lessPadding:componentName$1+`-lessPadding`,variantSuccess:componentName$1+`-variantSuccess`,variantError:componentName$1+`-variantError`,variantInfo:componentName$1+`-variantInfo`,variantWarning:componentName$1+`-variantWarning`,message:componentName$1+`-message`,action:componentName$1+`-action`,wrappedRoot:componentName$1+`-wrappedRoot`},StyledSnackbar=styled$1(Snackbar)(function(e){var t,n=e.theme,a=n.palette.mode||n.palette.type,o=emphasize(n.palette.background.default,a===`light`?.8:.98);return t={},t[`&.`+classes$1.wrappedRoot]={position:`relative`,transform:`translateX(0)`,top:0,right:0,bottom:0,left:0},t[`.`+classes$1.contentRoot]=_extends$2({},n.typography.body2,{backgroundColor:o,color:n.palette.getContrastText(o),alignItems:`center`,padding:`6px 16px`,borderRadius:`4px`,boxShadow:`0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)`}),t[`.`+classes$1.lessPadding]={paddingLeft:8*2.5},t[`.`+classes$1.variantSuccess]={backgroundColor:`#43a047`,color:`#fff`},t[`.`+classes$1.variantError]={backgroundColor:`#d32f2f`,color:`#fff`},t[`.`+classes$1.variantInfo]={backgroundColor:`#2196f3`,color:`#fff`},t[`.`+classes$1.variantWarning]={backgroundColor:`#ff9800`,color:`#fff`},t[`.`+classes$1.message]={display:`flex`,alignItems:`center`,padding:`8px 0`},t[`.`+classes$1.action]={display:`flex`,alignItems:`center`,marginLeft:`auto`,paddingLeft:16,marginRight:-8},t}),SnackbarItem=function(e){var t=e.classes,n=_objectWithoutPropertiesLoose$2(e,[`classes`]),a=(0,import_react$24.useRef)(),o=(0,import_react$24.useState)(!0),s=o[0],l=o[1];(0,import_react$24.useEffect)(function(){return function(){a.current&&clearTimeout(a.current)}},[]);var u=createChainedFunction([n.snack.onClose,n.onClose],n.snack.key),d=function(){n.snack.requestClose&&u(null,REASONS.INSTRCUTED)},f=function(){a.current=setTimeout(function(){l(!s)},125)},m=n.style,h=n.ariaAttributes,v=n.className,y=n.hideIconVariant,b=n.iconVariant,x=n.snack,S=n.action,C=n.content,T=n.TransitionComponent,E=n.TransitionProps,D=n.transitionDuration,O=_objectWithoutPropertiesLoose$2(n,[`style`,`dense`,`ariaAttributes`,`className`,`hideIconVariant`,`iconVariant`,`snack`,`action`,`content`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),k=x.key,j=x.open,M=x.className,N=x.variant,F=x.content,I=x.action,L=x.ariaAttributes,R=x.anchorOrigin,z=x.message,B=x.TransitionComponent,V=x.TransitionProps,H=x.transitionDuration,U=_objectWithoutPropertiesLoose$2(x,[`persist`,`key`,`open`,`entered`,`requestClose`,`className`,`variant`,`content`,`action`,`ariaAttributes`,`anchorOrigin`,`message`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),W=_extends$2({},defaultIconVariants,{},b)[N],G=_extends$2({"aria-describedby":`notistack-snackbar`},objectMerge(L,h)),ee=B||T||DEFAULTS.TransitionComponent,te=objectMerge(H,D,DEFAULTS.transitionDuration),K=_extends$2({direction:getTransitionDirection(R)},objectMerge(V,E)),q=I||S;typeof q==`function`&&(q=q(k));var ne=F||C;typeof ne==`function`&&(ne=ne(k,x.message));var re=[`onEnter`,`onEntering`,`onEntered`,`onExit`,`onExiting`,`onExited`].reduce(function(e,t){var a;return _extends$2({},e,(a={},a[t]=createChainedFunction([n.snack[t],n[t]],n.snack.key),a))},{});return import_react$24.createElement(Collapse,{unmountOnExit:!0,timeout:175,in:s,onExited:re.onExited},import_react$24.createElement(StyledSnackbar,Object.assign({},O,U,{open:j,className:clsx(t.root,classes$1.wrappedRoot,t[transformer.toAnchorOrigin(R)]),onClose:u}),import_react$24.createElement(ee,Object.assign({appear:!0,in:j,timeout:te},K,{onExit:re.onExit,onExiting:re.onExiting,onExited:f,onEnter:re.onEnter,onEntering:re.onEntering,onEntered:createChainedFunction([re.onEntered,d])}),ne||import_react$24.createElement(SnackbarContent,Object.assign({},G,{role:`alert`,style:m,className:clsx(classes$1.contentRoot,classes$1[transformer.toVariant(N)],t[transformer.toVariant(N)],v,M,!y&&W&&classes$1.lessPadding)}),import_react$24.createElement(`div`,{id:G[`aria-describedby`],className:classes$1.message},y?null:W,z),q&&import_react$24.createElement(`div`,{className:classes$1.action},q)))))},collapse={container:`& > .MuiCollapse-container, & > .MuiCollapse-root`,wrapper:`& > .MuiCollapse-container > .MuiCollapse-wrapper, & > .MuiCollapse-root > .MuiCollapse-wrapper`},xsWidthMargin=16,componentName$2=`SnackbarContainer`,classes$2={root:componentName$2+`-root`,rootDense:componentName$2+`-rootDense`,top:componentName$2+`-top`,bottom:componentName$2+`-bottom`,left:componentName$2+`-left`,right:componentName$2+`-right`,center:componentName$2+`-center`},Root$1=styled$1(`div`)(function(e){var t,n,a,o,s,l,u=e.theme;return l={},l[`&.`+classes$2.root]=(t={boxSizing:`border-box`,display:`flex`,maxHeight:`100%`,position:`fixed`,zIndex:u.zIndex.snackbar,height:`auto`,width:`auto`,transition:`top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms, margin 300ms ease 0ms, max-width 300ms ease 0ms`,pointerEvents:`none`},t[collapse.container]={pointerEvents:`all`},t[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.default+`px 0px`,transition:`padding 300ms ease 0ms`},t.maxWidth=`calc(100% - `+SNACKBAR_INDENTS.view.default*2+`px)`,t[u.breakpoints.down(`sm`)]={width:`100%`,maxWidth:`calc(100% - `+xsWidthMargin*2+`px)`},t),l[`&.`+classes$2.rootDense]=(n={},n[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.dense+`px 0px`},n),l[`&.`+classes$2.top]={top:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column`},l[`&.`+classes$2.bottom]={bottom:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column-reverse`},l[`&.`+classes$2.left]=(a={left:SNACKBAR_INDENTS.view.default},a[u.breakpoints.up(`sm`)]={alignItems:`flex-start`},a[u.breakpoints.down(`sm`)]={left:xsWidthMargin+`px`},a),l[`&.`+classes$2.right]=(o={right:SNACKBAR_INDENTS.view.default},o[u.breakpoints.up(`sm`)]={alignItems:`flex-end`},o[u.breakpoints.down(`sm`)]={right:xsWidthMargin+`px`},o),l[`&.`+classes$2.center]=(s={left:`50%`,transform:`translateX(-50%)`},s[u.breakpoints.up(`sm`)]={alignItems:`center`},s),l}),SnackbarContainer$1=import_react$24.memo(function(e){var t=e.className,n=e.anchorOrigin,a=e.dense,o=_objectWithoutPropertiesLoose$2(e,[`className`,`anchorOrigin`,`dense`]),s=clsx(classes$2[n.vertical],classes$2[n.horizontal],classes$2.root,t,a&&classes$2.rootDense);return import_react$24.createElement(Root$1,Object.assign({className:s},o))}),SnackbarProvider=function(e){_inheritsLoose(t,e);function t(t){var n=e.call(this,t)||this;return n.enqueueSnackbar=function(e,t){t===void 0&&(t={});var a=t,o=a.key,s=a.preventDuplicate,l=_objectWithoutPropertiesLoose$2(a,[`key`,`preventDuplicate`]),u=isDefined(o),d=u?o:new Date().getTime()+Math.random(),f=merge(l,n.props,DEFAULTS),m=_extends$2({key:d},l,{message:e,open:!0,entered:!1,requestClose:!1,variant:f(`variant`),anchorOrigin:f(`anchorOrigin`),autoHideDuration:f(`autoHideDuration`)});return l.persist&&(m.autoHideDuration=void 0),n.setState(function(t){if(s===void 0&&n.props.preventDuplicate||s){var a=function(t){return u?t.key===o:t.message===e},l=t.queue.findIndex(a)>-1,d=t.snacks.findIndex(a)>-1;if(l||d)return t}return n.handleDisplaySnack(_extends$2({},t,{queue:[].concat(t.queue,[m])}))}),d},n.handleDisplaySnack=function(e){return e.snacks.length>=n.maxSnack?n.handleDismissOldest(e):n.processQueue(e)},n.processQueue=function(e){var t=e.queue,n=e.snacks;return t.length>0?_extends$2({},e,{snacks:[].concat(n,[t[0]]),queue:t.slice(1,t.length)}):e},n.handleDismissOldest=function(e){if(e.snacks.some(function(e){return!e.open||e.requestClose}))return e;var t=!1,a=!1;e.snacks.reduce(function(e,t){return e+(t.open&&t.persist?1:0)},0)===n.maxSnack&&(a=!0);var o=e.snacks.map(function(e){return!t&&(!e.persist||a)?(t=!0,e.entered?(e.onClose&&e.onClose(null,REASONS.MAXSNACK,e.key),n.props.onClose&&n.props.onClose(null,REASONS.MAXSNACK,e.key),_extends$2({},e,{open:!1})):_extends$2({},e,{requestClose:!0})):_extends$2({},e)});return _extends$2({},e,{snacks:o})},n.handleEnteredSnack=function(e,t,a){if(!isDefined(a))throw Error(`handleEnteredSnack Cannot be called with undefined key`);n.setState(function(e){return{snacks:e.snacks.map(function(e){return e.key===a?_extends$2({},e,{entered:!0}):_extends$2({},e)})}})},n.handleCloseSnack=function(e,t,a){if(n.props.onClose&&n.props.onClose(e,t,a),t!==REASONS.CLICKAWAY){var o=a===void 0;n.setState(function(e){var t=e.snacks,n=e.queue;return{snacks:t.map(function(e){return!o&&e.key!==a?_extends$2({},e):e.entered?_extends$2({},e,{open:!1}):_extends$2({},e,{requestClose:!0})}),queue:n.filter(function(e){return e.key!==a})}})}},n.closeSnackbar=function(e){var t=n.state.snacks.find(function(t){return t.key===e});isDefined(e)&&t&&t.onClose&&t.onClose(null,REASONS.INSTRUCTED,e),n.handleCloseSnack(null,REASONS.INSTRUCTED,e)},n.handleExitedSnack=function(e,t,a){var o=t||a;if(!isDefined(o))throw Error(`handleExitedSnack Cannot be called with undefined key`);n.setState(function(e){var t=n.processQueue(_extends$2({},e,{snacks:e.snacks.filter(function(e){return e.key!==o})}));return t.queue.length===0?t:n.handleDismissOldest(t)})},n.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:n.enqueueSnackbar.bind(_assertThisInitialized$1(n)),closeSnackbar:n.closeSnackbar.bind(_assertThisInitialized$1(n))}},n}var n=t.prototype;return n.render=function(){var e=this,t=this.state.contextValue,n=this.props,a=n.iconVariant,o=n.dense,s=o===void 0?DEFAULTS.dense:o,l=n.hideIconVariant,u=l===void 0?DEFAULTS.hideIconVariant:l,d=n.domRoot,f=n.children,m=n.classes,h=m===void 0?{}:m,v=_objectWithoutPropertiesLoose$2(n,[`maxSnack`,`preventDuplicate`,`variant`,`anchorOrigin`,`iconVariant`,`dense`,`hideIconVariant`,`domRoot`,`children`,`classes`]),y=this.state.snacks.reduce(function(e,t){var n,a=originKeyExtractor(t.anchorOrigin),o=e[a]||[];return _extends$2({},e,(n={},n[a]=[].concat(o,[t]),n))},{}),b=Object.keys(y).map(function(t){var n=y[t];return import_react$24.createElement(SnackbarContainer$1,{key:t,dense:s,anchorOrigin:n[0].anchorOrigin,className:clsx(h.containerRoot,h[transformer.toContainerAnchorOrigin(t)])},n.map(function(t){return import_react$24.createElement(SnackbarItem,Object.assign({},v,{key:t.key,snack:t,dense:s,iconVariant:a,hideIconVariant:u,classes:omitContainerKeys(h),onClose:e.handleCloseSnack,onExited:createChainedFunction([e.handleExitedSnack,e.props.onExited]),onEntered:createChainedFunction([e.handleEnteredSnack,e.props.onEntered])}))}))});return import_react$24.createElement(SnackbarContext.Provider,{value:t},f,d?(0,import_react_dom.createPortal)(b,d):b)},_createClass$2(t,[{key:`maxSnack`,get:function(){return this.props.maxSnack||DEFAULTS.maxSnack}}]),t}(import_react$24.Component),withSnackbar=function(e){var t=import_react$24.forwardRef(function(t,n){return import_react$24.createElement(SnackbarContext.Consumer,null,function(a){return import_react$24.createElement(e,_extends$2({},t,{ref:n,enqueueSnackbar:a.enqueueSnackbar,closeSnackbar:a.closeSnackbar}))})});return(0,import_hoist_non_react_statics_cjs$1.default)(t,e),t},react_hotkeys_production_min_exports=__exportAll({GlobalHotKeys:()=>GlobalHotKeys$1$1,HotKeys:()=>HotKeys,IgnoreKeys:()=>IgnoreKeys$1,ObserveKeys:()=>ObserveKeys$1,configure:()=>configure$1,getApplicationKeyMap:()=>getApplicationKeyMap,recordKeyCombination:()=>recordKeyCombination,withHotKeys:()=>withHotKeys,withIgnoreKeys:()=>withIgnoreKeys,withObserveKeys:()=>withObserveKeys});function _typeof$4(e){return _typeof$4=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof$4(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),e}function _defineProperty$3(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _extends$1(){return _extends$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_extends$1.apply(this,arguments)}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t],a=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach(function(t){_defineProperty$3(e,t,n[t])})}return e}function _inherits(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function isNativeReflectConstruct(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _construct(e,t,n){return _construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&_setPrototypeOf(o,n.prototype),o},_construct.apply(null,arguments)}function _isNativeFunction(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function _wrapNativeSuper(e){var t=typeof Map==`function`?new Map:void 0;return _wrapNativeSuper=function(e){if(e===null||!_isNativeFunction(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct(e,arguments,_getPrototypeOf(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(n,e)},_wrapNativeSuper(e)}function _objectWithoutPropertiesLoose$1(e,t){if(e==null)return{};var n={},a=Object.keys(e),o,s;for(s=0;s<a.length;s++)o=a[s],!(t.indexOf(o)>=0)&&(n[o]=e[o]);return n}function _objectWithoutProperties$1(e,t){if(e==null)return{};var n=_objectWithoutPropertiesLoose$1(e,t),a,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)a=s[o],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function _assertThisInitialized(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function _possibleConstructorReturn(e,t){return t&&(typeof t==`object`||typeof t==`function`)?t:_assertThisInitialized(e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=_getPrototypeOf(e),e!==null););return e}function _get(e,t,n){return _get=typeof Reflect<`u`&&Reflect.get?Reflect.get:function(e,t,n){var a=_superPropBase(e,t);if(a){var o=Object.getOwnPropertyDescriptor(a,t);return o.get?o.get.call(n):o.value}},_get(e,t,n||e)}function _toConsumableArray$1(e){return _arrayWithoutHoles$1(e)||_iterableToArray$1(e)||_nonIterableSpread$1()}function _arrayWithoutHoles$1(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function _iterableToArray$1(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)===`[object Arguments]`)return Array.from(e)}function _nonIterableSpread$1(){throw TypeError(`Invalid attempt to spread non-iterable instance`)}function dictionaryFrom(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;return e.reduce(function(e,n){return e[n]=t||{value:n},e},{})}function resolveShiftedAlias(e){return ShiftedKeysDictionary[e]||[e.length===1?e.toUpperCase():e]}function hasKey(e,t){return e.hasOwnProperty(t)}function invertArrayDictionary(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(n,a){var o=e[a];return o.forEach(function(e){hasKey(n,e)||(n[e]=[]),n[e].push(a)}),t.includeOriginal&&(!hasKey(n,a)&&(n[a]=[]),n[a]=[].concat(_toConsumableArray$1(n[a]),_toConsumableArray$1(o))),n},{})}function resolveUnshiftedAlias(e){return UnshiftedKeysDictionary[e]||[e.length===1?e.toLowerCase():e]}function isString(e){return typeof e==`string`}function stripSuperfluousWhitespace(e){return isString(e)?e.trim().replace(/\s+/g,` `):e}function standardizeKeyName(e){var t=e.toLowerCase();return MousetrapToReactKeyNamesDictionary[t]||KeyShorthandDictionary[t]||(e.match(/^f\d+$/)?e.toUpperCase():e)}function isNonPrintableKeyName(e){return!!NonPrintableKeysDictionary[e]}function isCustomKeyName(e){return Configuration.option(`_customKeyNamesDict`)[e]}function isValidKey(e){return isNonPrintableKeyName(e)||String.fromCharCode(e.charCodeAt(0))===e||isCustomKeyName(e)}function normalizedCombinationId(e){return e.sort().join(`+`)}function parseCombination(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return e.replace(/^\+|(\s|[^+]\+)\+/,`$1plus`).split(`+`).reduce(function(e,n){var a=standardizeKeyName(n);if(t.ensureValidKeys&&!isValidKey(a))throw new InvalidKeyNameError;return e[a]=!0,e},{})}function resolveUnaltedAlias(e){return UnaltedKeysDictionary[e]||[e]}function resolveAltedAlias(e){return AltedKeysDictionary[e]||[e]}function resolveUnaltShiftedAlias(e){return UnaltShiftedKeysDictionary[e]||resolveUnshiftedAlias(e)}function resolveAltShiftedAlias(e){return AltShiftedKeysDictionary[e]||[e]}function resolveKeyAlias(e){return KeyOSAndLayoutAliasesDictionary$1[e]||[e]}function applicableAliasFunctions(e){if(e.Shift)return e.Alt?[resolveAltShiftedAlias,resolveUnaltShiftedAlias]:[resolveShiftedAlias,resolveUnshiftedAlias];if(e.Alt)return[resolveAltedAlias,resolveUnaltedAlias];var t=function(e){return[e]};return[t,t]}function isUndefined(e){return e===void 0}function isObject(e){return!Array.isArray(e)&&_typeof$4(e)===`object`&&e!==null}function isEmpty$2(e){return isObject(e)?Object.keys(e).length===0:!e||e.length===0}function size(e){return isObject(e)?Object.keys(e).length:e.length}function buildKeyAliases(e){return Object.keys(e).reduce(function(t,n){return resolveKeyAlias(n).forEach(function(a){applicableAliasFunctions(e).forEach(function(e){e(a).forEach(function(e){(e!==n||n!==a)&&(t[e]=n)})})}),t},{})}function arrayFrom(e){return Array.isArray(e)?e:e?[e]:[]}function without(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:[],n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=dictionaryFrom(arrayFrom(t));return Array.isArray(e)?e.reduce(function(e,t){return a[t]&&(n.stringifyFirst||a[t].value===t)||e.push(t),e},[]):isObject(e)?Object.keys(e).reduce(function(t,n){return a[n]||(t[n]=e[n]),t},{}):e}function removeAtIndex(e,t){return[].concat(_toConsumableArray$1(e.slice(0,t)),_toConsumableArray$1(e.slice(t+1)))}function normalizeActionOptions(e,t){if(isObject(e)){var n=e.sequence,a=e.action;return{keySequence:n,keyEventType:isUndefined(a)?KeyEventType[t.defaultKeyEvent]:KeyEventType[a]}}return{keySequence:e,keyEventType:KeyEventType[t.defaultKeyEvent]}}function indexFromEnd(e,t){return e[e.length-(t+1)]}function keyupIsHiddenByCmd(e){return e.length===1||hasKey(KeysWithKeyUpHiddenByCmd,e)}function canBeMatched(e,t){var n=size(t.keyDictionary);return Configuration.option(`allowCombinationSubmatches`)||keyUpIsBeingHidden(e)?e.getNumberOfKeys()>=n:e.getNumberOfKeys()===n}function keyUpIsBeingHidden(e){return!!e.isKeyStillPressed(`Meta`)&&e.some(function(e){return keyupIsHiddenByCmd(e)})}function copyAttributes(e,t,n){return n.forEach(function(n){hasKey(e,n)&&(t[n]=e[n])}),t}function describeKeyEventType(e){switch(parseInt(e,10)){case 0:return`keydown`;case 1:return`keypress`;default:return`keyup`}}function hasKeyPressEvent(e){return!isNonPrintableKeyName(e)}function stateFromEvent(e){return e.simulated?KeyEventState.simulated:KeyEventState.seen}function getEventCharCode(e){var t,n=e.keyCode;return`charCode`in e?(t=e.charCode,t===0&&n===13&&(t=13)):t=n,t===10&&(t=13),32<=t||t===13?t:0}function reactsGetEventKey(e){if(e.key){var t=normalizeKey[e.key]||e.key;if(t!==`Unidentified`)return t}if(e.type===`keypress`){var n=getEventCharCode(e);return n===13?`Enter`:String.fromCharCode(n)}return e.type===`keydown`||e.type===`keyup`?translateToKey[e.keyCode]||`Unidentified`:``}function getKeyName(e){var t=function(){var t=Configuration.option(`customKeyCodes`),n=e.keyCode||e.charCode;return hasKey(t,n)?t[n]:e.nativeEvent?e.key:reactsGetEventKey(e)}();return t===`+`?`plus`:t}function isCmdKey(e){return e===`Meta`}function contains(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{};return Array.isArray(e)||isString(e)?n.stringifyFirst?!isUndefined(e.find(function(e){return e.toString()===t.toString()})):e.indexOf(t)!==-1:isObject(e)?hasKey(e,t):n.stringifyFirst?e.toString()===t.toString():e===t}function capitalize$1(e){return e.replace(/\b\w/g,function(e){return e.toUpperCase()})}function normalizeEventName(e){return`${capitalize$1(e.slice(0,3))}${capitalize$1(e.slice(3))}`}function isFromFocusOnlyComponent(e){return!isUndefined(e)}function backwardsCompatibleContext(e,t){var n=t.deprecatedAPI,a=n.contextTypes,o=n.childContextTypes,s=t.newAPI.contextType;if(import_react.createContext===void 0)e.contextTypes=a,e.childContextTypes=o,e.prototype.getChildContext=function(){return this._childContext};else{var l=import_react.createContext(s);e.contextType=l,e.prototype._originalRender=e.prototype.render,e.prototype.render=function(){var e=this._originalRender();return e?import_react.createElement(l.Provider,{value:this._childContext},e):null}}return e}function withHotKeys(e){function t(e,t){return _objectSpread$1({},o[e]||{},t[e]||{})}function n(e){return t(`handlers`,e)}function a(e){return t(`keyMap`,e)}var o=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},s=function(t){function o(e){var t;return _classCallCheck$1(this,o),t=_possibleConstructorReturn(this,_getPrototypeOf(o).call(this,e)),t._handleFocus=t._handleFocus.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleBlur=t._handleBlur.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyDown=t._handleKeyDown.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyPress=t._handleKeyPress.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyUp=t._handleKeyUp.bind(_assertThisInitialized(_assertThisInitialized(t))),t._componentIsFocused=t._componentIsFocused.bind(_assertThisInitialized(_assertThisInitialized(t))),t._id=KeyEventManager.getInstance().registerKeyMap(e.keyMap),t._childContext={hotKeysParentId:t._id},t}return _inherits(o,t),_createClass$1(o,[{key:`render`,value:function(){var t=this.props;t.keyMap,t.handlers,t.allowChanges,t.root;var n=_objectWithoutProperties$1(t,[`keyMap`,`handlers`,`allowChanges`,`root`]),a={onFocus:this._wrapFunction(`onFocus`,this._handleFocus),onBlur:this._wrapFunction(`onBlur`,this._handleBlur),tabIndex:Configuration.option(`defaultTabIndex`)};return this._shouldBindKeyListeners()&&(a.onKeyDown=this._handleKeyDown,a.onKeyPress=this._handleKeyPress,a.onKeyUp=this._handleKeyUp),import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_shouldBindKeyListeners`,value:function(){var e=a(this.props);return!isEmpty$2(e)||this.props.root||Configuration.option(`enableHardSequences`)&&this._handlersIncludeHardSequences(e,n(this.props))}},{key:`_handlersIncludeHardSequences`,value:function(e,t){return Object.keys(t).some(function(t){return!e[t]&&KeyCombinationSerializer.isValidKeySerialization(t)})}},{key:`_wrapFunction`,value:function(e,t){var n=this;return typeof this.props[e]==`function`?function(a){n.props[e](a),t(a)}:t}},{key:`_focusTreeIdsPush`,value:function(e){this._focusTreeIds||=[],this._focusTreeIds.push(e)}},{key:`_focusTreeIdsShift`,value:function(){this._focusTreeIds&&this._focusTreeIds.shift()}},{key:`_getFocusTreeId`,value:function(){if(this._focusTreeIds)return this._focusTreeIds[0]}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterKeyMap(this._id,this.props.keyMap),this._componentIsFocused()&&(this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`))){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledHotKeys(this._getFocusTreeId(),this._id,n,a,this._getComponentOptions())}}},{key:`_componentIsFocused`,value:function(){return!0===this._focused}},{key:`componentDidMount`,value:function(){var e=KeyEventManager.getInstance(),t=this.context.hotKeysParentId;e.registerComponentMount(this._id,t)}},{key:`_handleFocus`,value:function(){if(this.props.onFocus){var e;(e=this.props).onFocus.apply(e,arguments)}var t=KeyEventManager.getInstance().enableHotKeys(this._id,a(this.props),n(this.props),this._getComponentOptions());isUndefined(t)||this._focusTreeIdsPush(t),this._focused=!0}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterKeyMap(this._id),e.registerComponentUnmount(),this._handleBlur()}},{key:`_handleBlur`,value:function(){if(this.props.onBlur){var e;(e=this.props).onBlur.apply(e,arguments)}KeyEventManager.getInstance().disableHotKeys(this._getFocusTreeId(),this._id)||this._focusTreeIdsShift(),this._focused=!1}},{key:`_handleKeyDown`,value:function(e){KeyEventManager.getInstance().handleKeydown(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyPress`,value:function(e){KeyEventManager.getInstance().handleKeyPress(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyUp`,value:function(e){KeyEventManager.getInstance().handleKeyUp(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),o}(import_react.PureComponent);return _defineProperty$3(s,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,onFocus:import_prop_types.default.func,onBlur:import_prop_types.default.func,allowChanges:import_prop_types.default.bool,root:import_prop_types.default.bool}),backwardsCompatibleContext(s,{deprecatedAPI:{contextTypes:{hotKeysParentId:import_prop_types.default.number},childContextTypes:{hotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{hotKeysParentId:void 0}}})}function withHotKeysIgnoreOverride(e){var t,n,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},o=2<arguments.length?arguments[2]:void 0;return n=t=function(t){function n(e){var t;return _classCallCheck$1(this,n),t=_possibleConstructorReturn(this,_getPrototypeOf(n).call(this,e)),t._handleKeyEvent=t._handleKeyEvent.bind(_assertThisInitialized(_assertThisInitialized(t))),t._reloadDictionaries=t._reloadDictionaries.bind(_assertThisInitialized(_assertThisInitialized(t))),t}return _inherits(n,t),_createClass$1(n,[{key:`render`,value:function(){var t=this.props;t.only,t.except;var n=_objectWithoutProperties$1(t,[`only`,`except`]),a={onKeyDown:this._handleKeyEvent,onKeyPress:this._handleKeyEvent,onKeyUp:this._handleKeyEvent,onFocus:this._reloadDictionaries};return import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_reloadDictionaries`,value:function(){var e=this.props,t=e.only,n=e.except;this._onlyDict=keyDictionary(t),this._exceptDict=keyDictionary(n)}},{key:`_shouldIgnoreEvent`,value:function(e){var t=e.key;return isEmpty$2(this._onlyDict)?!!isEmpty$2(this._exceptDict)||!hasKey(this._exceptDict,t):isEmpty$2(this._exceptDict)?hasKey(this._onlyDict,t):hasKey(this._onlyDict,t)&&!hasKey(this._exceptDict,t)}},{key:`_handleKeyEvent`,value:function(e){this._shouldIgnoreEvent(e)&&KeyEventManager.getInstance()[o](e)}}]),n}(import_react.PureComponent),_defineProperty$3(t,`propTypes`,{only:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)]),except:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)])}),_defineProperty$3(t,`defaultProps`,a),n}function keyDictionary(e){return arrayFrom(e).reduce(function(e,t){var n=standardizeKeyName(t);if(!isValidKey(n))throw new InvalidKeyNameError(t);return[resolveAltShiftedAlias,resolveUnaltShiftedAlias,resolveShiftedAlias,resolveUnshiftedAlias,resolveAltedAlias,resolveUnaltedAlias].forEach(function(t){e[t(n)]=!0}),e},{})}function withIgnoreKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`ignoreEvent`)}function withObserveKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`observeIgnoredEvents`)}function configure$1(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};Configuration.init(e)}function getApplicationKeyMap(){return KeyEventManager.getInstance().getApplicationKeyMap()}function recordKeyCombination(e){return KeyEventManager.getInstance().addKeyCombinationListener(e)}var import_prop_types,import_react,_defaultConfiguration,_configuration,Configuration,Logger,KeyEventType,ModifierFlagsDictionary,ShiftedKeysDictionary,UnshiftedKeysDictionary,KeyOSAndLayoutAliasesDictionary$1,MousetrapToReactKeyNamesDictionary,KeyShorthandDictionary,translateToKey,NonPrintableKeysDictionary,InvalidKeyNameError,KeySequenceParser,AltedKeysDictionary,UnaltedKeysDictionary,AltShiftedKeysDictionary,UnaltShiftedKeysDictionary,KeyCombinationSerializer,KeyEventSequenceIndex,KeyEventState,KeyEventStateArrayManager,KeyCombination,KeyHistory,Registry,ComponentTree,ComponentOptionsListIterator,ComponentOptionsList,KeysWithKeyUpHiddenByCmd,i,KeyCombinationMatcher,KeyHistoryMatcher,ActionResolver,SEQUENCE_ATTRIBUTES,KEYMAP_ATTRIBUTES,AbstractKeyEventStrategy,KeyEventCounter,normalizeKey,EventResponse,EventPropagator,FocusOnlyKeyEventStrategy,GlobalKeyEventStrategy,KeyEventManager,HotKeys,GlobalHotKeys$2,GlobalHotKeys$1$1,IgnoreKeys$1,ObserveKeys$1,init_react_hotkeys_production_min=__esmMin((()=>{for(import_prop_types=__toESM(require_prop_types()),import_react=__toESM(require_react()),_defaultConfiguration={logLevel:`warn`,defaultKeyEvent:`keydown`,defaultComponent:`div`,defaultTabIndex:`-1`,ignoreTags:[`input`,`select`,`textarea`],enableHardSequences:!1,ignoreKeymapAndHandlerChangesByDefault:!0,ignoreEventsCondition:function(e){var t=e.target;if(t&&t.tagName){var n=t.tagName.toLowerCase();return Configuration.option(`_ignoreTagsDict`)[n]||t.isContentEditable}return!1},ignoreRepeatedEventsWhenKeyHeldDown:!0,simulateMissingKeyPressEvents:!0,stopEventPropagationAfterHandling:!0,stopEventPropagationAfterIgnoring:!0,allowCombinationSubmatches:!1,customKeyCodes:{}},_configuration=_objectSpread$1({},_defaultConfiguration),_configuration._ignoreTagsDict=dictionaryFrom(_configuration.ignoreTags,!0),Configuration=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`init`,value:function(e){var t=this,n=e.ignoreTags,a=e.customKeyCodes;n&&(e._ignoreTagsDict=dictionaryFrom(e.ignoreTags)),a&&(e._customKeyNamesDict=dictionaryFrom(Object.values(e.customKeyCodes))),[`verbose`,`debug`,`info`].indexOf(e.logLevel)!==-1&&console.warn(`React HotKeys: You have requested log level '${e.logLevel}' but for performance reasons, logging below severity level 'warning' is disabled in production. Please use the development build for complete logs.`),Object.keys(e).forEach(function(n){t.set(n,e[n])})}},{key:`set`,value:function(e,t){_configuration[e]=t}},{key:`reset`,value:function(e){_configuration[e]=_defaultConfiguration[e]}},{key:`option`,value:function(e){return _configuration[e]}}]),e}(),Logger=function(){function e(){var t=this,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:`warn`;if(_classCallCheck$1(this,e),_defineProperty$3(this,`verbose`,this.noop),_defineProperty$3(this,`debug`,this.noop),_defineProperty$3(this,`info`,this.noop),_defineProperty$3(this,`warn`,this.noop),_defineProperty$3(this,`error`,this.noop),this.logLevel=this.constructor.levels[n],this.logLevel>=this.constructor.levels.error)this.error=console.error;else return;if(this.logLevel>=this.constructor.levels.warn)this.warn=console.warn;else return;[`info`,`debug`,`verbose`].some(function(e){return!(t.logLevel>=t.constructor.levels[e])||(t[e]=console.log,!1)})}return _createClass$1(e,[{key:`noop`,value:function(){}}]),e}(),_defineProperty$3(Logger,`logIcons`,[`📕`,`📗`,`📘`,`📙`]),_defineProperty$3(Logger,`componentIcons`,[`🔺`,`⭐️`,`🔷`,`🔶`,`⬛️`]),_defineProperty$3(Logger,`eventIcons`,[`❤️`,`💚`,`💙`,`💛`,`💜`,`🧡`]),_defineProperty$3(Logger,`levels`,{none:0,error:1,warn:2,info:3,debug:4,verbose:5}),KeyEventType={keydown:0,keypress:1,keyup:2},ModifierFlagsDictionary={Shift:[`shiftKey`],Meta:[`metaKey`],Control:[`ctrlKey`],Alt:[`altKey`]},ShiftedKeysDictionary={"`":[`~`],1:[`!`],2:[`@`,`"`],3:[`#`,`£`],4:[`$`],5:[`%`],6:[`^`],7:[`&`],8:[`*`],9:[`(`],0:[`)`],"-":[`_`],"=":[`plus`],";":[`:`],"'":[`"`,`@`],",":[`<`],".":[`>`],"/":[`?`],"\\":[`|`],"[":[`{`],"]":[`}`],"#":[`~`]},UnshiftedKeysDictionary=invertArrayDictionary(ShiftedKeysDictionary),KeyOSAndLayoutAliasesDictionary$1=invertArrayDictionary({},{includeOriginal:!0}),MousetrapToReactKeyNamesDictionary={tab:`Tab`,capslock:`CapsLock`,shift:`Shift`,meta:`Meta`,alt:`Alt`,ctrl:`Control`,space:` `,spacebar:` `,escape:`Escape`,esc:`Escape`,left:`ArrowLeft`,right:`ArrowRight`,up:`ArrowUp`,down:`ArrowDown`,return:`Enter`,del:`Delete`,command:`Meta`,option:`Alt`,enter:`Enter`,backspace:`Backspace`,ins:`Insert`,pageup:`PageUp`,pagedown:`PageDown`,end:`End`,home:`Home`,contextmenu:`ContextMenu`,numlock:`Clear`},KeyShorthandDictionary={cmd:`Meta`},translateToKey={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},NonPrintableKeysDictionary=dictionaryFrom(Object.values(translateToKey),!0),InvalidKeyNameError=function(e){function t(){var e,n;_classCallCheck$1(this,t);var a=[...arguments];return n=_possibleConstructorReturn(this,(e=_getPrototypeOf(t)).call.apply(e,[this].concat(a))),_defineProperty$3(_assertThisInitialized(_assertThisInitialized(n)),`name`,`InvalidKeyNameError`),n}return _inherits(t,e),t}(_wrapNativeSuper(Error)),KeySequenceParser=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`parse`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=stripSuperfluousWhitespace(e).split(` `);try{var a=n.slice(0,n.length-1),o=n[n.length-1],s=a.map(function(e){var n=parseCombination(e,t);return normalizedCombinationId(Object.keys(n))}).join(` `),l=parseCombination(o,t),u={id:normalizedCombinationId(Object.keys(l)),keyDictionary:l,keyEventType:t.keyEventType,size:Object.keys(l).length};return{sequence:{prefix:s,size:a.length+1},combination:u}}catch{return{sequence:null,combination:null}}}}]),e}(),AltedKeysDictionary={"`":["`"],1:[`¡`],2:[`™`],3:[`£`],4:[`¢`],5:[`∞`],6:[`§`],7:[`¶`],8:[`•`],9:[`ª`],0:[`º`],"-":[`–`],"=":[`≠`],a:[`å`],b:[`∫`],c:[`ç`],d:[`∂`],e:[`´`],f:[`ƒ`],g:[`©`],h:[`˙`],i:[`ˆ`],j:[`∆`],k:[`˚`],l:[`¬`],m:[`µ`],n:[`˜`],o:[`ø`],p:[`π`],q:[`œ`],r:[`®`],s:[`ß`],t:[`†`],u:[`¨`],v:[`√`],w:[`∑`],x:[`≈`],y:[`¥`],z:[`Ω`],"[":[`“`],"]":[`‘`],"\\":[`«`],"'":[`æ`],";":[`…`],",":[`≤`],".":[`≥`],"/":[`÷`]},UnaltedKeysDictionary=invertArrayDictionary(AltedKeysDictionary),AltShiftedKeysDictionary={"`":["`"],1:[`⁄`],2:[`€`],3:[`‹`],4:[`›`],5:[`fi`],6:[`fl`],7:[`‡`],8:[`°`],9:[`·`],0:[`‚`],"-":[`—`],"=":[`±`],a:[`Å`],b:[`ı`],c:[`Ç`],d:[`Î`],e:[`´`],f:[`Ï`],g:[`˝`],h:[`Ó`],i:[`ˆ`],j:[`Ô`],k:[``],l:[`Ò`],m:[`Â`],n:[`˜`],o:[`Ø`],p:[`π`],q:[`Œ`],r:[`‰`],s:[`Í`],t:[`Î`],u:[`¨`],v:[`◊`],w:[`„`],x:[`˛`],y:[`Á`],z:[`¸`],"[":[`”`],"]":[`’`],"\\":[`»`],"'":[`Æ`],";":[`Ú`],",":[`¯`],".":[`˘`]},UnaltShiftedKeysDictionary=invertArrayDictionary(AltShiftedKeysDictionary),KeyCombinationSerializer=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`serialize`,value:function(e){var t=e.Shift,n=e.Alt,a={};return Object.keys(e).sort().forEach(function(e){var o=[];if(t)if(n){var s=resolveUnaltShiftedAlias(e),l=resolveAltShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(s),_toConsumableArray$1(l))}else{var u=resolveUnshiftedAlias(e),d=resolveShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(u),_toConsumableArray$1(d))}else if(n){var f=resolveUnaltedAlias(e),m=resolveAltedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(f),_toConsumableArray$1(m))}else{o.push(e);var h=KeyOSAndLayoutAliasesDictionary$1[e];h&&(o=[].concat(_toConsumableArray$1(o),_toConsumableArray$1(h)))}var v=Object.keys(a);0<v.length?v.forEach(function(e){o.forEach(function(t){a[e+`+${t}`]=_objectSpread$1({},a[e],_defineProperty$3({},t,!0))}),delete a[e]}):o.forEach(function(e){a[e]=_defineProperty$3({},e,!0)})}),Object.values(a).map(function(e){return Object.keys(e).sort().join(`+`)})}},{key:`isValidKeySerialization`,value:function(e){return 0<e.length&&!!KeySequenceParser.parse(e,{ensureValidKeys:!0}).combination}}]),e}(),KeyEventSequenceIndex={previous:0,current:1},KeyEventState={unseen:0,seen:1,simulated:2},KeyEventStateArrayManager=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`newRecord`,value:function(e,t){var n=[KeyEventState.unseen,KeyEventState.unseen,KeyEventState.unseen];if(!isUndefined(e))for(var a=0;a<=e;a++)n[a]=t;return n}},{key:`setBit`,value:function(e,t,n){return e[t]=n,e}},{key:`clone`,value:function(e){for(var t=this.newRecord(),n=0;n<e.length;n++)t[n]=e[n];return t}}]),e}(),KeyCombination=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this._keys=t,this._includesKeyUp=!1,this._update()}return _createClass$1(e,[{key:`getIds`,value:function(){return this._ids}},{key:`getKeyAliases`,value:function(){return this._keyAliases}},{key:`getNormalizedKeyName`,value:function(e){return this._keys[e]?e:this._keyAliases[e]||e}},{key:`getNumberOfKeys`,value:function(){return size(this._keys)}},{key:`any`,value:function(){return 0<Object.keys(this._getKeyStates()).length}},{key:`isEnding`,value:function(){return this._includesKeyUp}},{key:`hasEnded`,value:function(){return isEmpty$2(this.keysStillPressedDict())}},{key:`addKey`,value:function(e,t){this._setKeyState(e,[KeyEventStateArrayManager.newRecord(),KeyEventStateArrayManager.newRecord(KeyEventType.keydown,t)])}},{key:`setKeyState`,value:function(e,t,n){var a=this._getKeyState(e);if(this.isKeyIncluded(e)){var o=KeyEventStateArrayManager.clone(a[1]),s=KeyEventStateArrayManager.clone(o);KeyEventStateArrayManager.setBit(s,t,n),this._setKeyState(e,[o,s])}else this.addKey(e,n);t===KeyEventType.keyup&&(this._includesKeyUp=!0)}},{key:`forEachKey`,value:function(e){return Object.keys(this._keys).forEach(e)}},{key:`some`,value:function(e){return Object.keys(this._keys).some(e)}},{key:`getKeyDictionary`,value:function(){return dictionaryFrom(Object.keys(this._getKeyStates()),!0)}},{key:`keysStillPressedDict`,value:function(){var e=this;return Object.keys(this._keys).reduce(function(t,n){return e.isKeyStillPressed(n)&&(t[n]=e._getKeyState(n)),t},{})}},{key:`isKeyIncluded`,value:function(e){return!!this._getKeyState(e)}},{key:`isKeyStillPressed`,value:function(e){return this.isEventTriggered(e,KeyEventType.keypress)&&!this.isKeyReleased(e)}},{key:`isKeyReleased`,value:function(e){return this.isEventTriggered(e,KeyEventType.keyup)}},{key:`isEventTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.current,t)}},{key:`wasEventPreviouslyTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.previous,t)}},{key:`isKeyPressSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keypress)}},{key:`isKeyUpSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keyup)}},{key:`describe`,value:function(){return this.getIds()[0]}},{key:`toJSON`,value:function(){return{keys:this._getKeyStates(),ids:this.getIds(),keyAliases:this.getKeyAliases()}}},{key:`_getKeyStateType`,value:function(e,t,n){var a=this._getKeyState(e);return a&&a[t][n]}},{key:`_update`,value:function(){this._ids=KeyCombinationSerializer.serialize(this._keys),this._keyAliases=buildKeyAliases(this._keys)}},{key:`_isKeyEventSimulated`,value:function(e,t){return this.isEventTriggered(e,t)===KeyEventState.simulated}},{key:`_getKeyStates`,value:function(){return this._keys}},{key:`_getKeyState`,value:function(e){var t=this._keys[e];if(t)return t;var n=this._keyAliases[e];if(n)return this._keys[n]}},{key:`_setKeyState`,value:function(e,t){var n=this.getNormalizedKeyName(e);this._keys[n]=t,this._update()}}]),e}(),KeyHistory=function(){function e(t){var n=t.maxLength,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;_classCallCheck$1(this,e),this._records=[],this._maxLength=n,a?this._push(a):this._push(new KeyCombination)}return _createClass$1(e,[{key:`getMostRecentCombinations`,value:function(e){return this._records.slice(-e,-1)}},{key:`any`,value:function(){return this._records.some(function(e){return e.any()})}},{key:`getLength`,value:function(){return this._records.length}},{key:`getCurrentCombination`,value:function(){return this._records[this.getLength()-1]}},{key:`addKeyToCurrentCombination`,value:function(e,t,n){this._ensureInitialKeyCombination(),this.getCurrentCombination().setKeyState(e,t,n)}},{key:`setMaxLength`,value:function(e){this._maxLength=e,this._trimHistory()}},{key:`startNewKeyCombination`,value:function(e,t){this._ensureInitialKeyCombination();var n=new KeyCombination(this.getCurrentCombination().keysStillPressedDict());n.addKey(e,t),this._push(n)}},{key:`toJSON`,value:function(){return this._records.map(function(e){return e.toJSON()})}},{key:`_ensureInitialKeyCombination`,value:function(){this.getLength()===0&&this._push(new KeyCombination)}},{key:`_push`,value:function(e){this._trimHistory(),this._records.push(e)}},{key:`_trimHistory`,value:function(){for(;this.getLength()>this._maxLength;)this._shift()}},{key:`_shift`,value:function(){this._records.shift()}}]),e}(),Registry=function(){function e(){_classCallCheck$1(this,e),this._registry={}}return _createClass$1(e,[{key:`get`,value:function(e){return this._registry[e]}},{key:`set`,value:function(e,t){this._registry[e]=t}},{key:`remove`,value:function(e){delete this._registry[e]}},{key:`toJSON`,value:function(){return this._registry}}]),e}(),ComponentTree=function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`add`,value:function(e,n){_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,{childIds:[],parentId:null,keyMap:n})}},{key:`update`,value:function(e,n){var a=_get(_getPrototypeOf(t.prototype),`get`,this).call(this,e);_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,_objectSpread$1({},a,{keyMap:n}))}},{key:`setParent`,value:function(e,t){this.get(e).parentId=t,this._addChildId(t,e)}},{key:`remove`,value:function(e){var n=this._getParentId(e);this._removeChildId(n,e),_get(_getPrototypeOf(t.prototype),`remove`,this).call(this,e)}},{key:`_getParentId`,value:function(e){var t=this.get(e);return t&&t.parentId}},{key:`_addChildId`,value:function(e,t){this.get(e).childIds.push(t)}},{key:`_removeChildId`,value:function(e,t){var n=this.get(e);n&&(n.childIds=without(n.childIds,t))}}]),t}(Registry),ComponentOptionsListIterator=function(){function e(t){_classCallCheck$1(this,e),this._list=t,this._position=-1}return _createClass$1(e,[{key:`getPosition`,value:function(){return this._position}},{key:`getComponent`,value:function(){return this._list.getAtPosition(this.getPosition())}},{key:`next`,value:function(){return this.getPosition()+1<this._list.getLength()?(this._position++,this.getComponent()):null}}]),e}(),ComponentOptionsList=function(){function e(){_classCallCheck$1(this,e),this._list=[],this._idToIndex={},this._longestSequence=1,this._longestSequenceComponentId=null,this._keyMapEventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`getNewIterator`,value:function(){return new ComponentOptionsListIterator(this)}},{key:`add`,value:function(e,t,n,a){if(this.containsId(e))return this.update(e,t,n,a);var o=this._build(e,t,n,a);this._list.push(o);var s=this._getLastIndex();return this._idToIndex[e]=s}},{key:`containsId`,value:function(e){return!!this.get(e)}},{key:`get`,value:function(e){return this.getAtPosition(this.getIndexById(e))}},{key:`getIndexById`,value:function(e){return this._idToIndex[e]}},{key:`update`,value:function(e,t,n,a){var o=this._isUpdatingComponentWithLongestSequence(e),s=this.getLongestSequence(),l=this._build(e,t,n,a);o&&l.sequenceLength!==s&&(l.sequenceLength>s?this._longestSequence=l.sequenceLength:this._recalculateLongestSequence()),this._list[this.getIndexById(e)]=l}},{key:`remove`,value:function(e){var t=this._isUpdatingComponentWithLongestSequence(e);this.removeAtPosition(this.getIndexById(e)),t&&this._recalculateLongestSequence()}},{key:`any`,value:function(){return this.getLength()!==0}},{key:`isRoot`,value:function(e){return this.getIndexById(e)>=this.getLength()-1}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`anyActionsForEventType`,value:function(e){return!!this._keyMapEventRecord[e]}},{key:`getLength`,value:function(){return this._list.length}},{key:`getAtPosition`,value:function(e){return this._list[e]}},{key:`removeAtPosition`,value:function(e){this._list=removeAtIndex(this._list,e);for(var t=e;t<this.getLength();)this._idToIndex[this.getAtPosition(t).componentId]=t,t++}},{key:`toJSON`,value:function(){return this._list}},{key:`_getLastIndex`,value:function(){return this.getLength()-1}},{key:`_build`,value:function(e,t,n,a){var o=this._applyHardSequences(t,n),s=o.keyMap,l=o.handlers;return{actions:this._buildActionDictionary(_objectSpread$1({},t,s),a,e),handlers:l,componentId:e,options:a}}},{key:`_isUpdatingComponentWithLongestSequence`,value:function(e){return e===this._getLongestSequenceComponentId()}},{key:`_getLongestSequenceComponentId`,value:function(){return this._longestSequenceComponentId}},{key:`_recalculateLongestSequence`,value:function(){for(var e=this.getNewIterator();e.next();){var t=e.getComponent(),n=t.longestSequence,a=t.componentId;n>this.getLongestSequence()&&(this._longestSequenceComponentId=a,this._longestSequence=n)}}},{key:`_applyHardSequences`,value:function(e,t){return Configuration.option(`enableHardSequences`)?Object.keys(t).reduce(function(n,a){return!e[a]&&KeyCombinationSerializer.isValidKeySerialization(a)&&(n.keyMap[a]=a),n.handlers[a]=t[a],n},{keyMap:{},handlers:{}}):{keyMap:e,handlers:t}}},{key:`_buildActionDictionary`,value:function(e,t,n){var a=this;return Object.keys(e).reduce(function(o,s){var l=e[s];return function(){return isObject(l)&&hasKey(l,`sequences`)?arrayFrom(l.sequences):arrayFrom(l)}().forEach(function(e){var l=normalizeActionOptions(e,t),u=l.keySequence,d=l.keyEventType;a._addActionOptions(o,n,s,u,d)}),o},{})}},{key:`_addActionOptions`,value:function(e,t,n,a,o){var s=KeySequenceParser.parse(a,{keyEventType:o}),l=s.sequence,u=s.combination;l.size>this.getLongestSequence()&&(this._longestSequence=l.size,this._longestSequenceComponentId=t),this._keyMapEventRecord[o]=KeyEventState.seen,e[n]||(e[n]=[]),e[n].push(_objectSpread$1({prefix:l.prefix,actionName:n,sequenceLength:l.size},u))}}]),e}(),KeysWithKeyUpHiddenByCmd={Enter:!0,Backspace:!0,ArrowRight:!0,ArrowLeft:!0,ArrowUp:!0,ArrowDown:!0,CapsLock:!0},i=1;13>i;i++)KeysWithKeyUpHiddenByCmd[`F${i}`]=!0;KeyCombinationMatcher=function(){function e(){_classCallCheck$1(this,e),this._actionConfigs={},this._order=null}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){if(this._includesMatcherForCombination(e.id)){var n=e.keyEventType,a=e.actionName,o=e.id;this._addHandlerToActionConfig(o,{keyEventType:n,actionName:a,handler:t})}else this._addNewActionConfig(e,t)}},{key:`findMatch`,value:function(e,t,n){this._order||this._setOrder();var a=!0,o=!1,s=void 0;try{for(var l,u=this._order[Symbol.iterator]();!(a=(l=u.next()).done);a=!0){var d=l.value,f=this._actionConfigs[d];if(this._matchesActionConfig(e,t,n,f))return f}}catch(e){o=!0,s=e}finally{try{a||u.return==null||u.return()}finally{if(o)throw s}}return null}},{key:`toJSON`,value:function(){return{actionConfigs:this._actionConfigs,order:this._order}}},{key:`_matchesActionConfig`,value:function(e,t,n,a){if(!canBeMatched(e,a)||!a.events[n])return!1;var o=!1;return Object.keys(a.keyDictionary).every(function(a){return!!e.isEventTriggered(a,n)&&(t&&t===e.getNormalizedKeyName(a)&&(o=!e.wasEventPreviouslyTriggered(a,n)),!0)})&&o}},{key:`_setOrder`,value:function(){var e=Object.values(this._actionConfigs).reduce(function(e,t){var n=t.id,a=t.size;return e[a]||(e[a]=[]),e[a].push(n),e},{});this._order=Object.keys(e).sort(function(e,t){return t-e}).reduce(function(t,n){return t.concat(e[n])},[])}},{key:`_addNewActionConfig`,value:function(e,t){var n=e.prefix,a=e.sequenceLength,o=e.id,s=e.keyDictionary,l=e.size,u=e.keyEventType,d=e.actionName;this._setCombinationMatcher(o,{prefix:n,sequenceLength:a,id:o,keyDictionary:s,size:l,events:{}}),this._addHandlerToActionConfig(o,{keyEventType:u,actionName:d,handler:t})}},{key:`_addHandlerToActionConfig`,value:function(e,t){var n=t.keyEventType,a=t.actionName,o=t.handler,s=this._getCombinationMatcher(e);this._setCombinationMatcher(e,_objectSpread$1({},s,{events:_objectSpread$1({},s.events,_defineProperty$3({},n,{actionName:a,handler:o}))}))}},{key:`_setCombinationMatcher`,value:function(e,t){this._actionConfigs[e]=t}},{key:`_getCombinationMatcher`,value:function(e){return this._actionConfigs[e]}},{key:`_includesMatcherForCombination`,value:function(e){return!!this._getCombinationMatcher(e)}}]),e}(),KeyHistoryMatcher=function(){function e(){_classCallCheck$1(this,e),this._combinationMatchers={},this._eventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){this._getOrCreateCombinationMatcher(e.prefix).addMatch(e,t),KeyEventStateArrayManager.setBit(this._eventRecord,e.keyEventType,KeyEventState.seen),(!this._longestSequence||this._longestSequence<e.sequenceLength)&&(this._longestSequence=e.sequenceLength)}},{key:`findMatch`,value:function(e,t,n){var a=this._findCombinationMatcher(e);return a?a.findMatch(e.getCurrentCombination(),e.getCurrentCombination().getNormalizedKeyName(t),n):null}},{key:`hasMatchesForEventType`,value:function(e){return!!this._eventRecord[e]}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`toJSON`,value:function(){var e=this;return Object.keys(this._combinationMatchers).reduce(function(t,n){return t[n]=e._combinationMatchers[n].toJSON(),t},{})}},{key:`_getOrCreateCombinationMatcher`,value:function(e){return this._combinationMatchers[e]||(this._combinationMatchers[e]=new KeyCombinationMatcher),this._combinationMatchers[e]}},{key:`_findCombinationMatcher`,value:function(e){var t=e.getMostRecentCombinations(this.getLongestSequence());if(t.length===0)return this._combinationMatchers[``];for(var n=t.map(function(e){return e.getIds()}),a=n.map(function(e){return e.length}),o=Array(n.length).fill(0),s=!1;!s;){var l=o.map(function(e,t){return n[t][e]}).join(` `);if(this._combinationMatchers[l])return this._combinationMatchers[l];for(var u=0,d=!0;d&&u<o.length;){var f=(indexFromEnd(o,u)+1)%(indexFromEnd(a,u)||1);o[o.length-(u+1)]=f,d=f==0,d&&u++}s=u===o.length}}}]),e}(),ActionResolver=function(){function e(t){_classCallCheck$1(this,e),this._keyMapMatchers=[],this._unmatchedHandlerStatus=[],this._handlersDictionary={},this._keySequencesDictionary={};for(var n=t.getNewIterator();n.next();){var a=n.getComponent().handlers;this._unmatchedHandlerStatus.push([Object.keys(a).length,{}]),this._keyMapMatchers.push(new KeyHistoryMatcher)}this._componentList=t,this._componentListIterator=t.getNewIterator()}return _createClass$1(e,[{key:`getKeyHistoryMatcher`,value:function(e){if(this._componentHasUnmatchedHandlers(e))for(;this._componentListIterator.next();)this._addHandlersFromComponent(),this._addActionsFromComponent();return this._getKeyHistoryMatcher(e)}},{key:`componentHasActionsBoundToEventType`,value:function(e,t){return this.getKeyHistoryMatcher(e).hasMatchesForEventType(t)}},{key:`findMatchingKeySequenceInComponent`,value:function(e,t,n,a){return this.componentHasActionsBoundToEventType(e,a)?this.getKeyHistoryMatcher(e).findMatch(t,n,a):null}},{key:`_getKeyHistoryMatcher`,value:function(e){return this._keyMapMatchers[e]}},{key:`_addActionsFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().actions;Object.keys(t).forEach(function(n){var a=e._getHandlers(n);if(a){var o=a[0],s=e._componentList.getAtPosition(o).handlers[n],l=e._getKeyHistoryMatcher(o);t[n].forEach(function(t){var n=[t.prefix,t.id].join(` `);e._isClosestHandlerFound(n,t)||(l.addMatch(t,s),e._addKeySequence(n,[o,t.keyEventType]))}),a.forEach(function(t){var a=e._getUnmatchedHandlerStatus(t);a[1][n]||(a[1][n]=!0,a[0]--)})}})}},{key:`_getHandlers`,value:function(e){return this._handlersDictionary[e]}},{key:`_addHandlersFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().handlers;Object.keys(t).forEach(function(t){e._addHandler(t)})}},{key:`_addHandler`,value:function(e){this._handlersDictionary[e]||(this._handlersDictionary[e]=[]),this._handlersDictionary[e].push(this._componentListIterator.getPosition())}},{key:`_addKeySequence`,value:function(e,t){this._keySequencesDictionary[e]||(this._keySequencesDictionary[e]=[]),this._keySequencesDictionary[e].push(t)}},{key:`_componentHasUnmatchedHandlers`,value:function(e){return 0<this._getUnmatchedHandlerStatus(e)[0]}},{key:`_getUnmatchedHandlerStatus`,value:function(e){return this._unmatchedHandlerStatus[e]}},{key:`_isClosestHandlerFound`,value:function(e,t){return this._keySequencesDictionary[e]&&this._keySequencesDictionary[e].some(function(e){return e[1]===t.keyEventType})}}]),e}(),SEQUENCE_ATTRIBUTES=[`sequence`,`action`],KEYMAP_ATTRIBUTES=[`name`,`description`,`group`],AbstractKeyEventStrategy=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},n=1<arguments.length?arguments[1]:void 0;_classCallCheck$1(this,e),this.logger=t.logger||new Logger(`warn`),this.componentId=-1,this.keyEventManager=n,this._componentTree=new ComponentTree,this.rootComponentId=null,this._reset(),this.resetKeyHistory()}return _createClass$1(e,[{key:`_reset`,value:function(){this.componentList=new ComponentOptionsList,this._initHandlerResolutionState()}},{key:`_newKeyHistory`,value:function(){return new KeyHistory({maxLength:this.componentList.getLongestSequence()})}},{key:`getKeyHistory`,value:function(){return this._keyHistory||=this._newKeyHistory(),this._keyHistory}},{key:`_initHandlerResolutionState`,value:function(){this._actionResolver=null}},{key:`resetKeyHistory`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};this.keypressEventsToSimulate=[],this.keyupEventsToSimulate=[],this._keyHistory=this.getKeyHistory().any()&&!e.force?new KeyHistory({maxLength:this.componentList.getLongestSequence()},new KeyCombination(this.getCurrentCombination().keysStillPressedDict())):this._newKeyHistory()}},{key:`getApplicationKeyMap`,value:function(){return this.rootComponentId===null?{}:this._buildApplicationKeyMap([this.rootComponentId],{})}},{key:`_buildApplicationKeyMap`,value:function(e,t){var n=this;return e.forEach(function(e){var a=n._componentTree.get(e),o=a.childIds,s=a.keyMap;s&&Object.keys(s).forEach(function(e){var a=s[e];t[e]={},isObject(a)?hasKey(a,`sequences`)?(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=n._createSequenceFromConfig(a.sequences)):(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=[copyAttributes(a,{},SEQUENCE_ATTRIBUTES)]):t[e].sequences=n._createSequenceFromConfig(a)}),n._buildApplicationKeyMap(o,t)}),t}},{key:`_createSequenceFromConfig`,value:function(e){return arrayFrom(e).map(function(e){return isObject(e)?copyAttributes(e,{},SEQUENCE_ATTRIBUTES):{sequence:e}})}},{key:`registerKeyMap`,value:function(e){return this.componentId+=1,this._componentTree.add(this.componentId,e),this.componentId}},{key:`reregisterKeyMap`,value:function(e,t){this._componentTree.update(e,t)}},{key:`registerComponentMount`,value:function(e,t){isUndefined(t)?this.rootComponentId=e:this._componentTree.setParent(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._componentTree.remove(e),e===this.rootComponentId&&(this.rootComponentId=null)}},{key:`_addComponent`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;this.componentList.add(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence())}},{key:`_allKeysAreReleased`,value:function(){return this.getCurrentCombination().hasEnded()}},{key:`getCurrentCombination`,value:function(){return this.getKeyHistory().getCurrentCombination()}},{key:`_shouldSimulate`,value:function(e,t){var n=hasKeyPressEvent(t),a=this.getCurrentCombination();return e===KeyEventType.keypress?!n||n&&a.isKeyStillPressed(`Meta`):e===KeyEventType.keyup&&keyupIsHiddenByCmd(t)&&a.isKeyReleased(`Meta`)}},{key:`_cloneAndMergeEvent`,value:function(e,t){return _objectSpread$1({},Object.keys(ModifierFlagsDictionary).reduce(function(t,n){return t[n]=e[n],t},{}),t)}},{key:`_callClosestMatchingHandler`,value:function(e,t,n,a,o){for(this._actionResolver||=new ActionResolver(this.componentList);o<=a;){this._actionResolver.getKeyHistoryMatcher(o);var s=this._actionResolver.findMatchingKeySequenceInComponent(o,this.getKeyHistory(),t,n);if(this.getCurrentCombination(),s){var l=s.events[n];return Configuration.option(`allowCombinationSubmatches`)&&KeyCombinationSerializer.serialize(s.keyDictionary),l.handler(e),this._stopEventPropagationAfterHandlingIfEnabled(e,o),!0}this._actionResolver.componentHasActionsBoundToEventType(o,n),o++}}},{key:`_stopEventPropagationAfterHandlingIfEnabled`,value:function(e,t){return!!Configuration.option(`stopEventPropagationAfterHandling`)&&(this._stopEventPropagation(e,t),!0)}},{key:`_stopEventPropagation`,value:function(){throw Error(`_stopEventPropagation must be overridden by a subclass`)}},{key:`_checkForModifierFlagDiscrepancies`,value:function(e,t,n){var a=this;Object.keys(ModifierFlagsDictionary).forEach(function(o){if(t!==o||n!==KeyEventType.keyup){var s=a.getCurrentCombination(),l=s.isKeyStillPressed(o);ModifierFlagsDictionary[o].forEach(function(t){!1===e[t]&&l&&s.setKeyState(o,KeyEventType.keyup,stateFromEvent(e))})}})}},{key:`_logPrefix`,value:function(){}}]),e}(),KeyEventCounter=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`getId`,value:function(){return isUndefined(this._id)&&(this._id=0),this._id}},{key:`incrementId`,value:function(){this._id=this.getId()+1}}]),e}(),normalizeKey={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},EventResponse={unseen:0,ignored:1,seen:2,recorded:3,handled:4},EventPropagator=function(){function e(t,n){var a=n.logger,o=n.logPrefix;_classCallCheck$1(this,e),this._componentList=t,this._previousPropagation=null,this.logger=a,this._logPrefix=o,this._reset()}return _createClass$1(e,[{key:`_reset`,value:function(){this._previousPosition=-1,this._position=-1,this._actionHandled=!1,this._ignoreEvent=!1,this._observeIgnoredEvents=!1,this._stopping=!1,this._componentId=null,this._key=null,this._type=null}},{key:`isFirstPropagationStep`,value:function(){var e=this.getPreviousPosition();return e===-1||e>=this._position}},{key:`isForKey`,value:function(e){return this._key===e}},{key:`isForEventType`,value:function(e){return this._type===e}},{key:`startNewPropagationStep`,value:function(e,t,n,a){return this._position=this._componentList.getIndexById(e),this._componentId=e,this.isFirstPropagationStep()&&(KeyEventCounter.incrementId(),this._key=t.key,this._type=a),!(t.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))||(this.ignoreEvent(t),!1)}},{key:`finishPropagationStep`,value:function(){this.isStopped()||this._componentList.isRoot(this._componentId)?(this._previousPropagation=this._clone(),this._reset()):this._previousPosition=this._position}},{key:`getPreviousPropagation`,value:function(){return this._previousPropagation||=this._clone({copyState:!1}),this._previousPropagation}},{key:`getPreviousPosition`,value:function(){return this._previousPosition}},{key:`observeIgnoredEvents`,value:function(){this._observeIgnoredEvents=!0}},{key:`ignoreEvent`,value:function(e){return this.setIgnoreEvent(!0),!!(this.isIgnoringEvent()&&Configuration.option(`stopEventPropagationAfterIgnoring`))&&(this.stop(e),this.finishPropagationStep(),!0)}},{key:`setIgnoreEvent`,value:function(e){this._ignoreEvent=e}},{key:`isIgnoringEvent`,value:function(){return!this._observeIgnoredEvents&&this._ignoreEvent}},{key:`isStopped`,value:function(){return this._stopping}},{key:`stop`,value:function(e){return!this.isStopped()&&(this._stopping=!0,e.simulated||e.stopPropagation(),!0)}},{key:`isPendingPropagation`,value:function(){var e=this.getPreviousPosition();return e!==-1&&e+1<this._position}},{key:`isHandled`,value:function(){return this._actionHandled}},{key:`setHandled`,value:function(){this._actionHandled=!0}},{key:`_clone`,value:function(){var t=(0<arguments.length&&arguments[0]!==void 0?arguments[0]:{}).copyState,n=new e(this._componentList,{logger:this.logger,logPrefix:this._logPrefix});return(t===void 0||t)&&Object.assign(n,this),n}}]),e}(),FocusOnlyKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.focusTreeId=0,e}return _inherits(t,e),_createClass$1(t,[{key:`_reset`,value:function(){_get(_getPrototypeOf(t.prototype),`_reset`,this).call(this),this.keypressEventsToSimulate=[],this.focusTreeId+=1,this.eventPropagator=new EventPropagator(this.componentList,{logger:this.logger,logPrefix:this._logPrefix.bind(this)})}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;if(this.resetOnNextFocus&&=(this._reset(),!1),!this.componentList.containsId(e))return this._addComponent(e,t,n,a),this.focusTreeId}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;e===this.focusTreeId&&this.componentList.containsId(t)&&(this.componentList.update(t,n,a,o),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._initHandlerResolutionState())}},{key:`disableHotKeys`,value:function(e,t){return this.resetOnNextFocus||=!0,this.eventPropagator.isPendingPropagation()}},{key:`handleKeydown`,value:function(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=getKeyName(e);if(t!==this.focusTreeId)return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keydown)){if(this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keydown)===EventResponse.handled){var s=stateFromEvent(e),l=this.getCurrentCombination();l.isKeyIncluded(o)||l.isEnding()?this._startAndLogNewKeyCombination(o,t,n,s):this._addToAndLogCurrentKeyCombination(o,KeyEventType.keydown,t,n,s),this._callHandlerIfActionNotHandled(e,o,KeyEventType.keydown,n,t)}return this._simulateKeyPressForNonPrintableKeys(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),!1}}},{key:`_howToHandleKeyEvent`,value:function(e,t,n,a,o,s){if(this.eventPropagator.isFirstPropagationStep()){if(o.ignoreEventsCondition(e)&&this.eventPropagator.ignoreEvent(e))return this._eventIsToBeIgnored(e,n,a,s);this._checkForModifierFlagDiscrepancies(e,a,s)}else if(this.eventPropagator.isIgnoringEvent())return this._eventIsToBeIgnored(e,n,a,s);return EventResponse.handled}},{key:`_eventIsToBeIgnored`,value:function(e,t,n,a){return EventResponse.ignored}},{key:`handleKeyPress`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyPressSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keypress)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keypress);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keypress,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keypress,n,t),this.eventPropagator.finishPropagationStep(),l}}},{key:`handleKeyUp`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyUpSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keyup)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keyup);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keyup,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keyup,n,t),this._simulateKeyUpEventsHiddenByCmd(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),l}}},{key:`closeHangingKeyCombination`,value:function(e,t){var n=this.getCurrentCombination();n.isKeyIncluded(e)&&!n.isEventTriggered(e,t)&&n.setKeyState(e,t,KeyEventState.simulated)}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t,n,a,o){this._handleEventSimulation(`keypressEventsToSimulate`,`simulatePendingKeyPressEvents`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t,n,a,o){var s=this;isCmdKey(t)&&this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||s._handleEventSimulation(`keyupEventsToSimulate`,`simulatePendingKeyUpEvents`,s._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})})}},{key:`_stopEventPropagation`,value:function(e,t){this.eventPropagator.stop(e)}},{key:`getEventPropagator`,value:function(){return this.eventPropagator}},{key:`_startAndLogNewKeyCombination`,value:function(e,t,n,a){this.getKeyHistory().startNewKeyCombination(e,a)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n,a,o){this.getKeyHistory().addKeyToCurrentCombination(e,t,o)}},{key:`_handleEventSimulation`,value:function(e,t,n,a){var o=a.event,s=a.key,l=a.focusTreeId,u=a.componentId,d=a.options;if(n&&Configuration.option(`simulateMissingKeyPressEvents`)){var f=this._cloneAndMergeEvent(o,{key:s,simulated:!0});this[e].push({event:f,focusTreeId:l,componentId:u,options:d})}(this.componentList.isRoot(u)||this.eventPropagator.isStopped())&&!this.keyEventManager.isGlobalListenersBound()&&this[t]()}},{key:`simulatePendingKeyPressEvents`,value:function(){this._simulatePendingKeyEvents(`keypressEventsToSimulate`,`handleKeyPress`)}},{key:`simulatePendingKeyUpEvents`,value:function(){this._simulatePendingKeyEvents(`keyupEventsToSimulate`,`handleKeyUp`)}},{key:`_simulatePendingKeyEvents`,value:function(e,t){var n=this;0<this[e].length&&KeyEventCounter.incrementId(),this[e].forEach(function(e){var a=e.event,o=e.focusTreeId,s=e.componentId,l=e.options;n[t](a,o,s,l)}),this[e]=[]}},{key:`_callHandlerIfActionNotHandled`,value:function(e,t,n,a,o){if(this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&!this.eventPropagator.isHandled()){var s=this.eventPropagator.getPreviousPosition(),l=this.componentList.getIndexById(a);this._callClosestMatchingHandler(e,t,n,l,s===-1?0:s)&&this.eventPropagator.setHandled()}}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.logIcons,a=Logger.eventIcons,o=Logger.componentIcons,s=`HotKeys (`;if(!1!==t.focusTreeId){var l=isUndefined(t.focusTreeId)?this.focusTreeId:t.focusTreeId;s+=`F${l}${n[l%n.length]}-`}if(!1!==t.eventId){var u=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;s+=`E${u}${a[u%a.length]}-`}s+=`C${e}${o[e%o.length]}`;var d=this.componentList.getIndexById(e);return isUndefined(d)||(s+=`-P${d}${o[d%o.length]}:`),`${s})`}}]),t}(AbstractKeyEventStrategy),GlobalKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.listenersBound=!1,e.eventOptions={ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)},e.listeners={},e}return _inherits(t,e),_createClass$1(t,[{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this._addComponent(e,t,n,a),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`updateEnabledHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this.componentList.update(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`disableHotKeys`,value:function(e){this.componentList.remove(e),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`_updateDocumentHandlers`,value:function(){var e=this,t=this._listenersShouldBeBound();!this.listenersBound&&t?(Object.values(KeyEventType).forEach(function(t){var n=describeKeyEventType(t);document[`on${n}`]=function(t){e.keyEventManager[`handleGlobal${normalizeEventName(n)}`](t)}}),this.listenersBound=!0):this.listenersBound&&!t&&(Object.values(KeyEventType).forEach(function(e){var t=describeKeyEventType(e);delete document[`on${t}`]}),this.listenersBound=!1)}},{key:`_listenersShouldBeBound`,value:function(){return this.componentList.any()||this.listeners.keyCombination}},{key:`handleKeydown`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;this._checkForModifierFlagDiscrepancies(e,t,KeyEventType.keydown);var n=this._howReactAppRespondedTo(e,t,KeyEventType.keydown);if(!(n===EventResponse.unseen&&this.eventOptions.ignoreEventsCondition(e))){if(n!==EventResponse.ignored){var a=stateFromEvent(e),o=this.getCurrentCombination();o.isKeyIncluded(t)||o.isEnding()?this._startAndLogNewKeyCombination(t,a):this._addToAndLogCurrentKeyCombination(t,KeyEventType.keydown,a)}contains([EventResponse.ignored,EventResponse.handled],n)||this._callHandlerIfExists(e,t,KeyEventType.keydown),this._simulateKeyPressForNonPrintableKeys(e,t)}}},{key:`_howReactAppRespondedTo`,value:function(e,t,n){var a=this.keyEventManager.reactAppHistoryWithEvent(t,n);return a===EventResponse.handled||a===EventResponse.ignored||a===EventResponse.seen||KeyEventCounter.incrementId(),a}},{key:`handleKeyPress`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;var n=this.getCurrentCombination();if(n.isKeyPressSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keypress);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keypress,stateFromEvent(e)),a===EventResponse.unseen&&(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keypress),this.eventOptions.ignoreEventsCondition(e))||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keypress)}},{key:`handleKeyUp`,value:function(e){var t=getKeyName(e),n=this.getCurrentCombination();if(n.isKeyUpSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keyup);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keyup,stateFromEvent(e)),a===EventResponse.unseen?(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keyup),this.eventOptions.ignoreEventsCondition(e)||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup)):!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup),this._simulateKeyUpEventsHiddenByCmd(e,t),this.listeners.keyCombination&&this._allKeysAreReleased()&&this.listeners.keyCombination({keys:n.getKeyDictionary(),id:n.describe()})}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t){this.keyEventManager.simulatePendingKeyPressEvents(),this._handleEventSimulation(`handleKeyPress`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t){var n=this;isCmdKey(t)&&(this.keyEventManager.simulatePendingKeyUpEvents(),this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||n._handleEventSimulation(`handleKeyUp`,n._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t})}))}},{key:`_startAndLogNewKeyCombination`,value:function(e,t){this.getKeyHistory().startNewKeyCombination(e,t)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n){this.getKeyHistory().addKeyToCurrentCombination(e,t,n)}},{key:`_handleEventSimulation`,value:function(e,t,n){var a=n.event,o=n.key;if(t&&Configuration.option(`simulateMissingKeyPressEvents`)){var s=this._cloneAndMergeEvent(a,{key:o,simulated:!0});this[e](s)}}},{key:`_callHandlerIfExists`,value:function(e,t,n){this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&this._callClosestMatchingHandler(e,t,n)}},{key:`_callClosestMatchingHandler`,value:function(e,n,a){for(var o,s=this.componentList.getNewIterator();s.next();)if(o=_get(_getPrototypeOf(t.prototype),`_callClosestMatchingHandler`,this).call(this,e,n,a,s.getPosition(),0),o)return}},{key:`_stopEventPropagation`,value:function(e,t){e.simulated||e.stopPropagation()}},{key:`addKeyCombinationListener`,value:function(e){var t=this,n=function(){delete t.listeners.keyCombination};return this.listeners.keyCombination=function(t){e(t),n()},this._updateDocumentHandlers(),n}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.eventIcons,a=Logger.componentIcons,o=`HotKeys (GLOBAL`;if(!1!==t.eventId){var s=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;o=`${o}-E${s}${n[s%n.length]}`}return isUndefined(e)?`${o}):`:`${o}-C${e}${a[e%a.length]}):`}}]),t}(AbstractKeyEventStrategy),KeyEventManager=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this.logger=t.logger||new Logger(Configuration.option(`logLevel`)),this._focusOnlyEventStrategy=new FocusOnlyKeyEventStrategy({configuration:t,logger:this.logger},this),this._globalEventStrategy=new GlobalKeyEventStrategy({configuration:t,logger:this.logger},this),this.mountedComponentsCount=0}return _createClass$1(e,null,[{key:`getInstance`,value:function(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this.instance||=new e(t),this.instance}},{key:`clear`,value:function(){delete this.instance}}]),_createClass$1(e,[{key:`getApplicationKeyMap`,value:function(){return Object.assign(this._globalEventStrategy.getApplicationKeyMap(),this._focusOnlyEventStrategy.getApplicationKeyMap())}},{key:`registerKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._focusOnlyEventStrategy.registerKeyMap(e)}},{key:`reregisterKeyMap`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};this._focusOnlyEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._focusOnlyEventStrategy.deregisterKeyMap(e)}},{key:`registerComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._focusOnlyEventStrategy.registerComponentMount(e,t)}},{key:`registerComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`_incrementComponentCount`,value:function(){var e=this,t=this.mountedComponentsCount;this.mountedComponentsCount+=1,t===0&&this.mountedComponentsCount===1&&(window.onblur=function(){return e._clearKeyHistory()})}},{key:`_decrementComponentCount`,value:function(){var e=this.mountedComponentsCount;--this.mountedComponentsCount,e===1&&this.mountedComponentsCount===0&&delete window.onblur}},{key:`_clearKeyHistory`,value:function(){this._focusOnlyEventStrategy.resetKeyHistory({force:!0}),this._globalEventStrategy.resetKeyHistory({force:!0})}},{key:`registerGlobalKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._globalEventStrategy.registerKeyMap(e)}},{key:`registerGlobalComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`registerGlobalComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._globalEventStrategy.registerComponentMount(e,t)}},{key:`reregisterGlobalKeyMap`,value:function(e,t){this._globalEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterGlobalKeyMap`,value:function(e){this._globalEventStrategy.deregisterKeyMap(e)}},{key:`addKeyCombinationListener`,value:function(e){return this._globalEventStrategy.addKeyCombinationListener(e)}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;return this._focusOnlyEventStrategy.enableHotKeys(e,t,n,a)}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;return this._focusOnlyEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableHotKeys`,value:function(e,t){return this._focusOnlyEventStrategy.disableHotKeys(e,t)}},{key:`handleKeydown`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeydown(e,t,n,a)}},{key:`handleKeyPress`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyPress(e,t,n,a)}},{key:`handleKeyUp`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyUp(e,t,n,a)}},{key:`enableGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.enableHotKeys(e,t,n,a,o)}},{key:`updateEnabledGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableGlobalHotKeys`,value:function(e){return this._globalEventStrategy.disableHotKeys(e)}},{key:`handleGlobalKeyDown`,value:function(e){return this._globalEventStrategy.handleKeydown(e)}},{key:`handleGlobalKeyPress`,value:function(e){return this._globalEventStrategy.handleKeyPress(e)}},{key:`handleGlobalKeyUp`,value:function(e){return this._globalEventStrategy.handleKeyUp(e)}},{key:`ignoreEvent`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().ignoreEvent(e)}},{key:`observeIgnoredEvents`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().observeIgnoredEvents(e)}},{key:`closeHangingKeyCombination`,value:function(e,t){this._focusOnlyEventStrategy.closeHangingKeyCombination(e,t)}},{key:`reactAppHistoryWithEvent`,value:function(e,t){var n=this._focusOnlyEventStrategy.eventPropagator.getPreviousPropagation();return n.isForKey(e)&&n.isForEventType(t)?n.isHandled()?EventResponse.handled:n.isIgnoringEvent()?EventResponse.ignored:EventResponse.seen:EventResponse.unseen}},{key:`simulatePendingKeyPressEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyPressEvents()}},{key:`simulatePendingKeyUpEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyUpEvents()}},{key:`isGlobalListenersBound`,value:function(){return this._globalEventStrategy.listenersBound}}]),e}(),HotKeys=withHotKeys(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=e.innerRef,a=e.component,o=_objectWithoutProperties$1(e,[`hotKeys`,`innerRef`,`component`]),s=a||Configuration.option(`defaultComponent`);return import_react.createElement(s,_objectSpread$1({},t,{ref:n},o))}}]),t}(import_react.Component)),HotKeys.propTypes={innerRef:import_prop_types.default.oneOfType([import_prop_types.default.object,import_prop_types.default.func])},GlobalHotKeys$2=function(e){function t(e){var n;return _classCallCheck$1(this,t),n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)),n._id=KeyEventManager.getInstance().registerGlobalKeyMap(e.keyMap),n._childContext={globalHotKeysParentId:n._id},n}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){return this.props.children||null}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterGlobalKeyMap(this._id,this.props.keyMap),this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`)){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledGlobalHotKeys(this._id,n,a,this._getComponentOptions(),this._getEventOptions())}}},{key:`componentDidMount`,value:function(){var e=this.props,t=e.keyMap,n=e.handlers,a=this.context.globalHotKeysParentId,o=KeyEventManager.getInstance();o.registerGlobalComponentMount(this._id,a),o.enableGlobalHotKeys(this._id,t,n,this._getComponentOptions(),this._getEventOptions())}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterGlobalKeyMap(this._id),e.disableGlobalHotKeys(this._id),e.registerGlobalComponentUnmount()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),t}(import_react.Component),_defineProperty$3(GlobalHotKeys$2,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,allowChanges:import_prop_types.default.bool}),GlobalHotKeys$1$1=backwardsCompatibleContext(GlobalHotKeys$2,{deprecatedAPI:{contextTypes:{globalHotKeysParentId:import_prop_types.default.number},childContextTypes:{globalHotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{globalHotKeysParentId:void 0}}}),IgnoreKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`ignoreEvent`),ObserveKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`observeIgnoredEvents`)})),require_index_es=__commonJSMin(((e,t)=>{t.exports=(init_react_hotkeys_production_min(),__toCommonJS(react_hotkeys_production_min_exports))})),import_index_es=require_index_es(),cropType={ASPARAGUS:`ASPARAGUS`,CARROT:`CARROT`,CORN:`CORN`,GARLIC:`GARLIC`,GRAPE:`GRAPE`,JALAPENO:`JALAPENO`,OLIVE:`OLIVE`,ONION:`ONION`,PEA:`PEA`,POTATO:`POTATO`,PUMPKIN:`PUMPKIN`,SOYBEAN:`SOYBEAN`,SPINACH:`SPINACH`,SUNFLOWER:`SUNFLOWER`,STRAWBERRY:`STRAWBERRY`,SUGARCANE:`SUGARCANE`,SWEET_POTATO:`SWEET_POTATO`,TOMATO:`TOMATO`,WATERMELON:`WATERMELON`,WHEAT:`WHEAT`,WEED:`WEED`},recipeType={FERMENTATION:`FERMENTATION`,FORGE:`FORGE`,KITCHEN:`KITCHEN`,RECYCLING:`RECYCLING`,WINE:`WINE`,WOOD_CHIPPER:`WOOD_CHIPPER`},fieldMode={CHOP:`CHOP`,CLEANUP:`CLEANUP`,FERTILIZE:`FERTILIZE`,HARVEST:`HARVEST`,HARVEST_FRUIT:`HARVEST_FRUIT`,MINE:`MINE`,OBSERVE:`OBSERVE`,PLANT:`PLANT`,SET_SPRINKLER:`SET_SPRINKLER`,SET_SCARECROW:`SET_SCARECROW`,SET_LIGHTNING_ROD:`SET_LIGHTNING_ROD`,WATER:`WATER`},stageFocusType={NONE:`NONE`,HOME:`HOME`,FIELD:`FIELD`,FOREST:`FOREST`,SHOP:`SHOP`,COW_PEN:`COW_PEN`,INVENTORY:`INVENTORY`,WORKSHOP:`WORKSHOP`,CELLAR:`CELLAR`},cropLifeStage={SEED:`SEED`,GROWING:`GROWING`,GROWN:`GROWN`},treeLifeStage={...cropLifeStage,DEAD:`DEAD`},itemType={COW_FEED:`COW_FEED`,CRAFTED_ITEM:`CRAFTED_ITEM`,CROP:`CROP`,FERTILIZER:`FERTILIZER`,FUEL:`FUEL`,HUGGING_MACHINE:`HUGGING_MACHINE`,LIGHTNING_ROD:`LIGHTNING_ROD`,MILK:`MILK`,MULCH:`MULCH`,ORE:`ORE`,SCARECROW:`SCARECROW`,SPRINKLER:`SPRINKLER`,STONE:`STONE`,TOOL_UPGRADE:`TOOL_UPGRADE`,TREE:`TREE`,WEED:`WEED`,WOOD:`WOOD`},treeType={APPLE:`APPLE`,BANANA:`BANANA`},fertilizerType={NONE:`NONE`,STANDARD:`STANDARD`,RAINBOW:`RAINBOW`},genders={FEMALE:`FEMALE`,MALE:`MALE`},cowColors={BLUE:`BLUE`,BROWN:`BROWN`,GREEN:`GREEN`,ORANGE:`ORANGE`,PURPLE:`PURPLE`,RAINBOW:`RAINBOW`,WHITE:`WHITE`,YELLOW:`YELLOW`},{RAINBOW:RAINBOW$2,...standardCowColors}=cowColors,dialogView={NONE:`NONE`,ACCOUNTING:`ACCOUNTING`,ACHIEVEMENTS:`ACHIEVEMENTS`,FARMERS_LOG:`FARMERS_LOG`,KEYBINDINGS:`KEYBINDINGS`,ONLINE_PEERS:`ONLINE_PEERS`,PRICE_EVENTS:`PRICE_EVENTS`,SETTINGS:`SETTINGS`,STATS:`STATS`},toolType={AXE:`AXE`,PICKER_POLE:`PICKER_POLE`,SCYTHE:`SCYTHE`,SHOVEL:`SHOVEL`,HOE:`HOE`,WATERING_CAN:`WATERING_CAN`},toolLevel={UNAVAILABLE:`UNAVAILABLE`,DEFAULT:`DEFAULT`,BRONZE:`BRONZE`,IRON:`IRON`,SILVER:`SILVER`,GOLD:`GOLD`},cowTradeRejectionReason={REQUESTED_COW_UNAVAILABLE:`REQUESTED_COW_UNAVAILABLE`},cropFamily={GRAPE:`GRAPE`},grapeVariety={CHARDONNAY:`CHARDONNAY`,SAUVIGNON_BLANC:`SAUVIGNON_BLANC`,CABERNET_SAUVIGNON:`CABERNET_SAUVIGNON`,TEMPRANILLO:`TEMPRANILLO`,NEBBIOLO:`NEBBIOLO`},season={SPRING:`SPRING`,SUMMER:`SUMMER`,FALL:`FALL`,WINTER:`WINTER`},{freeze:freeze$10}=Object,BREAKPOINTS={XS:0,SM:600,MD:960,LG:1280,XL:1920},LOAN_GARNISHMENT_RATE=.05,LOAN_INTEREST_RATE=.02,FERTILIZER_BONUS=.5,SEASON_LENGTH_DAYS=15,SEASON_HIGH_DEMAND_BONUS=.2,SEASON_LOW_DEMAND_PENALTY=.2,ONE_YEAR_LENGTH_DAYS=60,PURCHASEABLE_FIELD_SIZES=freeze$10(new Map([[1,{columns:8,rows:12,price:1e3}],[2,{columns:10,rows:16,price:5e3}],[3,{columns:12,rows:18,price:2e4}]])),PURCHASABLE_FOREST_SIZES=freeze$10(new Map([[1,{columns:4,rows:2,price:1e5}],[2,{columns:4,rows:3,price:2e5}],[3,{columns:4,rows:4,price:3e5}]])),LARGEST_PURCHASABLE_FIELD_SIZE=PURCHASEABLE_FIELD_SIZES.get(PURCHASEABLE_FIELD_SIZES.size),PURCHASEABLE_COMBINES=freeze$10(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_COMPOSTERS=freeze$10(new Map([[1,{type:`Basic`,price:1e3}]])),PURCHASEABLE_SMELTERS=freeze$10(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_WOOD_CHIPPERS=freeze$10(new Map([[1,{type:`Basic`,price:5e4}]])),PURCHASEABLE_COW_PENS=freeze$10(new Map([[1,{cows:10,price:1500}],[2,{cows:20,price:1e4}],[3,{cows:30,price:5e4}]])),PURCHASEABLE_CELLARS=freeze$10(new Map([[1,{space:10,price:25e4}],[2,{space:20,price:75e4}],[3,{space:30,price:2e6}]])),CROW_CHANCE=.4,PRECIPITATION_CHANCE=.1,STORM_CHANCE=.5,SCARECROW_ITEM_ID=`scarecrow`,SPRINKLER_ITEM_ID=`sprinkler`,COW_STARTING_WEIGHT_BASE=1800,MALE_COW_WEIGHT_MULTIPLIER=1.1,COW_HUG_BENEFIT=.05,COW_WEIGHT_MULTIPLIER_FEED_BENEFIT=.1,COW_WEIGHT_MULTIPLIER_MINIMUM=.5,COW_WEIGHT_MULTIPLIER_MAXIMUM=1.5,COW_FEED_ITEM_ID=`cow-feed`,HUGGING_MACHINE_ITEM_ID=`hugging-machine`,COW_MINIMUM_HAPPINESS_TO_BREED=.8,NOTIFICATION_DURATION=6e3,PRICE_EVENT_CHANCE=.2,STAGE_TITLE_MAP={[stageFocusType.HOME]:`Home`,[stageFocusType.FIELD]:`Field`,[stageFocusType.FOREST]:`Forest`,[stageFocusType.SHOP]:`Shop`,[stageFocusType.COW_PEN]:`Cows`,[stageFocusType.WORKSHOP]:`Workshop`,[stageFocusType.CELLAR]:`Cellar`},RECIPE_INGREDIENT_VALUE_MULTIPLIER=1.25,I_AM_RICH_BONUSES=[.05,.1,.25],PERSISTED_STATE_KEYS=`allowCustomPeerCowNames.cellarInventory.completedAchievements.cowBreedingPen.cowColorsPurchased.cowForSale.cowInventory.cowsSold.cowsTraded.cropsHarvested.dayCount.experience.farmName.field.forest.hasProducedRainbowFertilizer.historicalDailyLosses.historicalDailyRevenue.historicalValueAdjustments.hoveredPlotRangeSize.playerId.inventory.inventoryLimit.isCombineEnabled.itemsSold.cellarItemsSold.learnedRecipes.loanBalance.loansTakenOut.money.mulchApplied.newDayNotifications.notificationLog.priceCrashes.priceSurges.profitabilityStreak.purchasedCombine.purchasedComposter.purchasedCowPen.purchasedCellar.purchasedField.purchasedForest.purchasedSmelter.purchasedWoodChipper.recipesMade.record7dayProfitAverage.recordProfitabilityStreak.recordSingleDayProfit.revenue.showHomeScreen.showNotifications.todaysLosses.todaysPurchases.todaysRevenue.todaysStartingInventory.toolLevels.treeFruitsHarvested.treesChopped.useAlternateEndDayButtonPosition.valueAdjustments.version`.split(`.`),PEER_METADATA_STATE_KEYS=[`cowsSold`,`cropsHarvested`,`dayCount`,`experience`,`playerId`,`money`,`pendingPeerMessages`,`version`],DEFAULT_ROOM=`global`,LEFT=`left`,RIGHT=`right`,TOOLBELT_FIELD_MODES=new Set([fieldMode.CLEANUP,fieldMode.HARVEST,fieldMode.WATER,fieldMode.MINE]),RESOURCE_SPAWN_CHANCE=.3,ORE_SPAWN_CHANCE=.25,COAL_SPAWN_CHANCE=.15,STONE_SPAWN_CHANCE=.4,SALT_ROCK_SPAWN_CHANCE=.3,BRONZE_SPAWN_CHANCE=.4,GOLD_SPAWN_CHANCE=.07,IRON_SPAWN_CHANCE=.33,SILVER_SPAWN_CHANCE=.2,HOE_LEVEL_TO_SEED_RECLAIM_RATE={[toolLevel.DEFAULT]:0,[toolLevel.BRONZE]:.25,[toolLevel.IRON]:.5,[toolLevel.SILVER]:.75,[toolLevel.GOLD]:1},AXE_WOOD_YIELD_RANGE={[toolLevel.DEFAULT]:[1,2],[toolLevel.BRONZE]:[2,4],[toolLevel.IRON]:[4,6],[toolLevel.SILVER]:[6,8],[toolLevel.GOLD]:[8,10]},PICKER_POLE_LEVEL_TO_FRUIT_YIELD={[toolLevel.DEFAULT]:1,[toolLevel.BRONZE]:2,[toolLevel.IRON]:3,[toolLevel.SILVER]:4,[toolLevel.GOLD]:5},TREE_LIFESPAN_VARIANCE_MAX=.05,TREE_DEATH_CHANCE_BASE=.05,TREE_DEATH_CHANCE_INCREMENT_PER_DAY=.02,TREE_DEATH_CHANCE_MAX=.85,COW_COLORS_HEX_MAP={[cowColors.BLUE]:`#8ff0f9`,[cowColors.BROWN]:`#b45f28`,[cowColors.GREEN]:`#65f295`,[cowColors.ORANGE]:`#ff7031`,[cowColors.PURPLE]:`#d884f2`,[cowColors.WHITE]:`#ffffff`,[cowColors.YELLOW]:`#fff931`},COW_TRADE_TIMEOUT=1e4,WEEDS_SPAWN_CHANCE=.15,KEG_INTEREST_RATE=.02,KEG_SPOILAGE_RATE_MULTIPLIER=.001,WINE_INTEREST_RATE=.015,EXPERIENCE_VALUES={CELLAR_ACQUIRED:10,CELLAR_EXPANDED:5,COMPOSTER_ACQUIRED:10,COW_BRED:1,COW_PEN_ACQUIRED:10,COW_PEN_EXPANDED:5,COW_TRADED:1,FERMENTATION_RECIPE_MADE:1,FIELD_EXPANDED:5,FOREST_EXPANDED:10,FORGE_RECIPE_MADE:3,ITEM_SOLD:1,KEG_SOLD:2,KITCHEN_RECIPE_MADE:2,LOAN_PAID_OFF:25,NEW_YEAR:5,RAINBOW_COW_BRED:2,RECYCLING_RECIPE_MADE:1,SMELTER_ACQUIRED:10,WOOD_CHIPPER_ACQUIRED:10,WOOD_CHIPPER_RECIPE_MADE:1},STANDARD_VIEW_LIST=[stageFocusType.SHOP,stageFocusType.FIELD],Z_INDEX={END_DAY_BUTTON:1100},HEARTBEAT_INTERVAL_PERIOD=10*1e3,blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAv0lEQVRoQ+2aOw6AIBBEofAiHtqzeBrvYGNjsUaDBsFqMWw2eZZWDJ/HzGicVpFxCNWz7CF4eB/nTcTLYL/GeQk4p9+riEeAVxEvAR5FVAK8iYhQKAOwBQigkPVlB4WsqQWFchcIhRRIxgtZbJscHHihe9tarQSJrAzTvVcCCvWe8fLMQSEo1FiqkchIZOkQaWkGhaAQFEr1unW7oKUZvZD1ytEL0Qs1fg0lkWk9zF9ZGi+EF8IL4YVs/2pxT6EDTzqfZhoHJYMAAAAASUVORK5CYIIA`,light_blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAiklEQVRoge3UsQnAMAwFUUd4Du8/Q8bJEK4CTpEuAYOrs+BUPjW/uuPsY7RafnfdpWTwaPV9fi+Lx46jVjx2HLXiMXtm8Jg9M3jsOGrFrRDtVoh2K0S7FaLdCtFuhWi3QrRbIdqtEO1WiHYrRLsVot0K0W6FaLdCtFsh2q0Q7VaIditEuxWiPX2FHsE1Al0X/e79AAAAAElFTkSuQmCC`,colors={itemBackground:`#f7b459`,heart:`#ff4040`,error:`#ce0000`,success:`#2e7d32`,cardBackground:`#ffe3a1`,cardBackgroundNested:`#ffd46e`,cow:{blue:`#8ff0f9`,brown:`#b45f28`,green:`#65f295`,orange:`#ff7031`,purple:`#d884f2`,white:`#ffffff`,yellow:`#fff931`}},breakpoints={smallPhone:320,mediumPhone:400,largePhone:450,sm:600,md:960,lg:1280,xl:1920},layout={cardMaxWidth:550,sidebarWidth:`22em`,narrowSidebarWidth:320,fieldSpaceForRightSideControls:`4.5em`},fillSx={bottom:0,left:0,position:`absolute`,right:0,top:0},squareImgSx={backgroundRepeat:`no-repeat`,backgroundSize:`cover`,display:`block`,width:`100%`},cardStyleSx=e=>({background:colors.cardBackground,border:`solid 2px #b68000`,transition:e.transitions.create(`background`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut})}),cardStyleSelectedSx={background:lighten$6(colors.cardBackground,.4)},centerTabsSx={margin:`0 auto`,maxWidth:600,"& .MuiTabs-flexContainer":{justifyContent:`center`},"& > .MuiTabs-root":{marginTop:`4em`},'& [role="tabpanel"]':{background:`rgba(255, 255, 255, 0.5)`,borderRadius:`0 0 0.5em 0.5em`,padding:`0.5em 0.5em 0.5em`,"& .card-list > li:last-child":{marginBottom:0}}},spriteShadowSx={filter:`drop-shadow(2px 2px 2px rgba(100, 100, 100, 0.4))`},quickSelectSx=(e,t)=>({...cardStyleSx(e),bottom:`7.5em`,left:`50%`,maxWidth:`calc(100% - 2em)`,position:`fixed`,transform:`translateX(-50%)`,"@media (orientation: landscape)":{bottom:`auto`,[`@media (max-height: ${breakpoints.largePhone}px)`]:{top:`5em`,maxWidth:`calc(100% - 12em)`,left:`calc(50% - (${layout.fieldSpaceForRightSideControls} / 2))`},[`@media (max-width: ${breakpoints.md}px)`]:{display:t?`none`:void 0}},[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{left:`auto`,maxHeight:`calc(100vh - 20em)`,minWidth:`4em`,overflow:`auto`,right:`0.75em`,top:`9em`,transform:`none`,bottom:`8em`},"@media (orientation: portrait)":{display:t?`none`:void 0},"& .MuiGrid-root":{borderRadius:`0.25em`,overflowX:`scroll`,overflowY:`hidden`,padding:`0.5em`,position:`relative`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{overflowX:`hidden`,flexDirection:`column`},"& > *":{[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{alignItems:`center`,width:`3em`}}},"& .Toolbelt":{display:`flex`,flexFlow:`column`,justifyContent:`center`},"& .MuiDivider-root":{margin:`0 0.5em`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{margin:`0.5em 0`,height:`1px`,width:`100%`,borderRightWidth:0,borderBottomWidth:`thin`}}});init_createTheme();var globalStyleOverrides={body:{overscrollBehavior:`contain`},"ul, ol":{listStyle:`none`,margin:0,padding:0},p:{margin:0},".markdown":{"& p":{margin:`1em 0`},"& ul li":{listStyle:`disc`,marginLeft:`1em`},"& strong":{fontWeight:`bold`}},img:{imageRendering:`pixelated`},strong:{fontWeight:`bold`},".visually_hidden:not(:focus):not(:active)":{clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,height:`1px`,overflow:`hidden`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`},"h4, h5, h6, p, p.MuiTypography-root":{fontFamily:`"Public Sans", sans-serif`},"h3, h4, h5, h6":{fontWeight:`bold`},h2:{fontSize:`1.4em`},"h3, h4":{margin:`1em 0`},"p, .MuiTypography-body2":{lineHeight:`1.5em`},"ul.card-list":{flexGrow:1,marginBottom:`1em`,"& li":{margin:`1em 0`},"& > li":{margin:`1em auto`,maxWidth:layout.cardMaxWidth}},'input[type="number"]':{minWidth:`140px`},th:{fontWeight:`bold`},"h1, h2, h3, h4, h5, h6, legend, td, th, .MuiTypography-h1, .MuiTypography-h2, .MuiTypography-h3, .MuiTypography-h4, .MuiTypography-h5, .MuiTypography-h6, .MuiButtonBase-root":{fontFamily:`"Francois One", sans-serif`},".danger-text":{color:colors.error},".success-text":{color:colors.success},hr:{background:`none`},".MuiDivider-vertical":{width:`auto`},".Farmhand.notification-container":{marginTop:`8em`,paddingTop:0,[`@media (min-width: ${breakpoints.md}px)`]:{marginTop:`4em`,marginRight:`4em`},"& .MuiCollapse-wrapperInner":{width:`100%`},"& .MuiCollapse-wrapper":{marginBottom:0}},".spacer":{minHeight:`7.5em`}},mui_theme_default=createTheme({palette:{mode:`light`},shape:{},typography:{fontFamily:`"Public Sans", sans-serif`,button:{fontFamily:`"Francois One", sans-serif`,textTransform:`none`},h6:{fontFamily:`"Francois One", sans-serif`,fontSize:`1.4em`},h5:{fontFamily:`"Francois One", sans-serif`}},components:{MuiCssBaseline:{styleOverrides:globalStyleOverrides},MuiTabs:{styleOverrides:{root:({theme:e})=>({background:`#ffeec6`,borderColor:`#9b6d00`,borderWidth:2,borderStyle:`solid`,borderRadius:`${e.shape.borderRadius}px ${e.shape.borderRadius}px 0 0`})}},MuiInput:{styleOverrides:{root:{margin:`1rem 0`}}},MuiCard:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx,"& .MuiCard-root":{background:colors.cardBackgroundNested}})}},MuiTableContainer:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx})}},MuiCardHeader:{styleOverrides:{avatar:{"& img":spriteShadowSx}}},MuiCardContent:{styleOverrides:{root:{"&:last-child":{padding:`16px`}}}},MuiTableCell:{styleOverrides:{root:{borderColor:`#e9c777`}}},MuiButtonBase:{styleOverrides:{root:{textTransform:`none`}}},MuiPaper:{styleOverrides:{rounded:{backgroundColor:`#fff7e7`}}},MuiTooltip:{styleOverrides:{tooltip:{"& p":{textAlign:`center`}}}},MuiDialog:{styleOverrides:{root:{display:`block`},paper:{backgroundImage:`url(${light_blue_stripe_bg_default})`}}},MuiDivider:{styleOverrides:{root:{margin:`1.5em 0`}}},MuiAlert:{styleOverrides:{root:{marginBottom:`1em`,"@media (min-width: 0px) and (orientation: landscape)":{top:`3.5em`},[`@media (min-width: ${breakpoints.sm}px)`]:{top:`4.5em`},"& p":{margin:`1em 0`,"&:first-of-type":{marginTop:0},"&:last-child":{marginBottom:0}},"& strong":{fontWeight:`bold`},"& li":{marginLeft:`1em`},"& ul li":{listStyle:`disc`},"& ol li":{listStyle:`decimal`}}}}}});init_styled();var Span=styled$1(`span`)({}),Div=styled$1(`div`)({}),P$1=styled$1(`p`)({}),Ol=styled$1(`ol`)({}),Ul=styled$1(`ul`)({}),Li=styled$1(`li`)({}),Img=styled$1(`img`)({}),Form=styled$1(`form`)({}),Header=styled$1(`header`)({}),H3=styled$1(`h3`)({}),A=styled$1(`a`)({}),require_shifty=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a():typeof define==`function`&&define.amd?define(`shifty`,[],a):typeof e==`object`?e.shifty=a():n.shifty=a()})(self,(function(){return function(){var e={933:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.setBezierFunction=t.getCubicBezierTransition=void 0;let a=n(55);t.getCubicBezierTransition=(e=.25,t=.25,n=.75,a=.75)=>o=>function(e,t,n,a,o,s){let l=0,u=0,d=0,f=0,m=0,h=0,v=e=>((l*e+u)*e+d)*e,y=e=>(3*l*e+2*u)*e+d,b=e=>e>=0?e:0-e;return d=3*t,u=3*(a-t)-d,l=1-d-u,h=3*n,m=3*(o-n)-h,f=1-h-m,x=e,S=(e=>1/(200*e))(s),(e=>((f*e+m)*e+h)*e)(((e,t)=>{let n,a,o,s,l,u;for(o=e,u=0;u<8;u++){if(s=v(o)-e,b(s)<t)return o;if(l=y(o),b(l)<1e-6)break;o-=s/l}if(n=0,a=1,o=e,o<n)return n;if(o>a)return a;for(;n<a;){if(s=v(o),b(s-e)<t)return o;e>s?n=o:a=o,o=.5*(a-n)+n}return o})(x,S));var x,S}(o,e,t,n,a,1),t.setBezierFunction=(e,n,o,s,l)=>{let u=(0,t.getCubicBezierTransition)(n,o,s,l);return u.displayName=e,u.x1=n,u.y1=o,u.x2=s,u.y2=l,a.Tweenable.easing[e]=u}},156:function(e,t,n){var a=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)n==="default"||Object.prototype.hasOwnProperty.call(t,n)||a(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=t.standardEasingFunctions=t.setBezierFunction=t.Scene=t.interpolate=t.tween=t.Tweenable=t.shouldScheduleUpdate=t.processTweens=void 0;let s=n(55);Object.defineProperty(t,"processTweens",{enumerable:!0,get:function(){return s.processTweens}}),Object.defineProperty(t,"shouldScheduleUpdate",{enumerable:!0,get:function(){return s.shouldScheduleUpdate}}),Object.defineProperty(t,"Tweenable",{enumerable:!0,get:function(){return s.Tweenable}}),Object.defineProperty(t,"tween",{enumerable:!0,get:function(){return s.tween}});var l=n(243);Object.defineProperty(t,"interpolate",{enumerable:!0,get:function(){return l.interpolate}});var u=n(612);Object.defineProperty(t,"Scene",{enumerable:!0,get:function(){return u.Scene}});var d=n(933);Object.defineProperty(t,"setBezierFunction",{enumerable:!0,get:function(){return d.setBezierFunction}});var f=n(809);Object.defineProperty(t,"standardEasingFunctions",{enumerable:!0,get:function(){return f.standardEasingFunctions}}),o(n(613),t),t.VERSION=`3.0.6`},243:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.interpolate=void 0;let a=n(55),o=new a.Tweenable,{filters:s}=a.Tweenable;t.interpolate=(e,t,n,l=a.Tweenable.easing.linear,u=0)=>{let d=Object.assign({},e),f=(0,a.composeEasingObject)(e,l);o._filters.length=0,o.setState({}),o._currentState=d,o._originalState=e,o._targetState=t,o._easing=f;for(let e in s)s[e].doesApply(o)&&o._filters.push(s[e]);o._applyFilter(`tweenCreated`),o._applyFilter(`beforeTween`);let m=(0,a.tweenProps)(n,d,e,t,1,u,f);return o._applyFilter(`afterTween`),m}},612:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Scene=void 0,t.Scene=class{constructor(...e){this._tweenables=[],e.forEach(this.add.bind(this))}get tweenables(){return[...this._tweenables]}get promises(){return this._tweenables.map((e=>e.then()))}add(e){return this._tweenables.push(e),e}remove(e){let t=this._tweenables.indexOf(e);return t>-1&&this._tweenables.splice(t,1),e}empty(){return this.tweenables.map(this.remove.bind(this))}get isPlaying(){return this._tweenables.some((({isPlaying:e})=>e))}tween(){return this._tweenables.forEach((e=>e.tween())),this}pause(){return this._tweenables.forEach((e=>e.pause())),this}resume(){return this._tweenables.filter((({hasEnded:e})=>!e)).forEach((e=>e.resume())),this}stop(e){return this._tweenables.forEach((t=>t.stop(e))),this}}},809:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.standardEasingFunctions=void 0,t.standardEasingFunctions=Object.freeze({linear:e=>e,easeInQuad:e=>e**2,easeOutQuad:e=>-((e-1)**2-1),easeInOutQuad:e=>(e/=.5)<1?.5*e**2:-.5*((e-=2)*e-2),easeInCubic:e=>e**3,easeOutCubic:e=>(e-1)**3+1,easeInOutCubic:e=>(e/=.5)<1?.5*e**3:.5*((e-2)**3+2),easeInQuart:e=>e**4,easeOutQuart:e=>-((e-1)**4-1),easeInOutQuart:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeInQuint:e=>e**5,easeOutQuint:e=>(e-1)**5+1,easeInOutQuint:e=>(e/=.5)<1?.5*e**5:.5*((e-2)**5+2),easeInSine:e=>1-Math.cos(Math.PI/2*e),easeOutSine:e=>Math.sin(Math.PI/2*e),easeInOutSine:e=>-.5*(Math.cos(Math.PI*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:1-2**(-10*e),easeInOutExpo:e=>e===0?0:e===1?1:(e/=.5)<1?.5*2**(10*(e-1)):.5*(2-2**(-10*--e)),easeInCirc:e=>-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-1)**2),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeOutBounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,easeInBack:e=>e*e*(2.70158*e-1.70158),easeOutBack:e=>--e*e*(2.70158*e+1.70158)+1,easeInOutBack:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},elastic:e=>-1*4**(-8*e)*Math.sin((6*e-1)*(2*Math.PI)/2)+1,swingFromTo:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},swingFrom:e=>e*e*(2.70158*e-1.70158),swingTo:e=>--e*e*(2.70158*e+1.70158)+1,bounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,bouncePast:e=>e<1/2.75?7.5625*e*e:e<2/2.75?2-(7.5625*(e-=1.5/2.75)*e+.75):e<2.5/2.75?2-(7.5625*(e-=2.25/2.75)*e+.9375):2-(7.5625*(e-=2.625/2.75)*e+.984375),easeFromTo:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeFrom:e=>e**4,easeTo:e=>e**.25})},525:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.afterTween=t.beforeTween=t.tweenCreated=t.doesApply=void 0;let a=n(613),o=/(\d|-|\.)/,s=/([^\-0-9.]+)/g,l=/[0-9.-]+/g,u=(()=>{let e=l.source,t=`,\\s*`;return RegExp(`rgba?\\(${e}${t}${e}${t}${e}(${t}${e})?\\)`,`g`)})(),d=/^.*\(/,f=/#([0-9]|[a-f]){3,6}/gi,m=`VAL`,h=(e,t)=>e.map(((e,n)=>`_${t}_${n}`)),v=e=>{let t=e.match(s);return t?(t.length===1||e.charAt(0).match(o))&&t.unshift(``):t=[``,``],t.join(`VAL`)};function y(e){return parseInt(e,16)}let b=e=>`rgb(${(e=>{if((e=e.replace(/#/,``)).length===3){let[t,n,a]=e.split(``);e=t+t+n+n+a+a}return[y(e.substring(0,2)),y(e.substring(2,4)),y(e.substring(4,6))]})(e).join(`,`)})`,x=(e,t,n)=>{let a=t.match(e),o=t.replace(e,`VAL`);return a&&a.forEach((e=>o=o.replace(`VAL`,n(e)))),o},S=e=>{for(let t in e){let n=e[t];typeof n==`string`&&n.match(f)&&(e[t]=x(f,n,b))}},C=e=>{var t,n;let a=e.match(l)??[],o=a.slice(0,3).map((e=>Math.floor(Number(e)))),s=e.match(d)?.[0];if(a.length===3)return`${s}${o.join(`,`)})`;if(a.length===4)return`${s}${o.join(`,`)},${a[3]})`;throw Error(`Invalid rgbChunk: ${e}`)},T=e=>{var t;return e.match(l)??[]},E=(e,t)=>{let n={};return t.forEach((t=>{n[t]=e[t],delete e[t]})),n},D=(e,t)=>t.map((t=>Number(e[t]))),O=(e,t)=>(t.forEach((t=>e=e.replace(`VAL`,String(+t.toFixed(4))))),e);t.doesApply=e=>{for(let t in e._currentState)if(typeof e._currentState[t]==`string`)return!0;return!1},t.tweenCreated=function(e){let{_currentState:t,_originalState:n,_targetState:a}=e;[t,n,a].forEach(S),e._tokenData=(e=>{var t;let n={};for(let t in e){let a=e[t];typeof a==`string`&&(n[t]={formatString:v(a),chunkNames:h(T(a)?.map(Number),t)})}return n})(t)},t.beforeTween=function(e){let{_currentState:t,_originalState:n,_targetState:o,_easing:s,_tokenData:l}=e;typeof s!=`function`&&l&&((e,t)=>{var n;for(let n in t){let{chunkNames:o}=t[n],s=e[n];if(typeof s==`string`){let t=s.split(` `),n=t[t.length-1];for(let s=0;s<o.length;s++){let l=o[s],u=t[s]??n;(0,a.isEasingKey)(u)&&(e[l]=u)}}else o.forEach((t=>e[t]=s));delete e[n]}})(s,l),[t,n,o].forEach((e=>((e,t)=>{for(let n in t)T(String(e[n])).forEach(((a,o)=>e[t[n].chunkNames[o]]=+a)),delete e[n]})(e,l??{})))},t.afterTween=function(e){let{_currentState:t,_originalState:n,_targetState:a,_easing:o,_tokenData:s}=e;[t,n,a].forEach((e=>((e,t)=>{for(let n in t){let{chunkNames:a,formatString:o}=t[n],s=O(o,D(E(e,a),a));e[n]=x(u,s,C)}})(e,s??{}))),typeof o!=`function`&&s&&((e,t)=>{for(let n in t){let{chunkNames:a}=t[n],o=e[a[0]];e[n]=typeof o==`string`?a.map((t=>{let n=e[t];return delete e[t],n})).join(` `):o}})(o,s)}},55:function(e,t,n){var a,o=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.shouldScheduleUpdate=t.tween=t.Tweenable=t.composeEasingObject=t.scheduleUpdate=t.processTweens=t.tweenProps=t.getListTail=t.getListHead=t.resetList=void 0;let u=n(809),d=n(933),f=n(613),m=l(n(525)),h=`linear`,v=1e3/60,y=typeof window<`u`?window:n.g,b=`afterTween`,x=`beforeTween`,S=`string`,C=`function`,T=y.requestAnimationFrame;T||=typeof window>`u`?setTimeout:window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozCancelRequestAnimationFrame&&window.mozRequestAnimationFrame||setTimeout;let E=()=>{},D=null,O=null;t.resetList=()=>{D=O=null},t.getListHead=()=>D,t.getListTail=()=>O,t.tweenProps=(e,t,n,a,o,s,l)=>{var d;let f,m=0,h=e<s?0:(e-s)/o,v;for(let e in t){if(typeof l==C)v=l;else{let t=l[e];v=typeof t==C?t:L.easing[t]??u.standardEasingFunctions.linear}m=v(h),f=n[e],t[e]=f+(a[e]-f)*m}return t};let k=(e,n)=>{var a;let o=e._timestamp??0,s=e._currentState,l=e._delay;if(n<o+l)return;let u=e._duration,d=e._targetState,f=o+l+u,m=n>f?f:n;e._hasEnded=m>=f;let h=u-(f-m);if(e._hasEnded)return e._render(d,h,e._data),e.stop(!0);e._applyFilter(x),m<o+l?o=u=m=1:o+=l,(0,t.tweenProps)(m,s,e._originalState,d,u,o,e._easing),e._applyFilter(b),e._render(s,h,e._data)};t.processTweens=()=>{let e,t=L.now(),n=D;for(;n;)e=n._next,k(n,t),n=e};let{now:j}=Date,M,N=!1;t.scheduleUpdate=()=>{M=j(),N&&T.call(y,t.scheduleUpdate,16.666666666666668),(0,t.processTweens)()},t.composeEasingObject=(e,t=h,n={})=>{if(typeof t==S&&(0,f.isEasingKey)(t))return L.easing[t];if(Array.isArray(t))return(0,d.getCubicBezierTransition)(...t);if(typeof n==`object`)if(typeof t==S||typeof t==C)for(let a in e)n[a]=t;else for(let a in e)n[a]=t[a]||h;return n};let F=(()=>{let e,t;return n=>{e=null,t=null,n===D?(D=n._next,D?D._previous=null:O=null):n===O?(O=n._previous,O?O._next=null:D=null):(e=n._previous,t=n._next,e&&(e._next=t),t&&(t._previous=e)),n._previous=n._next=null}})(),I=typeof Promise==C?Promise:null;class L{constructor(e={},t){this[a]=`Promise`,this._next=null,this._previous=null,this._config={},this._data={},this._delay=0,this._duration=500,this._filters=[],this._timestamp=null,this._hasEnded=!1,this._resolve=null,this._reject=null,this._originalState={},this._targetState={},this._start=E,this._render=E,this._promiseCtor=I,this._promise=null,this._isPlaying=!1,this._pausedAtTime=null,this._easing={},this._currentState=e||{},t&&this.setConfig(t)}_applyFilter(e){var t;for(let n=this._filters.length;n>0;n--){let a=this._filters[n-n];(t=a[e])==null||t.call(a,this)}}tween(e){return this._isPlaying&&this.stop(),!e&&this._config||this.setConfig(e),this._pausedAtTime=null,this._timestamp=L.now(),this._start(this.state,this._data),this._delay&&this._render(this._currentState,0,this._data),this._resume(this._timestamp)}setConfig(e={}){var n;let{_config:a}=this,o;for(o in e)a[o]=e[o];let{promise:s=this._promiseCtor,start:l=E,finish:u,render:d=E}=a;this._data=a.data||this._data,this._isPlaying=!1,this._pausedAtTime=null,this._delay=e.delay||0,this._start=l,this._render=d,this._duration=a.duration||500,this._promiseCtor=s,u&&(this._resolve=u);let{from:f,to:m={}}=e,{_currentState:h,_originalState:v,_targetState:y}=this;for(let e in f)h[e]=f[e];let b=!1;for(let e in h){let t=h[e];b||typeof t!=S||(b=!0),v[e]=t,y[e]=m[e]??t}if(this._easing=(0,t.composeEasingObject)(this._currentState,a.easing,this._easing),this._filters.length=0,b){for(let e in L.filters)L.filters[e].doesApply(this)&&this._filters.push(L.filters[e]);this._applyFilter(`tweenCreated`)}return this}then(e,t){if(!this._promiseCtor)throw Error(`Promise implementation is unavailable`);return this._promise=new this._promiseCtor(((e,t)=>{this._resolve=e,this._reject=t})),this._promise.then(e,t)}catch(e){return this.then().catch(e)}finally(e){return this.then().finally(e)}get state(){return Object.assign({},this._currentState)}setState(e){this._currentState=e}pause(){return this._isPlaying?(this._pausedAtTime=L.now(),this._isPlaying=!1,F(this),this):this}resume(){return this._resume()}_resume(e=L.now()){if(this._timestamp===null)return this.tween();if(this._isPlaying&&this._promise)return this;this._pausedAtTime&&=(this._timestamp+=e-this._pausedAtTime,null),this._isPlaying=!0;let n=!!D;return D===null?(D=this,O=this):(this._previous=O,O&&(O._next=this),O=this),n||(0,t.shouldScheduleUpdate)(!0),this}seek(e){var t;e=Math.max(e,0);let n=L.now();return(this._timestamp??0)+e===0||(this._timestamp=n-e,k(this,n)),this}stop(e=!1){var n;return this._isPlaying?(this._isPlaying=!1,F(this),e&&(this._applyFilter(x),(0,t.tweenProps)(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),this._applyFilter(b),this._applyFilter(`afterTweenEnd`)),(n=this._resolve)==null||n.call(this,{data:this._data,state:this._currentState,tweenable:this}),this._resolve=null,this._reject=null,this):this}cancel(e=!1){var t;let{_currentState:n,_data:a,_isPlaying:o}=this;return o?((t=this._reject)==null||t.call(this,{data:a,state:n,tweenable:this}),this._resolve=null,this._reject=null,this.stop(e)):this}get isPlaying(){return this._isPlaying}get hasEnded(){return this._hasEnded}data(e=null){return e&&(this._data=Object.assign({},e)),this._data}dispose(){for(let e in this)delete this[e]}}t.Tweenable=L,a=Symbol.toStringTag,L.now=()=>(N||(M=j()),M),L.setScheduleFunction=e=>T=e,L.filters={token:m},L.easing=Object.create(u.standardEasingFunctions),t.tween=function(e={}){return new L({},{}).tween(e)},t.shouldScheduleUpdate=e=>{e&&N||(N=e,e&&(0,t.scheduleUpdate)())}},613:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.isEasingKey=void 0;let a=n(55);t.isEasingKey=e=>e in a.Tweenable.easing}},t={};function n(a){var o=t[a];if(o!==void 0)return o.exports;var s=t[a]={exports:{}};return e[a].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if(typeof globalThis==`object`)return globalThis;try{return this||Function(`return this`)()}catch{if(typeof window==`object`)return window}}(),n(156)}()}))}));init_generateUtilityClasses(),init_generateUtilityClass();function getAppBarUtilityClass(e){return generateUtilityClass(`MuiAppBar`,e)}var appBarClasses=generateUtilityClasses(`MuiAppBar`,[`root`,`positionFixed`,`positionAbsolute`,`positionSticky`,`positionStatic`,`positionRelative`,`colorDefault`,`colorPrimary`,`colorSecondary`,`colorInherit`,`colorTransparent`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$56=[`className`,`color`,`enableColorOnDark`,`position`],useUtilityClasses$50=e=>{let{color:t,position:n,classes:a}=e;return composeClasses({root:[`root`,`color${capitalize_default(t)}`,`position${capitalize_default(n)}`]},getAppBarUtilityClass,a)},joinVars=(e,t)=>e?`${e?.replace(`)`,``)}, ${t})`:t,AppBarRoot=styled$1(Paper,{name:`MuiAppBar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${capitalize_default(n.position)}`],t[`color${capitalize_default(n.color)}`]]}})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?e.palette.grey[100]:e.palette.grey[900];return _extends$3({display:`flex`,flexDirection:`column`,width:`100%`,boxSizing:`border-box`,flexShrink:0},t.position===`fixed`&&{position:`fixed`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0,"@media print":{position:`absolute`}},t.position===`absolute`&&{position:`absolute`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`sticky`&&{position:`sticky`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`static`&&{position:`static`},t.position===`relative`&&{position:`relative`},!e.vars&&_extends$3({},t.color==="default"&&{backgroundColor:n,color:e.palette.getContrastText(n)},t.color&&t.color!=="default"&&t.color!==`inherit`&&t.color!==`transparent`&&{backgroundColor:e.palette[t.color].main,color:e.palette[t.color].contrastText},t.color===`inherit`&&{color:`inherit`},e.palette.mode===`dark`&&!t.enableColorOnDark&&{backgroundColor:null,color:null},t.color===`transparent`&&_extends$3({backgroundColor:`transparent`,color:`inherit`},e.palette.mode===`dark`&&{backgroundImage:`none`})),e.vars&&_extends$3({},t.color==="default"&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette.AppBar.defaultBg:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette.AppBar.defaultBg),"--AppBar-color":t.enableColorOnDark?e.vars.palette.text.primary:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette.text.primary)},t.color&&!t.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette[t.color].main:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette[t.color].main),"--AppBar-color":t.enableColorOnDark?e.vars.palette[t.color].contrastText:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette[t.color].contrastText)},![`inherit`,`transparent`].includes(t.color)&&{backgroundColor:`var(--AppBar-background)`},{color:t.color===`inherit`?`inherit`:`var(--AppBar-color)`},t.color===`transparent`&&{backgroundImage:`none`,backgroundColor:`transparent`,color:`inherit`}))}),AppBar$1=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAppBar`}),{className:a,color:o=`primary`,enableColorOnDark:s=!1,position:l=`fixed`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$56),d=_extends$3({},n,{color:o,position:l,enableColorOnDark:s}),f=useUtilityClasses$50(d);return(0,import_jsx_runtime.jsx)(AppBarRoot,_extends$3({square:!0,component:`header`,ownerState:d,elevation:4,className:clsx$1(f.root,a,l===`fixed`&&`mui-fixed`),ref:t},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getToolbarUtilityClass(e){return generateUtilityClass(`MuiToolbar`,e)}var toolbarClasses=generateUtilityClasses(`MuiToolbar`,[`root`,`gutters`,`regular`,`dense`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled();var _excluded$55=[`className`,`component`,`disableGutters`,`variant`],useUtilityClasses$49=e=>{let{classes:t,disableGutters:n,variant:a}=e;return composeClasses({root:[`root`,!n&&`gutters`,a]},getToolbarUtilityClass,t)},ToolbarRoot=styled$1(`div`,{name:`MuiToolbar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(({theme:e,ownerState:t})=>_extends$3({position:`relative`,display:`flex`,alignItems:`center`},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},t.variant===`dense`&&{minHeight:48}),({theme:e,ownerState:t})=>t.variant===`regular`&&e.mixins.toolbar),Toolbar=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiToolbar`}),{className:a,component:o=`div`,disableGutters:s=!1,variant:l=`regular`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$55),d=_extends$3({},n,{component:o,disableGutters:s,variant:l}),f=useUtilityClasses$49(d);return(0,import_jsx_runtime.jsx)(ToolbarRoot,_extends$3({as:o,className:clsx$1(f.root,a),ref:t,ownerState:d},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getTypographyUtilityClass(e){return generateUtilityClass(`MuiTypography`,e)}var typographyClasses=generateUtilityClasses(`MuiTypography`,[`root`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`subtitle1`,`subtitle2`,`body1`,`body2`,`inherit`,`button`,`caption`,`overline`,`alignLeft`,`alignRight`,`alignCenter`,`alignJustify`,`noWrap`,`gutterBottom`,`paragraph`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$54=[`align`,`className`,`component`,`gutterBottom`,`noWrap`,`paragraph`,`variant`,`variantMapping`],useUtilityClasses$48=e=>{let{align:t,gutterBottom:n,noWrap:a,paragraph:o,variant:s,classes:l}=e;return composeClasses({root:[`root`,s,e.align!==`inherit`&&`align${capitalize_default(t)}`,n&&`gutterBottom`,a&&`noWrap`,o&&`paragraph`]},getTypographyUtilityClass,l)},TypographyRoot=styled$1(`span`,{name:`MuiTypography`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!==`inherit`&&t[`align${capitalize_default(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(({theme:e,ownerState:t})=>_extends$3({margin:0},t.variant===`inherit`&&{font:`inherit`},t.variant!==`inherit`&&e.typography[t.variant],t.align!==`inherit`&&{textAlign:t.align},t.noWrap&&{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},t.gutterBottom&&{marginBottom:`0.35em`},t.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,h5:`h5`,h6:`h6`,subtitle1:`h6`,subtitle2:`h6`,body1:`p`,body2:`p`,inherit:`p`},colorTransformations={primary:`primary.main`,textPrimary:`text.primary`,secondary:`secondary.main`,textSecondary:`text.secondary`,error:`error.main`},transformDeprecatedColors=e=>colorTransformations[e]||e,Typography=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTypography`}),a=transformDeprecatedColors(n.color),o=extendSxProp(_extends$3({},n,{color:a})),{align:s=`inherit`,className:l,component:u,gutterBottom:d=!1,noWrap:f=!1,paragraph:m=!1,variant:h=`body1`,variantMapping:v=defaultVariantMapping}=o,y=_objectWithoutPropertiesLoose$3(o,_excluded$54),b=_extends$3({},o,{align:s,color:a,className:l,component:u,gutterBottom:d,noWrap:f,paragraph:m,variant:h,variantMapping:v}),x=u||(m?`p`:v[h]||defaultVariantMapping[h])||`span`,S=useUtilityClasses$48(b);return(0,import_jsx_runtime.jsx)(TypographyRoot,_extends$3({as:x,ref:t,ownerState:b,className:clsx$1(S.root,l)},y))});init_createSvgIcon();var CheckCircle_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z`}),`CheckCircle`);init_createSvgIcon();var Warning_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z`}),`Warning`);init_generateUtilityClasses(),init_generateUtilityClass();function getStepIconUtilityClass(e){return generateUtilityClass(`MuiStepIcon`,e)}var stepIconClasses=generateUtilityClasses(`MuiStepIcon`,[`root`,`active`,`completed`,`error`,`text`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_SvgIcon();var _circle,_excluded$53=[`active`,`className`,`completed`,`error`,`icon`],useUtilityClasses$47=e=>{let{classes:t,active:n,completed:a,error:o}=e;return composeClasses({root:[`root`,n&&`active`,a&&`completed`,o&&`error`],text:[`text`]},getStepIconUtilityClass,t)},StepIconRoot=styled$1(SvgIcon,{name:`MuiStepIcon`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>({display:`block`,transition:e.transitions.create(`color`,{duration:e.transitions.duration.shortest}),color:(e.vars||e).palette.text.disabled,[`&.${stepIconClasses.completed}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.active}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.error}`]:{color:(e.vars||e).palette.error.main}})),StepIconText=styled$1(`text`,{name:`MuiStepIcon`,slot:`Text`,overridesResolver:(e,t)=>t.text})(({theme:e})=>({fill:(e.vars||e).palette.primary.contrastText,fontSize:e.typography.caption.fontSize,fontFamily:e.typography.fontFamily})),StepIcon=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiStepIcon`}),{active:a=!1,className:o,completed:s=!1,error:l=!1,icon:u}=n,d=_objectWithoutPropertiesLoose$3(n,_excluded$53),f=_extends$3({},n,{active:a,completed:s,error:l}),m=useUtilityClasses$47(f);if(typeof u==`number`||typeof u==`string`){let e=clsx$1(o,m.root);return l?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:Warning_default,className:e,ref:t,ownerState:f},d)):s?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:CheckCircle_default,className:e,ref:t,ownerState:f},d)):(0,import_jsx_runtime.jsxs)(StepIconRoot,_extends$3({className:e,ref:t,ownerState:f},d,{children:[_circle||=(0,import_jsx_runtime.jsx)(`circle`,{cx:`12`,cy:`12`,r:`12`}),(0,import_jsx_runtime.jsx)(StepIconText,{className:m.text,x:`12`,y:`12`,textAnchor:`middle`,dominantBaseline:`central`,ownerState:f,children:u})]}))}return u}),require_FileSaver_min=__commonJSMin(((e,t)=>{(function(t,n){typeof define==`function`&&define.amd?define([],n):e===void 0?(n(),t.FileSaver={exports:{}}.exports):n()})(e,function(){function e(e,t){return t===void 0?t={autoBom:!1}:typeof t!=`object`&&(console.warn(`Deprecated: Expected third argument to be a object`),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function n(e,t,n){var a=new XMLHttpRequest;a.open(`GET`,e),a.responseType=`blob`,a.onload=function(){u(a.response,t,n)},a.onerror=function(){console.error(`could not download file`)},a.send()}function a(e){var t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function o(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{var t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var s=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:{}.global==={}?{}:void 0,l=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=s.saveAs||(typeof window!=`object`||window!==s?function(){}:`download`in HTMLAnchorElement.prototype&&!l?function(e,t,l){var u=s.URL||s.webkitURL,d=document.createElement(`a`);t=t||e.name||`download`,d.download=t,d.rel=`noopener`,typeof e==`string`?(d.href=e,d.origin===location.origin?o(d):a(d.href)?n(e,t,l):o(d,d.target=`_blank`)):(d.href=u.createObjectURL(e),setTimeout(function(){u.revokeObjectURL(d.href)},4e4),setTimeout(function(){o(d)},0))}:`msSaveOrOpenBlob`in navigator?function(t,s,l){if(s=s||t.name||`download`,typeof t!=`string`)navigator.msSaveOrOpenBlob(e(t,l),s);else if(a(t))n(t,s,l);else{var u=document.createElement(`a`);u.href=t,u.target=`_blank`,setTimeout(function(){o(u)})}}:function(e,t,a,o){if(o||=open(``,`_blank`),o&&(o.document.title=o.document.body.innerText=`downloading...`),typeof e==`string`)return n(e,t,a);var u=e.type===`application/octet-stream`,d=/constructor/i.test(s.HTMLElement)||s.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||u&&d||l)&&typeof FileReader<`u`){var m=new FileReader;m.onloadend=function(){var e=m.result;e=f?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),o?o.location.href=e:location=e,o=null},m.readAsDataURL(e)}else{var h=s.URL||s.webkitURL,v=h.createObjectURL(e);o?o.location=v:location.href=v,o=null,setTimeout(function(){h.revokeObjectURL(v)},4e4)}});s.saveAs=u.saveAs=u,t!==void 0&&(t.exports=u)})})),require_window=__commonJSMin(((e,t)=>{t.exports=typeof window<`u`?window:{}})),import_shifty=require_shifty(),import_FileSaver_min=require_FileSaver_min(),import_window=__toESM(require_window()),PROGRESS_SAVED_MESSAGE=`Progress saved!`,RAIN_MESSAGE=`It rained in the night!`,STORM_MESSAGE=`There was a storm in the night!`,STORM_DESTROYS_SCARECROWS_MESSAGE=`There was a storm in the night! No scarecrows survived!`,LIGHTNING_ROD_STRUCK_MESSAGE=`There was a storm in the night! Your lightning rod took a hit protecting the field.`,LIGHTNING_ROD_DESTROYED_MESSAGE=`There was a storm in the night! Your lightning rod was destroyed protecting the field.`,LIGHTNING_ROD_REPLANTED_MESSAGE=`There was a storm in the night! Your lightning rod took a lethal hit, but a rainbow-fertilized replacement was instantly planted in its place!`,FARM_PRODUCTS_TOOLTIP_TEXT=`This figure only includes sales of grown crops, crafted items, and animal products.`,COW_SOLD_TOOLTIP_TEXT=`This figure only includes cows you were not the original owner for.`,DATA_DELETED=`Your local game data has been deleted.`,INVALID_DATA_PROVIDED=`Invalid Farmhand data provided.`,UPDATE_AVAILABLE=`A game update is available! Click this message to reload and see what's new.`,SERVER_ERROR=`There was an issue connecting to the server. Please try again in a moment.`,CONNECTING_TO_SERVER=`Connecting...`,DISCONNECTING_FROM_SERVER=`Disconnecting...`,DISCONNECTED_FROM_SERVER=`You are now playing offline.`,REQUESTED_COW_TRADE_UNAVAILABLE=`The requested cow is no longer available.`,UNKNOWN_COW_TRADE_FAILURE=`Something went wrong with your cow trade request. Please try again!`,COW_ALREADY_OWNED=`It looks like you already have this cow!`,OUT_OF_COW_FEED_NOTIFICATION=`You're out of cow feed! Buy some more before your cows get hungry and run away!`,INVENTORY_FULL_NOTIFICATION=`Your inventory is full!`,SHOVELED=`Shoveled plot`,WATERING_CAN_ALT_TEXT=`A watering can for hydrating plants.`,WATERING_CAN_HIDDEN_TEXT=`Select the watering can to water your crops`,SCYTHE_ALT_TEXT=`A scythe for crop harvesting.`,SCYTHE_HIDDEN_TEXT=`Select the scythe to harvest ripened crops`,HOE_ALT_TEXT=`A hoe for removing crops and disposing of them. Also returns replantable items to your inventory.`,HOE_HIDDEN_TEXT=`Select the hoe to clear crops, or replantable field items`,SHOVEL_ALT_TEXT=`A shovel for digging up rocks.`,SHOVEL_HIDDEN_TEXT=`Select the shovel to dig for ore`,AXE_ALT_TEXT=`An axe for chopping down trees.`,AXE_HIDDEN_TEXT=`Select the axe to chop down trees in the forest for wood`,PICKER_POLE_ALT_TEXT=`A picker pole for gathering tree fruit.`,PICKER_POLE_HIDDEN_TEXT=`Select the picker pole to pick ripe fruit from trees in the forest`,TOOL_LEVEL_INFO={SCYTHE:{DEFAULT:`**Basic**: Harvests one crop per plot.`,BRONZE:`**Bronze**: Harvests two crops per plot.`,IRON:`**Iron**: Harvests three crops per plot.`,SILVER:`**Silver**: Harvests four crops per plot.`,GOLD:`**Gold**: Harvests five crops per plot.`},SHOVEL:{DEFAULT:`**Basic**: Has a 30% chance of digging up resources.`,BRONZE:`**Bronze**: Has a 40% chance of digging up resources.`,IRON:`**Iron**: Has a 50% chance of digging up resources.`,SILVER:`**Silver**: Has a 60% chance of digging up resources.`,GOLD:`**Gold**: Has a 70% chance of digging up resources.`},WATERING_CAN:{DEFAULT:`**Basic**: Keeps plots watered for one day.`,BRONZE:`**Bronze**: Keeps plots watered for two days.`,IRON:`**Iron**: Keeps plots watered for three days.`,SILVER:`**Silver**: Keeps plots watered for four days.`,GOLD:`**Gold**: Keeps plots watered for five days.`},HOE:{DEFAULT:`**Basic**: Destroys crops.`,BRONZE:`**Bronze**: 25% chance to retrieve seeds when digging up crops.`,IRON:`**Iron**: 50% chance to retrieve seeds when digging up crops.`,SILVER:`**Silver**: 75% chance to retrieve seeds when digging up crops.`,GOLD:`**Gold**: 100% chance to retrieve seeds when digging up crops.`},AXE:{DEFAULT:`**Basic**: Chops down trees for 1-2 wood.`,BRONZE:`**Bronze**: Chops down trees for 2-4 wood.`,IRON:`**Iron**: Chops down trees for 4-6 wood.`,SILVER:`**Silver**: Chops down trees for 6-8 wood.`,GOLD:`**Gold**: Chops down trees for 8-10 wood.`},PICKER_POLE:{DEFAULT:`**Basic**: Picks 1 fruit per harvest.`,BRONZE:`**Bronze**: Picks 2 fruit per harvest.`,IRON:`**Iron**: Picks 3 fruit per harvest.`,SILVER:`**Silver**: Picks 4 fruit per harvest.`,GOLD:`**Gold**: Picks 5 fruit per harvest.`}},FORGE_AVAILABLE_NOTIFICATION=`**The Forge** is now available in the Workshop!`,RECYCLING_AVAILABLE_NOTIFICATION=`**Recycling** is now available in the Workshop!`,FOREST_AVAILABLE_NOTIFICATION=`The **Forest** is now available!`,WOOD_CHIPPER_AVAILABLE_NOTIFICATION=`**Wood Chipper** recipes are now available in the Workshop!`,COW_COLOR_NAMES={[cowColors.BLUE]:`Blue`,[cowColors.BROWN]:`Brown`,[cowColors.GREEN]:`Green`,[cowColors.ORANGE]:`Orange`,[cowColors.PURPLE]:`Purple`,[cowColors.RAINBOW]:`Rainbow`,[cowColors.WHITE]:`White`,[cowColors.YELLOW]:`Yellow`},SHOVEL_UNLOCKED=`You've unlocked a new tool for the field, The **Shovel**!`,require_src=__commonJSMin(((e,t)=>{function n(e,t){var n=t&&t.cache?t.cache:v,a=t&&t.serializer?t.serializer:m;return(t&&t.strategy?t.strategy:u)(e,{cache:n,serializer:a})}function a(e){return e==null||typeof e==`number`||typeof e==`boolean`}function o(e,t,n,o){var s=a(o)?o:n(o),l=t.get(s);return l===void 0&&(l=e.call(this,o),t.set(s,l)),l}function s(e,t,n){var a=Array.prototype.slice.call(arguments,3),o=n(a),s=t.get(o);return s===void 0&&(s=e.apply(this,a),t.set(o,s)),s}function l(e,t,n,a,o){return n.bind(t,e,a,o)}function u(e,t){var n=e.length===1?o:s;return l(e,this,n,t.cache.create(),t.serializer)}function d(e,t){var n=s;return l(e,this,n,t.cache.create(),t.serializer)}function f(e,t){var n=o;return l(e,this,n,t.cache.create(),t.serializer)}function m(){return JSON.stringify(arguments)}function h(){this.cache=Object.create(null)}h.prototype.has=function(e){return e in this.cache},h.prototype.get=function(e){return this.cache[e]},h.prototype.set=function(e,t){this.cache[e]=t};var v={create:function(){return new h}};t.exports=n,t.exports.strategies={variadic:d,monadic:f}})),import_src=__toESM(require_src()),MemoizeCache=class{cache={};cacheSize;constructor({cacheSize:e=10}={}){this.cacheSize=e}has(e){return e in this.cache}get(e){return this.cache[e]}set(e,t){Object.keys(this.cache).length>this.cacheSize&&(this.cache={}),this.cache[e]=t}},memoize=(e,t={})=>(0,import_src.default)(e,{cache:{create:()=>new MemoizeCache(t)},...t}),getCropLifecycleDuration=memoize(({cropTimeline:e})=>e.reduce((e,t)=>e+t,0)),{freeze:freeze$9}=Object,crop=({cropTimeline:e=[],growsInto:t,tier:n=1,isSeed:a=!!t,cropLifecycleDuration:o=getCropLifecycleDuration({cropTimeline:e}),id:s=``,name:l=``,...u})=>freeze$9({id:s,name:l,cropTimeline:e,doesPriceFluctuate:!0,tier:n,type:itemType.CROP,value:10+o*n*(a?1:3),...a&&{enablesFieldMode:fieldMode.PLANT,growsInto:t,isPlantableCrop:!0},...u}),fromSeed=({cropTimeline:e,cropType:t,growsInto:n,tier:a=1,highDemandSeasons:o,lowDemandSeasons:s},{variantIdx:l=0,canBeFermented:u=!1}={})=>({id:(Array.isArray(n)?n:[n])[l]||``,cropTimeline:e||[],cropType:t,doesPriceFluctuate:!0,tier:a,type:itemType.CROP,highDemandSeasons:o,lowDemandSeasons:s,...u&&e&&{daysToFerment:getCropLifecycleDuration({cropTimeline:e})*a}}),cropVariety=({imageId:e,cropFamily:t,variety:n,...a})=>({imageId:e,cropFamily:t,variety:n,...crop({...a})}),isGrape=e=>`cropFamily`in e&&e.cropFamily===cropFamily.GRAPE,grape=e=>({...e,...cropVariety({...e,cropFamily:cropFamily.GRAPE})}),grapeSeed=crop({cropType:cropType.GRAPE,cropTimeline:[3,4],growsInto:[`grape-chardonnay`,`grape-sauvignon-blanc`,`grape-cabernet-sauvignon`,`grape-tempranillo`,`grape-nebbiolo`],highDemandSeasons:[season.SPRING,season.FALL],id:`grape-seed`,lowDemandSeasons:[season.WINTER],name:`Grape Seed`,tier:7}),grapeVarietyNameMap={[grapeVariety.CHARDONNAY]:`Chardonnay`,[grapeVariety.SAUVIGNON_BLANC]:`Sauvignon Blanc`,[grapeVariety.CABERNET_SAUVIGNON]:`Cabernet Sauvignon`,[grapeVariety.TEMPRANILLO]:`Tempranillo`,[grapeVariety.NEBBIOLO]:`Nebbiolo`},wineVarietyValueMap={[grapeVariety.CHARDONNAY]:1,[grapeVariety.SAUVIGNON_BLANC]:8,[grapeVariety.CABERNET_SAUVIGNON]:3,[grapeVariety.TEMPRANILLO]:5,[grapeVariety.NEBBIOLO]:10},grapeChardonnay=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-chardonnay`)}),name:`Chardonnay Grape`,imageId:`grape-green`,variety:grapeVariety.CHARDONNAY,wineId:`wine-chardonnay`}),grapeSauvignonBlanc=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-sauvignon-blanc`)}),name:`Sauvignon Blanc Grape`,imageId:`grape-green`,variety:grapeVariety.SAUVIGNON_BLANC,wineId:`wine-sauvignon-blanc`}),grapeCabernetSauvignon=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-cabernet-sauvignon`)}),name:`Cabernet Sauvignon Grape`,imageId:`grape-purple`,variety:grapeVariety.CABERNET_SAUVIGNON,wineId:`wine-cabernet-sauvignon`}),grapeTempranillo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-tempranillo`)}),name:`Tempranillo Grape`,imageId:`grape-purple`,variety:grapeVariety.TEMPRANILLO,wineId:`wine-tempranillo`}),grapeNebbiolo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-nebbiolo`)}),name:`Nebbiolo Grape`,imageId:`grape-purple`,variety:grapeVariety.NEBBIOLO,wineId:`wine-nebbiolo`}),grapeVarietyToGrapeItemMap={[grapeVariety.CHARDONNAY]:grapeChardonnay,[grapeVariety.SAUVIGNON_BLANC]:grapeSauvignonBlanc,[grapeVariety.CABERNET_SAUVIGNON]:grapeCabernetSauvignon,[grapeVariety.TEMPRANILLO]:grapeTempranillo,[grapeVariety.NEBBIOLO]:grapeNebbiolo},getYeastRequiredForWine=e=>wineVarietyValueMap[e]*5,asparagusSeed=crop({cropType:cropType.ASPARAGUS,cropTimeline:[4,2,2,1],growsInto:`asparagus`,highDemandSeasons:[season.SUMMER],id:`asparagus-seed`,lowDemandSeasons:[season.WINTER],name:`Asparagus Seed`,tier:4}),asparagus=crop({...fromSeed(asparagusSeed,{canBeFermented:!0}),name:`Asparagus`}),carrotSeed=crop({cropType:cropType.CARROT,cropTimeline:[2,1,1,1],growsInto:`carrot`,highDemandSeasons:[season.SPRING],id:`carrot-seed`,name:`Carrot Seed`,tier:1}),carrot=crop({...fromSeed(carrotSeed,{canBeFermented:!0}),name:`Carrot`}),cornSeed=crop({cropType:cropType.CORN,cropTimeline:[3,1,1,1,2,2],growsInto:`corn`,highDemandSeasons:[season.SUMMER,season.FALL],id:`corn-seed`,lowDemandSeasons:[season.SPRING,season.WINTER],name:`Corn Kernels`,tier:2}),corn=crop({...fromSeed(cornSeed,{canBeFermented:!0}),name:`Corn`}),garlicSeed=crop({cropType:cropType.GARLIC,cropTimeline:[2,1,1,1],growsInto:`garlic`,highDemandSeasons:[season.FALL,season.WINTER],id:`garlic-seed`,lowDemandSeasons:[season.SPRING],name:`Garlic Bulb`,tier:5}),garlic=crop({...fromSeed(garlicSeed,{canBeFermented:!0}),name:`Garlic`}),jalapenoSeed=crop({cropType:cropType.JALAPENO,cropTimeline:[2,1,1,1],growsInto:`jalapeno`,highDemandSeasons:[season.SPRING,season.SUMMER],id:`jalapeno-seed`,lowDemandSeasons:[season.FALL,season.WINTER],name:`Jalapeño Seed`,tier:4}),jalapeno=crop({...fromSeed(jalapenoSeed,{canBeFermented:!0}),name:`Jalapeño`}),oliveSeed=crop({cropType:cropType.OLIVE,cropTimeline:[3,6],growsInto:`olive`,highDemandSeasons:[season.WINTER],id:`olive-seed`,lowDemandSeasons:[season.FALL],name:`Olive Seed`,tier:6}),olive=crop({...fromSeed(oliveSeed,{canBeFermented:!0}),name:`Olive`}),onionSeed=crop({cropType:cropType.ONION,cropTimeline:[3,1,2,1],growsInto:`onion`,id:`onion-seed`,name:`Onion Seeds`,tier:2}),onion=crop({...fromSeed(onionSeed,{canBeFermented:!0}),name:`Onion`}),peaSeed=crop({cropType:cropType.PEA,cropTimeline:[2,3],growsInto:`pea`,highDemandSeasons:[season.SPRING],id:`pea-seed`,lowDemandSeasons:[season.WINTER],name:`Pea Seed`,tier:5}),pea=crop({...fromSeed(peaSeed,{canBeFermented:!0}),name:`Pea`}),potatoSeed=crop({cropType:cropType.POTATO,cropTimeline:[2,1,1,1],growsInto:`potato`,highDemandSeasons:[season.FALL,season.WINTER],id:`potato-seed`,lowDemandSeasons:[season.SPRING,season.SUMMER],name:`Potato Seeds`,tier:2}),potato=crop({...fromSeed(potatoSeed,{canBeFermented:!0}),name:`Potato`}),pumpkinSeed=crop({cropType:cropType.PUMPKIN,cropTimeline:[3,1,1,1,1,1],growsInto:`pumpkin`,highDemandSeasons:[season.FALL],id:`pumpkin-seed`,lowDemandSeasons:[season.SPRING],name:`Pumpkin Seed`,tier:1}),pumpkin=crop({...fromSeed(pumpkinSeed,{canBeFermented:!0}),name:`Pumpkin`}),soybeanSeed=crop({cropType:cropType.SOYBEAN,cropTimeline:[2,2],growsInto:`soybean`,id:`soybean-seed`,name:`Soybean Seeds`,tier:3}),soybean=crop({...fromSeed(soybeanSeed,{canBeFermented:!0}),name:`Soybean`}),spinachSeed=crop({cropType:cropType.SPINACH,cropTimeline:[2,4],growsInto:`spinach`,highDemandSeasons:[season.SPRING,season.SUMMER],id:`spinach-seed`,lowDemandSeasons:[season.WINTER],name:`Spinach Seed`,tier:1}),spinach=crop({...fromSeed(spinachSeed,{canBeFermented:!0}),name:`Spinach`}),sunflowerSeed=crop({cropType:cropType.SUNFLOWER,cropTimeline:[1,1,1,1,1,1],growsInto:`sunflower`,highDemandSeasons:[season.SUMMER],id:`sunflower-seed`,lowDemandSeasons:[season.WINTER],name:`Sunflower Seed`,tier:6}),sunflower=crop({...fromSeed(sunflowerSeed,{canBeFermented:!0}),name:`Sunflower`}),strawberrySeed=crop({cropType:cropType.STRAWBERRY,cropTimeline:[6,2],growsInto:`strawberry`,highDemandSeasons:[season.SUMMER],id:`strawberry-seed`,lowDemandSeasons:[season.WINTER],name:`Strawberry Seed`,tier:5}),strawberry=crop({...fromSeed(strawberrySeed),name:`Strawberry`}),sugarcaneSeed=crop({cropType:cropType.SUGARCANE,cropTimeline:[2,2,3],growsInto:`sugarcane`,id:`sugarcane-seed`,name:`Sugarcane Seed`,tier:7}),sugarcane=crop({...fromSeed(sugarcaneSeed),name:`Sugarcane`}),sweetPotatoSeed=crop({cropType:cropType.SWEET_POTATO,cropTimeline:[2,1,1,2,2],growsInto:`sweet-potato`,highDemandSeasons:[season.FALL,season.WINTER],id:`sweet-potato-seed`,lowDemandSeasons:[season.SPRING],name:`Sweet Potato Slip`,tier:6}),sweetPotato=crop({...fromSeed(sweetPotatoSeed,{canBeFermented:!0}),name:`Sweet Potato`}),tomatoSeed=crop({cropType:cropType.TOMATO,cropTimeline:[2,1,1,1,2,2,2],growsInto:`tomato`,highDemandSeasons:[season.SPRING,season.SUMMER],id:`tomato-seed`,lowDemandSeasons:[season.WINTER],name:`Tomato Seeds`,tier:3}),tomato=crop({...fromSeed(tomatoSeed,{canBeFermented:!0}),name:`Tomato`}),watermelonSeed=crop({cropType:cropType.WATERMELON,cropTimeline:[2,10],growsInto:`watermelon`,highDemandSeasons:[season.SUMMER],id:`watermelon-seed`,lowDemandSeasons:[season.FALL,season.WINTER],name:`Watermelon Seed`,tier:4}),watermelon=crop({...fromSeed(watermelonSeed),name:`Watermelon`}),wheatSeed=crop({cropType:cropType.WHEAT,cropTimeline:[1,1],growsInto:`wheat`,id:`wheat-seed`,name:`Wheat Seeds`,tier:3}),wheat=crop({...fromSeed(wheatSeed),name:`Wheat`}),{freeze:freeze$8}=Object,getFruitLifecycleDuration=e=>e.reduce((e,t)=>e+t,0),SAPLING_FRUIT_CYCLES_TO_BREAK_EVEN=4,tree=({treeTimeline:e=[],fruitTimeline:t=[],growsInto:n,tier:a=1,isSeed:o=!!n,id:s=``,name:l=``,...u})=>{let d=10+getFruitLifecycleDuration(t)*a*3;return freeze$8({id:s,name:l,treeTimeline:e,fruitTimeline:t,doesPriceFluctuate:!0,tier:a,type:itemType.TREE,value:o?d*SAPLING_FRUIT_CYCLES_TO_BREAK_EVEN:d,...o&&{growsInto:n,isPlantableTree:!0},...u})},fromSapling=({treeTimeline:e,fruitTimeline:t,treeType:n,growsInto:a,tier:o=1,lifespan:s},{variantIdx:l=0}={})=>({id:(Array.isArray(a)?a:[a])[l]||``,treeTimeline:e||[],fruitTimeline:t||[],treeType:n,doesPriceFluctuate:!0,tier:o,type:itemType.TREE,lifespan:s}),appleSapling=tree({treeType:treeType.APPLE,treeTimeline:[5,5,5,5,5],lifespan:200,fruitTimeline:[2,2,2],growsInto:`apple`,id:`apple-sapling`,name:`Apple Sapling`,tier:2}),apple=tree({...fromSapling(appleSapling),name:`Apple`}),bananaSapling=tree({treeType:treeType.BANANA,treeTimeline:[4,4,4,4,4],lifespan:200,fruitTimeline:[3,3,3,3],growsInto:`banana`,id:`banana-sapling`,name:`Banana Sapling`,tier:3}),banana=tree({...fromSapling(bananaSapling),name:`Banana`}),{freeze:freeze$7}=Object,bronzeOre=freeze$7({description:`A piece of bronze ore.`,doesPriceFluctuate:!0,id:`bronze-ore`,name:`Bronze Ore`,type:itemType.ORE,value:25,spawnChance:BRONZE_SPAWN_CHANCE}),{freeze:freeze$6}=Object,coal$1=freeze$6({description:`A piece of coal.`,doesPriceFluctuate:!1,id:`coal`,name:`Coal`,type:itemType.FUEL,spawnChance:COAL_SPAWN_CHANCE,value:2}),{freeze:freeze$5}=Object,goldOre=freeze$5({description:`A piece of gold ore.`,doesPriceFluctuate:!0,id:`gold-ore`,name:`Gold Ore`,type:itemType.ORE,value:500,spawnChance:GOLD_SPAWN_CHANCE}),{freeze:freeze$4}=Object,ironOre=freeze$4({description:`A piece of iron ore.`,doesPriceFluctuate:!0,id:`iron-ore`,name:`Iron Ore`,type:itemType.ORE,value:40,spawnChance:IRON_SPAWN_CHANCE}),{freeze:freeze$3}=Object,silverOre=freeze$3({description:`A piece of silver ore.`,doesPriceFluctuate:!0,id:`silver-ore`,name:`Silver Ore`,type:itemType.ORE,value:100,spawnChance:SILVER_SPAWN_CHANCE}),{freeze:freeze$2}=Object,stone=freeze$2({description:`A piece of rock.`,doesPriceFluctuate:!1,id:`stone`,name:`Stone`,spawnChance:STONE_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze:freeze$1}=Object,saltRock=freeze$1({description:`A large chunk of salt.`,doesPriceFluctuate:!0,id:`salt-rock`,name:`Salt Rock`,spawnChance:SALT_ROCK_SPAWN_CHANCE,type:itemType.STONE,value:10}),items_exports=__exportAll({apple:()=>apple,appleSapling:()=>appleSapling,asparagus:()=>asparagus,asparagusSeed:()=>asparagusSeed,banana:()=>banana,bananaSapling:()=>bananaSapling,bronzeOre:()=>bronzeOre,carrot:()=>carrot,carrotSeed:()=>carrotSeed,chocolateMilk:()=>chocolateMilk,coal:()=>coal$1,corn:()=>corn,cornSeed:()=>cornSeed,cowFeed:()=>cowFeed$1,garlic:()=>garlic,garlicSeed:()=>garlicSeed,goldOre:()=>goldOre,grapeCabernetSauvignon:()=>grapeCabernetSauvignon,grapeChardonnay:()=>grapeChardonnay,grapeNebbiolo:()=>grapeNebbiolo,grapeSauvignonBlanc:()=>grapeSauvignonBlanc,grapeSeed:()=>grapeSeed,grapeTempranillo:()=>grapeTempranillo,huggingMachine:()=>huggingMachine,ironOre:()=>ironOre,jalapeno:()=>jalapeno,jalapenoSeed:()=>jalapenoSeed,milk1:()=>milk1,milk2:()=>milk2,milk3:()=>milk3,olive:()=>olive,oliveSeed:()=>oliveSeed,onion:()=>onion,onionSeed:()=>onionSeed,pea:()=>pea,peaSeed:()=>peaSeed,potato:()=>potato,potatoSeed:()=>potatoSeed,pumpkin:()=>pumpkin,pumpkinSeed:()=>pumpkinSeed,rainbowFertilizer:()=>rainbowFertilizer,rainbowMilk1:()=>rainbowMilk1,rainbowMilk2:()=>rainbowMilk2,rainbowMilk3:()=>rainbowMilk3,saltRock:()=>saltRock,scarecrow:()=>scarecrow,silverOre:()=>silverOre,soybean:()=>soybean,soybeanSeed:()=>soybeanSeed,spinach:()=>spinach,spinachSeed:()=>spinachSeed,sprinkler:()=>sprinkler,stone:()=>stone,strawberry:()=>strawberry,strawberrySeed:()=>strawberrySeed,sugarcane:()=>sugarcane,sugarcaneSeed:()=>sugarcaneSeed,sunflower:()=>sunflower,sunflowerSeed:()=>sunflowerSeed,sweetPotato:()=>sweetPotato,sweetPotatoSeed:()=>sweetPotatoSeed,tomato:()=>tomato,tomatoSeed:()=>tomatoSeed,watermelon:()=>watermelon,watermelonSeed:()=>watermelonSeed,weed:()=>weed,wheat:()=>wheat,wheatSeed:()=>wheatSeed,wood:()=>wood}),{freeze}=Object,{COW_FEED,FERTILIZER,HUGGING_MACHINE,MILK,SCARECROW,SPRINKLER,WEED:WEED$1,WOOD}=itemType,weed=freeze({id:`weed`,name:`Weed`,value:.1,doesPriceFluctuate:!1,type:WEED$1}),wood=freeze({description:`A sturdy piece of wood, chopped from a tree.`,doesPriceFluctuate:!1,id:`wood`,name:`Wood`,type:WOOD,value:10}),rainbowFertilizer=freeze({description:`Helps crops grow a little faster and automatically replants them upon harvesting. Consumes seeds upon replanting and disappears if none are available. Also works for Scarecrows.`,enablesFieldMode:fieldMode.FERTILIZE,id:`rainbow-fertilizer`,name:`Rainbow Fertilizer`,type:FERTILIZER,value:15}),sprinkler=freeze({description:`Automatically waters adjacent plants every day.`,enablesFieldMode:fieldMode.SET_SPRINKLER,hoveredPlotRangeSize:1,id:`sprinkler`,isReplantable:!0,name:`Sprinkler`,type:SPRINKLER,value:120}),scarecrow=freeze({description:`Prevents crows from eating your crops. One scarecrow covers an entire field, but they are afraid of storms.`,enablesFieldMode:fieldMode.SET_SCARECROW,hoveredPlotRangeSize:2**53-1,id:`scarecrow`,isReplantable:!0,name:`Scarecrow`,type:SCARECROW,value:160}),cowFeed$1=freeze({id:COW_FEED_ITEM_ID,description:`Each cow automatically consumes one unit of Cow Feed per day. Fed cows gain and maintain weight.`,name:`Cow Feed`,type:COW_FEED,value:5}),huggingMachine=freeze({id:HUGGING_MACHINE_ITEM_ID,description:`Automatically hugs one cow three times every day.`,name:`Hugging Machine`,type:HUGGING_MACHINE,value:500}),milk1=freeze({id:`milk-1`,name:`Grade C Milk`,type:MILK,value:40}),milk2=freeze({id:`milk-2`,name:`Grade B Milk`,type:MILK,value:80}),milk3=freeze({id:`milk-3`,name:`Grade A Milk`,type:MILK,value:120}),rainbowMilk1=freeze({id:`rainbow-milk-1`,name:`Grade C Rainbow Milk`,type:MILK,value:60}),rainbowMilk2=freeze({id:`rainbow-milk-2`,name:`Grade B Rainbow Milk`,type:MILK,value:120}),rainbowMilk3=freeze({id:`rainbow-milk-3`,name:`Grade A Rainbow Milk`,type:MILK,value:180}),chocolateMilk=freeze({id:`chocolate-milk`,name:`Chocolate Milk`,type:MILK,value:80}),itemsMap$2={...Object.keys(items_exports).reduce((e,t)=>{let n=items_exports[t];return e[n.id]=n,e},{})},recipes_exports=__exportAll({appleJuice:()=>appleJuice,applePie:()=>applePie,bananaBread:()=>bananaBread,bananaCreamPie:()=>bananaCreamPie,basicLightningRod:()=>basicLightningRod,bread:()=>bread,bronzeIngot:()=>bronzeIngot$1,burger:()=>burger,butter:()=>butter,carrotSoup:()=>carrotSoup,cheese:()=>cheese,chicknPotPie:()=>chicknPotPie,chocolate:()=>chocolate,chocolateSoyMilk:()=>chocolateSoyMilk,compost:()=>compost,fertilizer:()=>fertilizer,flour:()=>flour,frenchOnionSoup:()=>frenchOnionSoup,friedTofu:()=>friedTofu,garlicBread:()=>garlicBread,garlicFries:()=>garlicFries,goldIngot:()=>goldIngot$1,grapeSyrup:()=>grapeSyrup,hotSauce:()=>hotSauce,ironIngot:()=>ironIngot$1,jackolantern:()=>jackolantern,mulch:()=>mulch,oliveOil:()=>oliveOil,onionRings:()=>onionRings,popcorn:()=>popcorn,pumpkinPie:()=>pumpkinPie,rainbowCheese:()=>rainbowCheese,rainbowMulch:()=>rainbowMulch,salsa:()=>salsa,salt:()=>salt,silverIngot:()=>silverIngot$1,soyMilk:()=>soyMilk,spaghetti:()=>spaghetti,spicyAppleJam:()=>spicyAppleJam,spicyCheese:()=>spicyCheese,spicyPickledGarlic:()=>spicyPickledGarlic,strawberryJam:()=>strawberryJam,sugar:()=>sugar,summerSalad:()=>summerSalad,sunButter:()=>sunButter,superiorLightningRod:()=>superiorLightningRod,sweetPotatoFries:()=>sweetPotatoFries,sweetPotatoPie:()=>sweetPotatoPie,tofu:()=>tofu,ultimateLightningRod:()=>ultimateLightningRod,vegetableOil:()=>vegetableOil,wineCabernetSauvignon:()=>wineCabernetSauvignon,wineChardonnay:()=>wineChardonnay,wineNebbiolo:()=>wineNebbiolo,wineSauvignonBlanc:()=>wineSauvignonBlanc,wineTempranillo:()=>wineTempranillo,woodChips:()=>woodChips,yeast:()=>yeast}),itemsMap$1={...itemsMap$2},convertToRecipe=e=>{let t=Object.freeze({type:itemType.CRAFTED_ITEM,value:Object.keys(e.ingredients).reduce((t,n)=>t+RECIPE_INGREDIENT_VALUE_MULTIPLIER*itemsMap$1[n].value*e.ingredients[n],0),...e});return itemsMap$1[e.id]=t,t},salt=convertToRecipe({id:`salt`,name:`Salt`,ingredients:{[saltRock.id]:1},condition:e=>(e.itemsSold[saltRock.id]||0)>=30,description:`Useful for seasoning food and fermentation.`,recipeType:recipeType.KITCHEN}),flour=convertToRecipe({id:`flour`,name:`Flour`,ingredients:{[wheat.id]:10},condition:e=>(e.itemsSold[wheat.id]||0)>=20,recipeType:recipeType.KITCHEN}),sugar=convertToRecipe({id:`sugar`,name:`Sugar`,ingredients:{[sugarcane.id]:5},condition:e=>(e.itemsSold[sugarcane.id]||0)>=25,recipeType:recipeType.KITCHEN}),yeast=convertToRecipe({id:`yeast`,name:`Yeast`,ingredients:{[flour.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=25,recipeType:recipeType.KITCHEN}),getWineRecipeFromGrape=e=>({...convertToRecipe({id:e.wineId,name:`${grapeVarietyNameMap[e.variety]} Wine`,type:itemType.CRAFTED_ITEM,ingredients:{[e.id]:50,[yeast.id]:getYeastRequiredForWine(e.variety)},recipeType:recipeType.WINE,condition:()=>!1}),variety:e.variety}),bread=convertToRecipe({id:`bread`,name:`Bread`,ingredients:{[flour.id]:10,[yeast.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=30&&(e.itemsSold[yeast.id]||0)>=15,recipeType:recipeType.KITCHEN}),butter=convertToRecipe({id:`butter`,name:`Butter`,ingredients:{[milk3.id]:5},condition:e=>(e.itemsSold[milk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),sunButter=convertToRecipe({id:`sun-butter`,name:`Sun Butter`,ingredients:{[sunflower.id]:25},condition:e=>(e.itemsSold[sunflower.id]||0)>=200,recipeType:recipeType.KITCHEN}),oliveOil=convertToRecipe({id:`olive-oil`,name:`Olive Oil`,ingredients:{[olive.id]:250},condition:e=>(e.itemsSold[olive.id]||0)>=500,recipeType:recipeType.KITCHEN}),cheese=convertToRecipe({id:`cheese`,name:`Cheese`,ingredients:{[milk3.id]:8},condition:e=>(e.itemsSold[milk3.id]||0)>=20,recipeType:recipeType.KITCHEN}),rainbowCheese=convertToRecipe({id:`rainbowCheese`,name:`Rainbow Cheese`,ingredients:{[rainbowMilk3.id]:10},condition:e=>(e.itemsSold[rainbowMilk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),chocolate=convertToRecipe({id:`chocolate`,name:`Chocolate`,ingredients:{[chocolateMilk.id]:10},condition:e=>(e.itemsSold[chocolateMilk.id]||0)>=25,recipeType:recipeType.KITCHEN}),carrotSoup=convertToRecipe({id:`carrot-soup`,name:`Carrot Soup`,ingredients:{[carrot.id]:4},condition:e=>(e.itemsSold[carrot.id]||0)>=10,recipeType:recipeType.KITCHEN}),jackolantern=convertToRecipe({id:`jackolantern`,name:`Jack-o'-lantern`,ingredients:{[pumpkin.id]:1},condition:e=>(e.itemsSold[pumpkin.id]||0)>=50,recipeType:recipeType.KITCHEN}),spaghetti=convertToRecipe({id:`spaghetti`,name:`Spaghetti`,ingredients:{[wheat.id]:10,[tomato.id]:2},condition:e=>(e.itemsSold[wheat.id]||0)>=20&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),frenchOnionSoup=convertToRecipe({id:`french-onion-soup`,name:`French Onion Soup`,ingredients:{[onion.id]:5,[cheese.id]:2,[salt.id]:2},condition:e=>(e.itemsSold[onion.id]||0)>=15&&(e.itemsSold[cheese.id]||0)>=10,recipeType:recipeType.KITCHEN}),burger=convertToRecipe({id:`burger`,name:`Burger`,ingredients:{[bread.id]:1,[cheese.id]:1,[onion.id]:1,[soybean.id]:12,[spinach.id]:1,[tomato.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=5&&(e.itemsSold[cheese.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[soybean.id]||0)>=25&&(e.itemsSold[spinach.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),summerSalad=convertToRecipe({id:`summer-salad`,name:`Summer Salad`,ingredients:{[spinach.id]:6,[corn.id]:1,[carrot.id]:1},condition:e=>(e.itemsSold[spinach.id]||0)>=30&&(e.itemsSold[corn.id]||0)>5&&(e.itemsSold[carrot.id]||0)>5,recipeType:recipeType.KITCHEN}),soyMilk=convertToRecipe({id:`soy-milk`,name:`Soy Milk`,ingredients:{[soybean.id]:20},condition:e=>(e.itemsSold[soybean.id]||0)>=100,recipeType:recipeType.KITCHEN}),chocolateSoyMilk=convertToRecipe({id:`chocolate-soy-milk`,name:`Chocolate Soy Milk`,ingredients:{[soyMilk.id]:1,[chocolate.id]:1},condition:e=>(e.itemsSold[soyMilk.id]||0)>=5&&(e.itemsSold[chocolate.id]||0)>=5,recipeType:recipeType.KITCHEN}),tofu=convertToRecipe({id:`tofu`,name:`Tofu`,ingredients:{[soyMilk.id]:4},condition:e=>(e.itemsSold[soyMilk.id]||0)>=20,recipeType:recipeType.KITCHEN}),chicknPotPie=convertToRecipe({id:`chickn-pot-pie`,name:`Chick'n Pot Pie`,ingredients:{[tofu.id]:6,[pea.id]:10,[carrot.id]:8,[wheat.id]:12,[soyMilk.id]:3},condition:e=>(e.itemsSold[tofu.id]||0)>=30&&(e.itemsSold[pea.id]||0)>=225&&(e.itemsSold[carrot.id]||0)>=300&&(e.itemsSold[wheat.id]||0)>=425&&(e.itemsSold[soyMilk.id]||0)>=15,recipeType:recipeType.KITCHEN,isPie:!0}),hotSauce=convertToRecipe({id:`hot-sauce`,name:`Hot Sauce`,ingredients:{[jalapeno.id]:10,[salt.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=50,recipeType:recipeType.KITCHEN}),salsa=convertToRecipe({id:`salsa`,name:`Salsa`,ingredients:{[jalapeno.id]:1,[onion.id]:1,[tomato.id]:1,[corn.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5&&(e.itemsSold[corn.id]||0)>=5,recipeType:recipeType.KITCHEN}),spicyCheese=convertToRecipe({id:`spicy-cheese`,name:`Spicy Cheese`,ingredients:{[jalapeno.id]:4,[milk3.id]:10},condition:e=>(e.itemsSold[jalapeno.id]||0)>=20&&(e.itemsSold[milk3.id]||0)>=50,recipeType:recipeType.KITCHEN}),vegetableOil=convertToRecipe({id:`vegetable-oil`,name:`Vegetable Oil`,ingredients:{[soybean.id]:350},condition:e=>(e.itemsSold[soybean.id]||0)>=900,recipeType:recipeType.KITCHEN}),friedTofu=convertToRecipe({id:`fried-tofu`,name:`Deep Fried Tofu`,ingredients:{[tofu.id]:1,[vegetableOil.id]:2},condition:e=>(e.itemsSold[tofu.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>=50,recipeType:recipeType.KITCHEN}),spicyPickledGarlic=convertToRecipe({id:`spicy-pickled-garlic`,name:`Spicy Pickled Garlic`,ingredients:{[jalapeno.id]:2,[garlic.id]:5},condition:e=>(e.itemsSold[jalapeno.id]||0)>=12&&(e.itemsSold[garlic.id]||0)>=25,recipeType:recipeType.KITCHEN}),garlicFries=convertToRecipe({id:`garlic-fries`,name:`Garlic Fries`,ingredients:{[potato.id]:5,[garlic.id]:3,[vegetableOil.id]:1,[salt.id]:2},condition:e=>(e.itemsSold[potato.id]||0)>=50&&(e.itemsSold[garlic.id]||0)>=30,recipeType:recipeType.KITCHEN}),garlicBread=convertToRecipe({id:`garlic-bread`,name:`Garlic Bread`,ingredients:{[bread.id]:1,[garlic.id]:5,[oliveOil.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=30&&(e.itemsSold[oliveOil.id]||0)>=20&&(e.itemsSold[garlic.id]||0)>=50,recipeType:recipeType.KITCHEN}),strawberryJam=convertToRecipe({id:`strawberry-jam`,name:`Strawberry Jam`,ingredients:{[strawberry.id]:10},condition:e=>(e.itemsSold[strawberry.id]||0)>=60,recipeType:recipeType.KITCHEN}),spicyAppleJam=convertToRecipe({id:`spicy-apple-jam`,name:`Spicy Apple Jam`,ingredients:{[apple.id]:10,[jalapeno.id]:3},condition:e=>(e.itemsSold[apple.id]||0)>=60&&(e.itemsSold[jalapeno.id]||0)>=15,recipeType:recipeType.KITCHEN}),popcorn=convertToRecipe({id:`popcorn`,name:`Popcorn`,ingredients:{[corn.id]:2,[butter.id]:1},condition:e=>(e.itemsSold[corn.id]||0)>=12&&(e.itemsSold[butter.id]||0)>=6,recipeType:recipeType.KITCHEN}),pumpkinPie=convertToRecipe({id:`pumpkin-pie`,name:`Pumpkin Pie`,ingredients:{[pumpkin.id]:4,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[pumpkin.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN,isPie:!0}),applePie=convertToRecipe({id:`apple-pie`,name:`Apple Pie`,ingredients:{[apple.id]:4,[flour.id]:2,[butter.id]:2},condition:e=>(e.itemsSold[apple.id]||0)>=60&&(e.itemsSold[flour.id]||0)>=15&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN,isPie:!0}),appleJuice=convertToRecipe({id:`apple-juice`,name:`Apple Juice`,ingredients:{[apple.id]:6,[sugar.id]:2},condition:e=>(e.itemsSold[apple.id]||0)>=60&&(e.itemsSold[sugar.id]||0)>=10,recipeType:recipeType.KITCHEN}),grapeSyrup=convertToRecipe({id:`grape-syrup`,name:`Grape Syrup`,ingredients:{[grapeCabernetSauvignon.id]:8},condition:e=>(e.itemsSold[grapeCabernetSauvignon.id]||0)>=25,recipeType:recipeType.KITCHEN}),bananaBread=convertToRecipe({id:`banana-bread`,name:`Banana Bread`,ingredients:{[banana.id]:4,[flour.id]:3,[oliveOil.id]:1},condition:e=>(e.itemsSold[banana.id]||0)>=60&&(e.itemsSold[flour.id]||0)>=20&&(e.itemsSold[oliveOil.id]||0)>=20,recipeType:recipeType.KITCHEN}),bananaCreamPie=convertToRecipe({id:`banana-cream-pie`,name:`Banana Cream Pie`,ingredients:{[banana.id]:4,[flour.id]:2,[butter.id]:2,[sugar.id]:2,[milk3.id]:5},condition:e=>(e.itemsSold[banana.id]||0)>=60&&(e.itemsSold[flour.id]||0)>=15&&(e.itemsSold[butter.id]||0)>=75&&(e.itemsSold[sugar.id]||0)>=10&&(e.itemsSold[milk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),sweetPotatoPie=convertToRecipe({id:`sweet-potato-pie`,name:`Sweet Potato Pie`,ingredients:{[sweetPotato.id]:6,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN,isPie:!0}),sweetPotatoFries=convertToRecipe({id:`sweet-potato-fries`,name:`Sweet Potato Fries`,ingredients:{[sweetPotato.id]:10,[vegetableOil.id]:1,[salt.id]:1},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=100,recipeType:recipeType.KITCHEN}),onionRings=convertToRecipe({id:`onion-rings`,name:`Onion Rings`,ingredients:{[onion.id]:1,[vegetableOil.id]:1,[wheat.id]:5,[soyMilk.id]:1,[salt.id]:3},condition:e=>(e.itemsSold[onion.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>20&&(e.itemsSold[soyMilk.id]||0)>20&&(e.itemsSold[wheat.id]||0)>30,recipeType:recipeType.KITCHEN}),bronzeIngot$1=convertToRecipe({id:`bronze-ingot`,name:`Bronze Ingot`,ingredients:{[bronzeOre.id]:5,[coal$1.id]:5},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[bronzeOre.id]||0)>=50,recipeType:recipeType.FORGE}),ironIngot$1=convertToRecipe({id:`iron-ingot`,name:`Iron Ingot`,ingredients:{[ironOre.id]:5,[coal$1.id]:12},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[ironOre.id]||0)>=50,recipeType:recipeType.FORGE}),silverIngot$1=convertToRecipe({id:`silver-ingot`,name:`Silver Ingot`,ingredients:{[silverOre.id]:5,[coal$1.id]:8},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[silverOre.id]||0)>=50,recipeType:recipeType.FORGE}),goldIngot$1=convertToRecipe({id:`gold-ingot`,name:`Gold Ingot`,ingredients:{[goldOre.id]:5,[coal$1.id]:10},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[goldOre.id]||0)>=50,recipeType:recipeType.FORGE}),basicLightningRod=convertToRecipe({id:`basic-lightning-rod`,name:`Basic Lightning Rod`,type:itemType.LIGHTNING_ROD,description:`Place in the field to protect it from lightning during storms. Can withstand 10 strikes before being destroyed.`,enablesFieldMode:fieldMode.SET_LIGHTNING_ROD,hoveredPlotRangeSize:2**53-1,lightningStrikeCapacity:10,destructionYield:{itemId:ironOre.id,quantity:4},ingredients:{[ironIngot$1.id]:5},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[ironIngot$1.id]||0)>=10,recipeType:recipeType.FORGE}),superiorLightningRod=convertToRecipe({id:`superior-lightning-rod`,name:`Superior Lightning Rod`,type:itemType.LIGHTNING_ROD,description:`Place in the field to protect it from lightning during storms. Can withstand 25 strikes before being destroyed.`,enablesFieldMode:fieldMode.SET_LIGHTNING_ROD,hoveredPlotRangeSize:2**53-1,lightningStrikeCapacity:25,destructionYield:{itemId:silverOre.id,quantity:4},ingredients:{[ironIngot$1.id]:4,[silverIngot$1.id]:3},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[silverIngot$1.id]||0)>=10,recipeType:recipeType.FORGE}),ultimateLightningRod=convertToRecipe({id:`ultimate-lightning-rod`,name:`Ultimate Lightning Rod`,type:itemType.LIGHTNING_ROD,description:`Place in the field to protect it from lightning during storms. Can withstand 100 strikes before being destroyed.`,enablesFieldMode:fieldMode.SET_LIGHTNING_ROD,hoveredPlotRangeSize:2**53-1,lightningStrikeCapacity:100,destructionYield:{itemId:goldOre.id,quantity:4},ingredients:{[ironIngot$1.id]:4,[goldIngot$1.id]:3},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[goldIngot$1.id]||0)>=10,recipeType:recipeType.FORGE}),compost=convertToRecipe({id:`compost`,name:`Compost`,ingredients:{[weed.id]:10},condition:e=>e.purchasedComposter>0&&(e.itemsSold[weed.id]||0)>=100,description:`Can be used to make fertilizer.`,recipeType:recipeType.RECYCLING,type:itemType.CRAFTED_ITEM}),fertilizer=convertToRecipe({id:`fertilizer`,name:`Fertilizer`,ingredients:{[compost.id]:3},condition:e=>e.purchasedComposter>0&&(e.itemsSold[compost.id]||0)>=10,description:`Helps crops grow and mature a little faster.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.RECYCLING,type:itemType.FERTILIZER,value:25}),woodChips=convertToRecipe({id:`wood-chips`,name:`Wood Chips`,ingredients:{[wood.id]:1},condition:e=>e.purchasedWoodChipper>0&&(e.itemsSold[wood.id]||0)>=20,description:`Chipped wood, useful for making mulch.`,recipeType:recipeType.WOOD_CHIPPER,type:itemType.CRAFTED_ITEM}),mulch=convertToRecipe({id:`mulch`,name:`Mulch`,ingredients:{[woodChips.id]:3,[compost.id]:1},condition:e=>e.purchasedWoodChipper>0&&(e.itemsSold[woodChips.id]||0)>=10,description:`Helps trees grow a little faster.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.WOOD_CHIPPER,type:itemType.MULCH,value:50}),rainbowMulch=convertToRecipe({id:`rainbow-mulch`,name:`Rainbow Mulch`,ingredients:{[woodChips.id]:3,[rainbowFertilizer.id]:1},condition:e=>e.purchasedWoodChipper>0&&(e.itemsSold[woodChips.id]||0)>=10&&e.hasProducedRainbowFertilizer,description:`Helps trees grow a little faster and speeds up fruit regrowth too.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.WOOD_CHIPPER,type:itemType.MULCH}),wineChardonnay=getWineRecipeFromGrape({...grapeChardonnay}),wineSauvignonBlanc=getWineRecipeFromGrape({...grapeSauvignonBlanc}),wineCabernetSauvignon=getWineRecipeFromGrape({...grapeCabernetSauvignon}),wineTempranillo=getWineRecipeFromGrape({...grapeTempranillo}),wineNebbiolo=getWineRecipeFromGrape({...grapeNebbiolo}),coalNeededForIngots=(e,t=1)=>{switch(e){case bronzeIngot$1.id:return t*2;case ironIngot$1.id:return Math.round(t*3.5);case silverIngot$1.id:return Math.round(t*2.5);case goldIngot$1.id:return t*3;default:return t}},{bronzeIngot,ironIngot,silverIngot,goldIngot}=recipes_exports,{coal}=items_exports,upgrades={[toolType.HOE]:{[toolLevel.DEFAULT]:{id:`hoe-default`,name:`Basic Hoe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`hoe-bronze`,description:`Gives 25% chance to retrieve seeds when digging up crops`,name:`Bronze Hoe`,ingredients:{[bronzeIngot.id]:8,[coal.id]:coalNeededForIngots(bronzeIngot.id,8)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`hoe-iron`,description:`Gives 50% chance to retrieve seeds when digging up crops`,name:`Iron Hoe`,ingredients:{[ironIngot.id]:8,[coal.id]:coalNeededForIngots(ironIngot.id,8)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`hoe-silver`,description:`Gives 75% chance to retrieve seeds when digging up crops`,name:`Silver Hoe`,ingredients:{[silverIngot.id]:8,[coal.id]:coalNeededForIngots(silverIngot.id,8)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`hoe-gold`,description:`Gives 100% chance to retrieve seeds when digging up crops`,name:`Gold Hoe`,ingredients:{[goldIngot.id]:8,[coal.id]:coalNeededForIngots(goldIngot.id,8)},isMaxLevel:!0}},[toolType.SCYTHE]:{[toolLevel.DEFAULT]:{id:`scythe-default`,name:`Basic Scythe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`scythe-bronze`,description:`Increases crop yield by 1 when harvesting`,name:`Bronze Scythe`,ingredients:{[bronzeIngot.id]:10,[coal.id]:coalNeededForIngots(bronzeIngot.id,10)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`scythe-iron`,description:`Increases crop yield by 2 when harvesting`,name:`Iron Scythe`,ingredients:{[ironIngot.id]:10,[coal.id]:coalNeededForIngots(ironIngot.id,10)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`scythe-silver`,description:`Increases crop yield by 3 when harvesting`,name:`Silver Scythe`,ingredients:{[silverIngot.id]:10,[coal.id]:coalNeededForIngots(silverIngot.id,10)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`scythe-gold`,description:`Increases crop yield by 4 when harvesting`,name:`Gold Scythe`,ingredients:{[goldIngot.id]:10,[coal.id]:coalNeededForIngots(goldIngot.id,10)},isMaxLevel:!0}},[toolType.SHOVEL]:{[toolLevel.DEFAULT]:{id:`shovel-default`,name:`Basic Shovel`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`shovel-bronze`,description:`Increases chance of finding ore`,name:`Bronze Shovel`,ingredients:{[bronzeIngot.id]:15,[coal.id]:coalNeededForIngots(bronzeIngot.id,15)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`shovel-iron`,description:`Increases chance of finding ore`,name:`Iron Shovel`,ingredients:{[ironIngot.id]:15,[coal.id]:coalNeededForIngots(ironIngot.id,15)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`shovel-silver`,description:`Increases chance of finding ore`,name:`Silver Shovel`,ingredients:{[silverIngot.id]:15,[coal.id]:coalNeededForIngots(silverIngot.id,15)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`shovel-gold`,description:`Increases chance of finding ore`,name:`Gold Shovel`,ingredients:{[goldIngot.id]:15,[coal.id]:coalNeededForIngots(goldIngot.id,15)},isMaxLevel:!0}},[toolType.AXE]:{[toolLevel.DEFAULT]:{id:`axe-default`,name:`Basic Axe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`axe-bronze`,description:`Increases wood yield when chopping down trees`,name:`Bronze Axe`,ingredients:{[bronzeIngot.id]:12,[coal.id]:coalNeededForIngots(bronzeIngot.id,12)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`axe-iron`,description:`Increases wood yield when chopping down trees`,name:`Iron Axe`,ingredients:{[ironIngot.id]:12,[coal.id]:coalNeededForIngots(ironIngot.id,12)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`axe-silver`,description:`Increases wood yield when chopping down trees`,name:`Silver Axe`,ingredients:{[silverIngot.id]:12,[coal.id]:coalNeededForIngots(silverIngot.id,12)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`axe-gold`,description:`Increases wood yield when chopping down trees`,name:`Gold Axe`,ingredients:{[goldIngot.id]:12,[coal.id]:coalNeededForIngots(goldIngot.id,12)},isMaxLevel:!0}},[toolType.PICKER_POLE]:{[toolLevel.DEFAULT]:{id:`picker-pole-default`,name:`Basic Picker Pole`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`picker-pole-bronze`,description:`Picks 2 fruit per harvest`,name:`Bronze Picker Pole`,ingredients:{[bronzeIngot.id]:12,[coal.id]:coalNeededForIngots(bronzeIngot.id,12)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`picker-pole-iron`,description:`Picks 3 fruit per harvest`,name:`Iron Picker Pole`,ingredients:{[ironIngot.id]:12,[coal.id]:coalNeededForIngots(ironIngot.id,12)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`picker-pole-silver`,description:`Picks 4 fruit per harvest`,name:`Silver Picker Pole`,ingredients:{[silverIngot.id]:12,[coal.id]:coalNeededForIngots(silverIngot.id,12)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`picker-pole-gold`,description:`Picks 5 fruit per harvest`,name:`Gold Picker Pole`,ingredients:{[goldIngot.id]:12,[coal.id]:coalNeededForIngots(goldIngot.id,12)},isMaxLevel:!0}}};for(let e in upgrades){let t=upgrades[e];for(let n in t)Object.assign(t[n],{toolType:e,value:0,doesPriceFluctuate:!1,type:itemType.TOOL_UPGRADE,level:n})}var{ASPARAGUS,CARROT,CORN,GARLIC,GRAPE,JALAPENO,OLIVE,ONION,PEA,POTATO,PUMPKIN,SOYBEAN,SPINACH,SUNFLOWER,STRAWBERRY,SUGARCANE,SWEET_POTATO,TOMATO,WATERMELON,WHEAT,WEED}=cropType,recipeCategories={[recipeType.KITCHEN]:{},[recipeType.FORGE]:{},[recipeType.FERMENTATION]:{},[recipeType.RECYCLING]:{},[recipeType.WINE]:{},[recipeType.WOOD_CHIPPER]:{}},recipesMap={};for(let e of Object.keys(recipes_exports)){let t=recipes_exports[e];recipeCategories[t.recipeType][t.id]=t,recipesMap[t.id]=t}var upgradesMap={};for(let e of Object.keys(upgrades))for(let t of Object.values(upgrades[e]))upgradesMap[t.id]=t;var itemsMap={...itemsMap$2,...recipesMap,...upgradesMap},fermentableItemsMap=Object.fromEntries(Object.entries(itemsMap).filter(([e])=>`daysToFerment`in itemsMap[e])),cropItemIdToSeedItemMap=Object.entries(itemsMap$2).reduce((e,[t,n])=>{let{growsInto:a}=n;if(a){let n=Array.isArray(a)?a:[a];for(let a of n)e[a]=itemsMap$2[t]}return e},{}),cropTypeToIdMap={[ASPARAGUS]:`asparagus`,[CARROT]:`carrot`,[CORN]:`corn`,[GARLIC]:`garlic`,[GRAPE]:grapeSeed.growsInto,[JALAPENO]:`jalapeno`,[OLIVE]:`olive`,[ONION]:`onion`,[PEA]:`pea`,[POTATO]:`potato`,[PUMPKIN]:`pumpkin`,[SOYBEAN]:`soybean`,[SPINACH]:`spinach`,[STRAWBERRY]:`strawberry`,[SUGARCANE]:`sugarcane`,[SUNFLOWER]:`sunflower`,[SWEET_POTATO]:`sweet-potato`,[TOMATO]:`tomato`,[WATERMELON]:`watermelon`,[WHEAT]:`wheat`,[WEED]:`weed`},{SEED:SEED$6,GROWING:GROWING$3,GROWN:GROWN$14}=cropLifeStage,getLifeStageRange=memoize(e=>{let t=Array(e[0]).fill(SEED$6);return t=t.concat(e.slice(1).reduce((e,t)=>e.concat(Array(t).fill(GROWING$3)),[])),t},{}),{GROWN:GROWN$13}=cropLifeStage,getLifeStageForTimeline=(e,t)=>getLifeStageRange(e)[Math.floor(t)]||GROWN$13,{GROWN:GROWN$12,DEAD:DEAD$3}=treeLifeStage,getTreeLifeStage=e=>{let{itemId:t,daysOld:n=0,daysGrown:a=n}=e,o=itemsMap[t];if(!o)throw Error(`${t} is not a valid item`);let{treeTimeline:s}=o;if(!s)throw Error(`${t} has no treeTimeline`);let l=getLifeStageForTimeline(s,a),u=e.lifespan??o.lifespan;return l!==GROWN$12||u===void 0?l:n>=s.reduce((e,t)=>e+t,0)+u?DEAD$3:GROWN$12},VIEW_QUERY_PARAM_NAME=`view`,splitHash=()=>{let e=import_window.default.location.hash.replace(/^#/,``),t=e.indexOf(`?`);return t===-1?{path:e,query:``}:{path:e.slice(0,t),query:e.slice(t+1)}},writeHashQueryParams=(e,t=`replace`)=>{let{path:n}=splitHash(),a=e.toString(),o=`${n}${a?`?${a}`:``}`,{origin:s,pathname:l,search:u}=import_window.default.location,d=`${s}${l}${u}#${o}`;t===`push`?import_window.default.history.pushState({},``,d):import_window.default.history.replaceState({},``,d)},getHashQueryParams=()=>new URLSearchParams(splitHash().query),setHashQueryParam=(e,t,n=`replace`)=>{let a=getHashQueryParams();a.set(e,t),writeHashQueryParams(a,n)},removeHashQueryParam=(e,t=`replace`)=>{let n=getHashQueryParams();n.delete(e),writeHashQueryParams(n,t)},withCurrentHashQuery=e=>{let t=getHashQueryParams().toString();return t?`${e}?${t}`:e},isPlantedTree=e=>!!(e&&`itemId`in e),moneyTotal=(...e)=>e.reduce((e,t)=>e+=Math.round(t*100),0)/100,assignPersistedKey=(e,t,n)=>{let a=t[n];a!==void 0&&(e[n]=a)},reduceByPersistedKeys=e=>PERSISTED_STATE_KEYS.reduce((t,n)=>(assignPersistedKey(t,e,n),t),{}),isItemAGrownCrop=e=>e.type===itemType.CROP&&!e.growsInto,isItemAGrownFruit=e=>e.type===itemType.TREE&&!e.isPlantableTree,FARM_PRODUCT_TYPES=[itemType.CRAFTED_ITEM,itemType.FUEL,itemType.MILK,itemType.ORE,itemType.STONE],isItemAFarmProduct=e=>!!(isItemAGrownCrop(e)||isItemAGrownFruit(e)||FARM_PRODUCT_TYPES.includes(e.type)),farmProductsSold=memoize(e=>Object.entries(e).reduce((e,[t,n])=>e+(isItemAFarmProduct(itemsMap[t])&&n||0),0)),levels=[];levels[1]={unlocksShopItem:carrotSeed.id},levels[2]={unlocksShopItem:spinachSeed.id},levels[3]={unlocksShopItem:fertilizer.id},levels[4]={unlocksShopItem:pumpkinSeed.id},levels[5]={unlocksShopItem:sprinkler.id},levels[6]={unlocksTool:[toolType.SHOVEL]},levels[8]={increasesSprinklerRange:!0},levels[10]={unlocksShopItem:cornSeed.id},levels[12]={increasesSprinklerRange:!0},levels[14]={unlocksShopItem:potatoSeed.id},levels[15]={unlocksStageFocusType:stageFocusType.FOREST,unlocksShopItem:appleSapling.id,unlocksTool:[toolType.AXE,toolType.PICKER_POLE]},levels[16]={unlocksShopItem:onionSeed.id},levels[17]={unlocksShopItem:mulch.id},levels[18]={unlocksShopItem:soybeanSeed.id},levels[20]={unlocksShopItem:wheatSeed.id},levels[21]={unlocksShopItem:bananaSapling.id},levels[22]={unlocksShopItem:tomatoSeed.id},levels[24]={unlocksShopItem:asparagusSeed.id},levels[26]={unlocksShopItem:jalapenoSeed.id},levels[28]={unlocksShopItem:watermelonSeed.id},levels[30]={unlocksShopItem:peaSeed.id},levels[32]={unlocksShopItem:strawberrySeed.id},levels[34]={unlocksShopItem:garlicSeed.id},levels[36]={unlocksShopItem:sweetPotatoSeed.id},levels[38]={unlocksShopItem:oliveSeed.id},levels[40]={unlocksShopItem:sunflowerSeed.id},levels[42]={unlocksShopItem:grapeSeed.id},levels[44]={unlocksShopItem:sugarcaneSeed.id};for(let e=0;e<levels.length;e++)levels[e]={id:e,...levels[e]};Object.freeze(levels);var unlockableItems=levels.reduce((e,{id:t,unlocksShopItem:n})=>(n&&t!==void 0&&(e[n]=t),e),{}),itemUnlockLevels=Object.entries(unlockableItems).reduce((e,[t,n])=>(e[String(n)]=t,e),{}),getLevelEntitlements=memoize(e=>{let t={sprinklerRange:1,items:{},tools:{},stageFocusType:{}};return levels.find(({unlocksShopItem:n,unlocksStageFocusType:a,unlocksTool:o,id:s,increasesSprinklerRange:l})=>{if(l&&t.sprinklerRange++,n&&(t.items[n]=!0),o)for(let e of o)t.tools[e]=!0;return a&&(t.stageFocusType[a]=!0),s===e}),t});function levelAchieved(e=0){return Math.floor(Math.sqrt(e)/10)+1}var transformStateDataForImport=e=>{let t={...e};[`version`].forEach(e=>delete t[e]),t.experience===0&&(t.experience=farmProductsSold(t.itemsSold||{})),t.showHomeScreen===!1&&t.stageFocus===stageFocusType.HOME&&(t={...t,stageFocus:STANDARD_VIEW_LIST[0]});{let{cowId1:e,cowId2:n}=t.cowBreedingPen,a=t.cowInventory.reduce((e,t)=>(e[t.id]=t,e),{});[e,n].some(e=>e&&!(e in a))&&(t.cowBreedingPen={cowId1:null,cowId2:null,daysUntilBirth:-1})}t.id&&(t.playerId=t.id,delete t.id);for(let e of[toolType.AXE,toolType.PICKER_POLE])if(t.toolLevels&&!t.toolLevels[e]){let n=!!getLevelEntitlements(levelAchieved(t.experience??0)).tools[e];t.toolLevels={...t.toolLevels,[e]:n?toolLevel.DEFAULT:toolLevel.UNAVAILABLE}}return t},require_alea=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=l();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function s(e,t){var n=new a(e),s=t&&t.state,l=n.next;return l.int32=function(){return n.next()*4294967296|0},l.double=function(){return l()+(l()*2097152|0)*11102230246251565e-32},l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}function l(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var a=.02519603282416938*e;e=a>>>0,a-=e,a*=e,e=a>>>0,a-=e,e+=a*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.alea=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor128=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor128=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorwow=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,a==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorwow=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorshift7=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.x,n=t.i,a=e[n],o;return a^=a>>>7,o=a^a<<24,a=e[n+1&7],o^=a^a>>>10,a=e[n+3&7],o^=a^a>>>3,a=e[n+4&7],o^=a^a<<7,a=e[n+7&7],a^=a<<13,o^=a^a<<9,e[n]=o,t.i=n+1&7,o};function n(e,t){var n,a=[];if(t===(t|0))a[0]=t;else for(t=``+t,n=0;n<t.length;++n)a[n&7]=a[n&7]<<15^t.charCodeAt(n)+a[n+1&7]<<13;for(;a.length<8;)a.push(0);for(n=0;n<8&&a[n]===0;++n);for(n==8?a[7]=-1:a[n],e.x=a,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.x&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorshift7=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor4096=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.w,n=t.X,a=t.i,o,s;return t.w=e=e+1640531527|0,s=n[a+34&127],o=n[a=a+1&127],s^=s<<13,o^=o<<17,s^=s>>>15,o^=o>>>12,s=n[a]=s^o,t.i=a,s+(e^e>>>16)|0};function n(e,t){var n,a,o,s,l,u=[],d=128;for(t===(t|0)?(a=t,t=null):(t+=`\0`,a=0,d=Math.max(d,t.length)),o=0,s=-32;s<d;++s)t&&(a^=t.charCodeAt((s+32)%t.length)),s===0&&(l=a),a^=a<<10,a^=a>>>15,a^=a<<4,a^=a>>>13,s>=0&&(l=l+1640531527|0,n=u[s&127]^=a+l,o=n==0?o+1:0);for(o>=128&&(u[(t&&t.length||0)&127]=-1),o=127,s=512;s>0;--s)a=u[o+34&127],n=u[o=o+1&127],a^=a<<13,n^=n<<17,a^=a>>>15,n^=n>>>12,u[o]=a^n;e.w=l,e.X=u,e.i=o}n(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.X&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor4096=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_tychei=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,a=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-a|0,a=a<<24^a>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-a|0,t.d=a<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var a=0;a<n.length+20;a++)t.b^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.tychei=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require___vite_browser_external=__commonJSMin(((e,t)=>{t.exports={}})),require_seedrandom$1=__commonJSMin(((e,t)=>{(function(e,n,a){var o=256,s=6,l=52,u=`random`,d=a.pow(o,s),f=a.pow(2,l),m=f*2,h=o-1,v;function y(e,t,l){var h=[];t=t==1?{entropy:!0}:t||{};var v=C(S(t.entropy?[e,E(n)]:e??T(),3),h),y=new b(h),D=function(){for(var e=y.g(s),t=d,n=0;e<f;)e=(e+n)*o,t*=o,n=y.g(1);for(;e>=m;)e/=2,t/=2,n>>>=1;return(e+n)/t};return D.int32=function(){return y.g(4)|0},D.quick=function(){return y.g(4)/4294967296},D.double=D,C(E(y.S),n),(t.pass||l||function(e,t,n,o){return o&&(o.S&&x(o,y),e.state=function(){return x(y,{})}),n?(a[u]=e,t):e})(D,v,`global`in t?t.global:this==a,t.state)}function b(e){var t,n=e.length,a=this,s=0,l=a.i=a.j=0,u=a.S=[];for(n||(e=[n++]);s<o;)u[s]=s++;for(s=0;s<o;s++)u[s]=u[l=h&l+e[s%n]+(t=u[s])],u[l]=t;(a.g=function(e){for(var t,n=0,s=a.i,l=a.j,u=a.S;e--;)t=u[s=h&s+1],n=n*o+u[h&(u[s]=u[l=h&l+t])+(u[l]=t)];return a.i=s,a.j=l,n})(o)}function x(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function S(e,t){var n=[],a=typeof e,o;if(t&&a==`object`)for(o in e)try{n.push(S(e[o],t-1))}catch{}return n.length?n:a==`string`?e:e+`\0`}function C(e,t){for(var n=e+``,a,o=0;o<n.length;)t[h&o]=h&(a^=t[h&o]*19)+n.charCodeAt(o++);return E(t)}function T(){try{var t;return v&&(t=v.randomBytes)?t=t(o):(t=new Uint8Array(o),(e.crypto||e.msCrypto).getRandomValues(t)),E(t)}catch{var a=e.navigator,s=a&&a.plugins;return[+new Date,e,s,e.screen,E(n)]}}function E(e){return String.fromCharCode.apply(0,e)}if(C(a.random(),n),typeof t==`object`&&t.exports){t.exports=y;try{v=require___vite_browser_external()}catch{}}else typeof define==`function`&&define.amd?define(function(){return y}):a[`seed`+u]=y})(typeof self<`u`?self:e,[],Math)})),require_seedrandom=__commonJSMin(((e,t)=>{var n=require_alea(),a=require_xor128(),o=require_xorwow(),s=require_xorshift7(),l=require_xor4096(),u=require_tychei(),d=require_seedrandom$1();d.alea=n,d.xor128=a,d.xorwow=o,d.xorshift7=s,d.xor4096=l,d.tychei=u,t.exports=d})),import_seedrandom=__toESM(require_seedrandom()),RandomNumberService=class{seededRandom=null;constructor(){let e=new URLSearchParams(import_window.default.location?.search).get(`seed`);e&&this.seedRandomNumber(e)}seedRandomNumber(e){this.seededRandom=(0,import_seedrandom.default)(e)}generateRandomNumber(){return this.seededRandom?this.seededRandom():Math.random()}unseedRandomNumber(){this.seededRandom=null}isRandomNumberLessThan(e){return this.generateRandomNumber()<=e}},randomNumberService=new RandomNumberService,addCowToInventory=(e,t)=>{let{cowInventory:n}=e;return{...e,cowInventory:[...n,t]}},random$1=()=>randomNumberService.generateRandomNumber(),generateValueAdjustments=(e={},t={})=>Object.keys(itemsMap).reduce((n,a)=>(itemsMap[a].doesPriceFluctuate&&(e[a]?n[a]=.5:t[a]?n[a]=1.5:n[a]=random$1()+.5),n),{}),chooseRandomIndex=e=>Math.round(random$1()*(e.length-1)),chooseRandom=e=>e[chooseRandomIndex(e)],filterItemIdsToSeeds=e=>e.filter(e=>itemsMap[e]?.type===itemType.CROP),getRandomLevelUpReward=e=>itemsMap[chooseRandom(filterItemIdsToSeeds(Object.keys(getLevelEntitlements(e).items)))],getRandomLevelUpRewardQuantity=e=>e*10,INVALID_AMOUNT_MESSAGE=`Amount is invalid.`,INVALID_SCALE_MESSAGE=`Scale is invalid.`,NON_DECIMAL_CURRENCY_MESSAGE=`Currency is not decimal.`;function assert(e,t){if(!e)throw Error(`[Dinero.js] ${t}`)}function createDinero({calculator:e,onCreate:t,formatter:n={toNumber:Number,toString:String}}){return function a({amount:o,currency:{code:s,base:l,exponent:u},scale:d=u}){let f={code:s,base:l,exponent:u};return t?.({amount:o,currency:f,scale:d}),{calculator:e,formatter:n,create:a,toJSON(){return{amount:o,currency:f,scale:d}}}}}var DineroComparisonOperator=function(e){return e[e.LT=-1]=`LT`,e[e.EQ=0]=`EQ`,e[e.GT=1]=`GT`,e}({});function equal$2(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.EQ}function lessThan$1(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.LT}function absolute(e){let t=equal$2(e),n=lessThan$1(e),a=e.zero();return o=>{if(t(o,a))return a;if(n(o,a)){let t=e.decrement(a);return e.multiply(t,o)}return o}}function isArray(e){return Array.isArray(e)}function computeBase(e){return t=>isArray(t)?t.reduce((t,n)=>e.multiply(t,n)):t}function getDivisors(e){let{multiply:t}=e;return e=>e.reduce((n,a,o)=>{let s=e.slice(o).reduce((e,n)=>t(e,n));return[...n,s]},[])}function toUnits$1(e){let t=getDivisors(e);return function(...[n,a]){let{amount:o,currency:s,scale:l}=n.toJSON(),{power:u,integerDivide:d,modulo:f}=e,m=t((isArray(s.base)?s.base:[s.base]).map(e=>u(e,l))).reduce((e,t,n)=>{let a=e[n],o=d(a,t),s=f(a,t);return[...e.filter((e,t)=>t!==n),o,s]},[o]);return a?a({value:m,currency:s}):m}}function toDecimal$1(e){let t=toUnits$1(e),n=computeBase(e),a=equal$2(e);return function(...[o,s]){let{currency:l,scale:u}=o.toJSON(),d=n(l.base),f=e.zero(),m=Array(10).fill(null).reduce(e.increment,f),h=isArray(l.base),v=a(e.modulo(d,m),f);assert(!h&&v,NON_DECIMAL_CURRENCY_MESSAGE);let y=t(o),b=getDecimal(e,o.formatter)(y,u);return s?s({value:b,currency:l}):b}}function getDecimal(e,t){let n=absolute(e),a=equal$2(e),o=lessThan$1(e),s=e.zero();return(e,l)=>{let u=t.toString(e[0]),d=t.toString(n(e[1])),f=t.toNumber(l),m=`${u}${f>0?`.${d.padStart(f,`0`)}`:``}`,h=a(e[0],s),v=o(e[1],s);return h&&v?`-${m}`:m}}function toDecimal(...[e,t]){let{calculator:n}=e;return toDecimal$1(n)(e,t)}var USD={code:`USD`,base:10,exponent:2},add$1=(e,t)=>e+t,compare$1=(e,t)=>e<t?DineroComparisonOperator.LT:e>t?DineroComparisonOperator.GT:DineroComparisonOperator.EQ,decrement=e=>e-1,increment=e=>e+1,integerDivide=(e,t)=>Math.trunc(e/t),modulo=(e,t)=>e%t,multiply$1=(e,t)=>e*t,power=(e,t)=>e**t,subtract$1=(e,t)=>e-t;function zero(){return 0}var dinero=createDinero({calculator:{add:add$1,compare:compare$1,decrement,increment,integerDivide,modulo,multiply:multiply$1,power,subtract:subtract$1,zero},onCreate({amount:e,scale:t}){assert(Number.isInteger(e),INVALID_AMOUNT_MESSAGE),assert(Number.isInteger(t),INVALID_SCALE_MESSAGE)}}),moneyString=e=>toDecimal(dinero({amount:Math.round(e*100),currency:USD}),({value:e})=>Number(e).toLocaleString(`en-US`,{style:`currency`,currency:`USD`})),fruit_names_default=`Akee.Apple.Apricot.Avocado.Açaí.Banana.Bilberry.Blackberry.Blackcurrant.Blueberry.Boysenberry.Cantaloupe.Cherimoya.Cherry.Chico.Clementine.Cloudberry.Coconut.Crabapple.Cranberry.Cucumber.Currant.Damson.Durian.Elderberry.Feijoa.Fig.Goji.Gooseberry.Grape.Grapefruit.Guava.Honeyberry.Honeydew.Huckleberry.Jabuticaba.Jackfruit.Jambul.Jostaberry.Jujube.Juniper.Kiwano.Kiwi.Kumquat.Lemon.Lime.Longan.Loquat.Lychee.Mandarine.Mango.Mangosteen.Marion.Melon.Mulberry.Nance.Nectarine.Olive.Orange.Papaya.Peach.Pear.Persimmon.Pineapple.Pineberry.Pitaya.Plantain.Plum.Plumcot.Pomegranate.Pomelo.Prune.Pumpkin.Quince.Raisin.Rambutan.Raspberry.Salak.Salal.Salmonberry.Sapote.Satsuma.Soursop.Strawberry.Surinam.Tamarillo.Tamarind.Tangerine.Tomato.Watermelon.Yuzu.Zucchini`.split(`.`),convertStringToInteger$1=e=>e.split(``).reduce((e,t,n)=>e+t.charCodeAt(0)*n,0),getDefaultCowName=({id:e})=>fruit_names_default[convertStringToInteger$1(e)%fruit_names_default.length],getCowDisplayName=(e,t,n)=>e.originalOwnerId!==t&&!n?getDefaultCowName(e):e.name,animalNames=`Aardvark.Albatross.Alligator.Alpaca.Angelfish.Anglerfish.Ant.Anteater.Antelope.Antlion.Ape.Armadillo.Asp.Baboon.Badger.Bandicoot.Barnacle.Barracuda.Basilisk.Bass.Bat.Bear.Beaver.Bee.Beetle.Bird.Bison.Blackbird.Boar.Bobcat.Bonobo.Bug.Butterfly.Buzzard.Camel.Capybara.Cardinal.Caribou.Cat.Caterpillar.Catfish.Cattle.Chameleon.Cheetah.Chickadee.Chicken.Chimpanzee.Chinchilla.Chipmunk.Clam.Clownfish.Cobra.Condor.Coral.Cougar.Coyote.Crab.Crane.Crawdad.Crayfish.Cricket.Crocodile.Crow.Cuckoo.Deer.Dingo.Dinosaur.Dog.Dolphin.Donkey.Dove.Dragon.Dragonfly.Duck.Eagle.Earthworm.Echidna.Egret.Elephant.Elk.Emu.Ermine.Falcon.Ferret.Finch.Firefly.Fish.Flamingo.Fowl.Fox.Frog.Gazelle.Gecko.Gerbil.Gibbon.Giraffe.Goat.Goldfish.Goose.Gopher.Gorilla.Grasshopper.Grouse.Gull.Guppy.Hamster.Hare.Harrier.Hawk.Hedgehog.Heron.Hippopotamus.Horse.Hummingbird.Hyena.Iguana.Impala.Jackal.Jaguar.Jay.Jellyfish.Kangaroo.Kingfisher.Kiwi.Koala.Koi.Ladybug.Lark.Lemming.Lemur.Leopard.Lion.Llama.Lobster.Loon.Lynx.Macaw.Mackerel.Mammal.Manatee.Mandrill.Marlin.Marmoset.Marmot.Marsupial.Mastodon.Meerkat.Mink.Minnow.Mockingbird.Mole.Mongoose.Monkey.Moose.Mosquito.Mouse.Mule.Muskox.Narwhal.Ocelot.Octopus.Opossum.Orangutan.Orca.Ostrich.Otter.Owl.Ox.Panda.Panther.Parakeet.Parrot.Partridge.Peacock.Pelican.Penguin.Pig.Pigeon.Platypus.Pony.Porcupine.Porpoise.Puffin.Puma.Python.Quail.Quokka.Rabbit.Raccoon.Raven.Reindeer.Rhinoceros.Roadrunner.Rooster.Salamander.Salmon.Seahorse.Shark.Sheep.Shrew.Sloth.Snail.Sparrow.Squid.Squirrel.Starfish.Stingray.Stoat.Stork.Sturgeon.Swan.Swift.Swordfish.Tapir.Tarsier.Tern.Tiger.Tortoise.Toucan.Turkey.Turtle.Tyrannosaurus.Vole.Wallaby.Walrus.Warbler.Whale.Wildcat.Wolf.Wolverine.Wombat.Woodpecker.Wren.Yak.Zebra`.split(`.`),adjectives=`Adorable.Adventurous.Agreeable.Alert.Amused.Attractive.Average.Beautiful.Blushing.Brainy.Brave.Bright.Busy.Calm.Careful.Cautious.Charming.Cheerful.Clever.Cloudy.Colorful.Comfortable.Concerned.Cooperative.Courageous.Crazy.Curious.Cute.Delightful.Determined.Distinct.Dizzy.Elated.Elegant.Enchanting.Encouraging.Energetic.Enthusiastic.Excited.Exuberant.Famous.Fancy.Fantastic.Fierce.Fine.Friendly.Funny.Gentle.Gifted.Glamorous.Gleaming.Glorious.Gorgeous.Graceful.Handsome.Happy.Healthy.Helpful.Hilarious.Important.Inquisitive.Jolly.Joyous.Kind.Light.Lively.Lovely.Lucky.Magnificent.Mysterious.Nice.Nutty.Outrageous.Outstanding.Perfect.Pleasant.Poised.Powerful.Precious.Proud.Puzzled.Quaint.Relieved.Shiny.Silly.Sleepy.Smiling.Sparkling.Splendid.Stormy.Strange.Successful.Tame.Thankful.Thoughtful.Tough.Victorious.Vivacious.Wandering.Wide-eyed.Wild.Witty.Zany`.split(`.`),convertStringToInteger=function(e){return e.split(``).reduce(function(e,t,n){return e+t.charCodeAt(0)*n},0)},funAnimalName=function(e,t){var n=t===void 0?{}:t,a=n.adjectives,o=a===void 0?adjectives:a,s=n.animalNames,l=s===void 0?animalNames:s,u=convertStringToInteger(e),d=o[u%o.length],f=l[(u+convertStringToInteger(d))%l.length];return d+` `+f},getPlayerName=memoize(e=>funAnimalName(e)),integerString=e=>toDecimal(dinero({amount:Math.round(e),currency:USD,scale:0}),({value:e})=>Number(e).toLocaleString(`en-US`)),CROWS_DESTROYED=(e,t)=>`Oh no! Crows destroyed ${t} crop${t>1?`s`:``}!`,COW_PEN_PURCHASED=(e,t)=>`Purchased a cow pen with capacity for ${t} cows! You can visit your cow pen by going to the "Cows" page.`,CELLAR_PURCHASED=(e,t)=>`Purchased a cellar with capacity for ${t} kegs! View your keg inventory by going to the "Cellar" page.`,MILKS_PRODUCED=(e,t)=>{let n=`Your cows produced milk:
|
|
140
140
|
`;return Object.keys(t).sort().forEach(e=>n+=` - ${t[e]} ${e}${t[e]>1?`s`:``}
|
|
141
141
|
`),n},FRUIT_READY_TO_HARVEST=(e,t)=>{let n=`Fruit is ready to pick in the forest:
|
|
142
142
|
`;return Object.keys(t).sort().forEach(e=>n+=` - ${t[e]} ${e} tree${t[e]>1?`s`:``}
|
|
@@ -149,16 +149,16 @@ You earned: ${n}`,LOAN_PAYOFF=e=>`You paid off your loan to the bank! You're fin
|
|
|
149
149
|
`],o=levels[t];return itemUnlockLevels[t]&&a.push(`Now available in the shop: **${itemsMap[itemUnlockLevels[t]].name}**.`),o&&o.increasesSprinklerRange&&a.push(`Sprinkler range has increased.`),o&&o.unlocksTool&&o.unlocksTool.includes(toolType.SHOVEL)&&a.push(SHOVEL_UNLOCKED),o&&o.unlocksStageFocusType&&o.unlocksStageFocusType===stageFocusType.FOREST&&a.push(FOREST_AVAILABLE_NOTIFICATION),a.length===1&&n&&a.push(`You got **${getRandomLevelUpRewardQuantity(t)} units of ${n.name}** as a reward!`),a.join(` `)},CONNECTED_TO_ROOM=(e,t)=>`Connected to room **${t}**!`,POSITIONS_POSTED_NOTIFICATION=(e,t,n)=>{let a=[],o=[],s=Object.keys(n);s.forEach(e=>(n[e]>0?a:o).push(e));let l=s.length?[`${t} impacted the market!\n`]:[];return a.length&&(l.push(`Values raised:`),a.forEach(e=>l.push(` - ${itemsMap[e].name}`))),o.length&&(a.length&&l.push(``),l.push(`Values lowered:`),o.forEach(e=>l.push(` - ${itemsMap[e].name}`))),l.join(`
|
|
150
150
|
`)},PURCHASED_ITEM_PEER_NOTIFICATION=(e,t,{name:n})=>`purchased ${integerString(t)} unit${t>1?`s`:``} of ${n}.`,SOLD_ITEM_PEER_NOTIFICATION=(e,t,{name:n})=>`sold ${integerString(t)} unit${t>1?`s`:``} of ${n}.`,SOLD_FERMENTED_ITEM_PEER_NOTIFICATION=(e,t)=>`sold one unit of ${FERMENTED_CROP_NAME(e,t)}.`,TOOL_UPGRADED_NOTIFICATION=(e,t,n)=>`Your ${t} has been upgraded to a **${n}**!`,INGREDIENTS_LIST_ITEM=(e,t,n,a)=>`${t} x ${n} (On hand: ${a})`,OFFER_COW_FOR_TRADE=(e,t)=>`Offer ${t} for trade with online players`,WITHDRAW_COW_FROM_TRADE=(e,t)=>`Keep ${t} from being traded`,COW_TRADED_NOTIFICATION=(e,t,n,a,o)=>`You traded ${getCowDisplayName(t,a,o)} for ${getCowDisplayName(n,a,o)}!`,SHOVELED_PLOT=(e,t)=>`Shoveled plot of ${t.name}`,FERMENTED_CROP_NAME=(e,t)=>`Fermented ${t.name}`,KEG_SPOILED_MESSAGE=(e,t)=>`Oh no! Your ${FERMENTED_CROP_NAME(e,itemsMap[t.itemId])} has spoiled!`,KEGS_READY_TO_SELL=(e,t)=>{let n=`Kegs are ready to sell in the cellar:
|
|
151
151
|
`;return Object.keys(t).sort().forEach(e=>n+=` - ${t[e]} ${e}${t[e]>1?`s`:``}
|
|
152
|
-
`),n},NEW_COW_OFFERED_FOR_TRADE=(e,t)=>`A new cow is being offered for trade by ${getPlayerName(t.playerId)}!`,FOREST_EXPANDED=(e,t)=>`The Forest has expanded! You can now plant up to ${t} trees.`,EXPERIENCE_GAUGE_TOOLTIP_LABEL=(e,t,n)=>t===1?`Just 1 more experience point needed to reach level ${integerString(n)}!`:`${integerString(t)} more experience points needed to reach level ${integerString(n)}`,inventorySpaceConsumed=memoize(e=>e.reduce((e,{quantity:t=0})=>e+t,0),{}),inventorySpaceRemaining=({inventory:e,inventoryLimit:t})=>t===-1?1/0:Math.max(0,t-inventorySpaceConsumed(e)),addItemToInventory=(e,t,n=1,a=!1)=>{let{id:o}=t,s=[...e.inventory],l=a?n:Math.min(n,inventorySpaceRemaining(e));if(l===0)return e;let u=s.findIndex(({id:e})=>o===e);if(~u){let e=s[u];s[u]={...e,quantity:e.quantity+l}}else s.push({id:o,quantity:l});return{...e,inventory:s}},showNotification=(e,t,n=`info`,a=void 0)=>{let{showNotifications:o,todaysNotifications:s}=e;return{...e,...o&&{latestNotification:{message:t,onClick:a,severity:n}},todaysNotifications:s.find(e=>e.message===t)?s:s.concat({message:t,onClick:a,severity:n})}},unlockTool=(e,t)=>{let{toolLevels:n}=e;return n[t]===toolLevel.UNAVAILABLE?{...e,toolLevels:{...n,[t]:toolLevel.DEFAULT}}:e},processLevelUp=(e,t)=>{let{experience:n,selectedItemId:a}=e,o=levelAchieved(n);for(let s=o;s>t;s--){let t=levels[s]||{},o;if(Object.keys(t).length<2)o=getRandomLevelUpReward(s),e=addItemToInventory(e,o,getRandomLevelUpRewardQuantity(s),!0);else if(t?.unlocksTool)for(let n of t.unlocksTool)e=unlockTool(e,n);else if(t&&t.increasesSprinklerRange&&a===`sprinkler`){let{sprinklerRange:t}=getLevelEntitlements(levelAchieved(n));t>e.hoveredPlotRangeSize&&(e={...e,hoveredPlotRangeSize:t})}e=showNotification(e,LEVEL_GAINED_NOTIFICATION(``,s,o),`success`)}return e},addExperience=(e,t)=>{let{experience:n}=e,a=levelAchieved(n),o={...e,experience:n+t};return o=processLevelUp(o,a),o},addPeer=(e,t)=>{let n={...e.peers};return n[t]=null,{...e,peers:n,activePlayers:(e.activePlayers??1)+1}},addRevenue=(e,t)=>{let{money:n,revenue:a,todaysRevenue:o}=e;return{...e,money:moneyTotal(n,t),revenue:moneyTotal(a,t),todaysRevenue:moneyTotal(o,t)}},adjustLoan=(e,t)=>{let n=moneyTotal(e.loanBalance,t),a=moneyTotal(e.money,t);return n===0&&t<0?e=showNotification(e,LOAN_PAYOFF(),`success`):t>0&&(e={...showNotification(e,LOAN_INCREASED(``,n),`info`),loansTakenOut:e.loansTakenOut+1}),{...e,loanBalance:n,money:a}},getInventoryQuantityMap=memoize(e=>e.reduce((e,{id:t,quantity:n})=>(e[t]=n,e),{})),shouldStormToday=()=>random$1()<STORM_CHANCE,getPlotContentType=({itemId:e})=>e?itemsMap[e].type:null,memoizationSerializer=e=>JSON.stringify([...e].map(e=>typeof e==`function`?e.toString():e)),findInField=memoize((e,t)=>{for(let n of e)for(let e of n)if(t(e))return e;return null},{serializer:memoizationSerializer}),setWasWateredProperty=(e,t)=>e===null?null:getPlotContentType(e)===itemType.CROP?{...e,wasWateredToday:t}:{...e},setWasWatered=e=>setWasWateredProperty(e,!0),fieldHasScarecrow=e=>!!(e&&findInField(e,plotContainsScarecrow)),applyChanceEvent=(e,t)=>e.reduce((e,[t,n])=>t()?n(e):e,t),plotContainsScarecrow=e=>!!(e&&e.itemId===`scarecrow`);function updateField(e,t){return e.map((e,n)=>e.map((e,a)=>t(e,a,n)))}var decrementItemFromInventory=(e,t,n=1)=>{let a=[...e.inventory],o=a.findIndex(({id:e})=>e===t);if(o===-1)return e;let{quantity:s}=a[o];return s>n?a[o]={...a[o],quantity:s-n}:a.splice(o,1),{...e,inventory:a}},waterField=e=>({...e,field:updateField(e.field,setWasWatered)}),applyPrecipitation=e=>{let{field:t}=e,n=0,a;if(shouldStormToday())if(fieldHasScarecrow(t)){a={message:STORM_DESTROYS_SCARECROWS_MESSAGE,severity:`error`};let{scarecrow:o=0}=getInventoryQuantityMap(e.inventory);t=updateField(t,e=>plotContainsScarecrow(e)?o&&e&&e.fertilizerType===fertilizerType.RAINBOW?(o--,n++,e):null:e)}else a={message:STORM_MESSAGE,severity:`info`};else a={message:RAIN_MESSAGE,severity:`info`};return e=decrementItemFromInventory({...e,field:t},`scarecrow`,n),e={...e,newDayNotifications:[...e.newDayNotifications,a]},e=waterField(e),e},areHuggingMachinesInInventory=memoize(e=>e.some(({id:e})=>e===HUGGING_MACHINE_ITEM_ID)),modifyCow=(e,t,n)=>{let a=[...e.cowInventory],o=a.find(({id:e})=>e===t);if(!o)return e;let s=a.indexOf(o);return s===-1?e:(a[s]={...o,...n(o)},{...e,cowInventory:a})},changeCowAutomaticHugState=(e,t,n)=>n&&(t.isUsingHuggingMachine||!areHuggingMachinesInInventory(e.inventory))?e:(e=modifyCow(e,t.id,e=>({...e,isUsingHuggingMachine:n})),e=n?decrementItemFromInventory(e,HUGGING_MACHINE_ITEM_ID):addItemToInventory(e,itemsMap[HUGGING_MACHINE_ITEM_ID]),e),cowCanBeAdded=(e,t,n)=>{let{cowId1:a,cowId2:o}=t,s=a!==null&&o!==null,l=a===e.id||o===e.id;return!!n.find(({id:t})=>t===e.id)&&!s&&!l},changeCowBreedingPenResident=(e,t,n)=>{let{cowBreedingPen:a,cowInventory:o}=e,{cowId1:s,cowId2:l}=a,u=s===t.id||l===t.id,d={...a};if(n&&!cowCanBeAdded(t,a,o)||!n&&!u)return e;if(n){let e=s===null?`cowId1`:`cowId2`;d={...d,[e]:t.id}}else s===t.id&&(d={...d,cowId1:d.cowId2}),d={...d,cowId2:null};return{...e,cowBreedingPen:{...d,daysUntilBirth:3}}},changeCowName=(e,t,n)=>modifyCow(e,t,()=>({name:n.slice(0,30)})),doesInventorySpaceRemain=e=>inventorySpaceRemaining(e)>0,getChopWoodYieldRange=(e,t)=>{let n=AXE_WOOD_YIELD_RANGE[e];if(!n)return null;let[a,o]=n;return t?[a,o]:[Math.max(1,Math.floor(a/2)),Math.max(1,Math.floor(o/2))]},{SEED:SEED$5,GROWN:GROWN$11}=cropLifeStage,getFruitLifeStage=(e,t)=>{if((t??getTreeLifeStage(e))!==GROWN$11)return SEED$5;let{itemId:n,daysSinceLastHarvest:a=0}=e,o=itemsMap[n];if(!o)throw Error(`${n} is not a valid item`);let{fruitTimeline:s}=o;if(!s)throw Error(`${n} has no fruitTimeline`);return getLifeStageForTimeline(s,a)},modifyForestPlotAt=(e,t,n,a)=>{let{forest:o}=e,s=o[n];if(!s)return e;let l=[...s];l[t]=a(l[t]);let u=[...o];return u[n]=l,{...e,forest:u}},{GROWN:GROWN$10}=cropLifeStage,{DEAD:DEAD$2}=treeLifeStage,{UNAVAILABLE:UNAVAILABLE$1}=toolLevel,getWoodYield=(e,t)=>{let n=getChopWoodYieldRange(e,t);if(!n)return 0;let[a,o]=n;return a+Math.floor(random$1()*(o-a+1))},chopForestPlot=(e,t,n)=>{let a=e.forest[n]?.[t];if(!isPlantedTree(a)||e.toolLevels[toolType.AXE]===UNAVAILABLE$1||!doesInventorySpaceRemain(e))return e;let o=getTreeLifeStage(a);if(getFruitLifeStage(a,o)===GROWN$10){let t=itemsMap[a.itemId];t&&(e=addItemToInventory(e,t),e={...e,treeFruitsHarvested:{...e.treeFruitsHarvested,[t.id]:(e.treeFruitsHarvested[t.id]||0)+1}})}let s=itemsMap.wood;if(s){let t=getWoodYield(e.toolLevels[toolType.AXE],o===GROWN$10||o===DEAD$2);t>0&&(e=addItemToInventory(e,s,t))}return e={...e,treesChopped:e.treesChopped+1},modifyForestPlotAt(e,t,n,()=>null)},{SEED:SEED$4,GROWING:GROWING$2,GROWN:GROWN$9}=cropLifeStage,getCropLifeStage=e=>{let{itemId:t,daysWatered:n=0}=e,{cropTimeline:a}=itemsMap[t];if(!a)throw Error(`${t} has no cropTimeline`);return getLifeStageRange(a)[Math.floor(n)]||GROWN$9},getSeedItemIdFromFinalStageCropItemId=memoize(e=>{let t=Object.values(itemsMap).find(t=>{let{growsInto:n}=t;return Array.isArray(n)?n.includes(e):n===e})?.id;if(!t)throw Error(`Crop item ID ${e} does not have a corresponding seed`);return t},{cacheSize:Object.keys(itemsMap).length}),modifyFieldPlotAt=(e,t,n,a)=>{let{field:o}=e,s=[...o[n]];s[t]=a(s[t]);let l=[...o];return l[n]=s,{...e,field:l}},removeFieldPlotAt=(e,t,n)=>modifyFieldPlotAt(e,t,n,()=>null),{GROWN:GROWN$8}=cropLifeStage,clearPlot=(e,t,n)=>{let a=e.field[n][t],o=e.toolLevels[toolType.HOE];if(!a||a.isShoveled)return e;if(getPlotContentType(a)===itemType.CROP&&getCropLifeStage(a)!==GROWN$8&&randomNumberService.isRandomNumberLessThan(HOE_LEVEL_TO_SEED_RECLAIM_RATE[o]||0)){let t=getSeedItemIdFromFinalStageCropItemId(a.itemId);e=addItemToInventory(e,itemsMap[t])}let s=itemsMap[a.itemId];return s.isReplantable&&!doesInventorySpaceRemain(e)?e:(e=removeFieldPlotAt(e,t,n),s.isReplantable||getPlotContentType(a)===itemType.WEED||getCropLifeStage(a)===GROWN$8?addItemToInventory(e,s):e)},computeCowInventoryForNextDay=e=>({...e,cowInventory:e.cowInventory.map(e=>({...e,daysOld:e.daysOld+1,daysSinceMilking:e.daysSinceMilking+1,daysSinceProducingFertilizer:(e.daysSinceProducingFertilizer||0)+1,happiness:Math.max(0,e.isUsingHuggingMachine?Math.min(1,e.happiness+2*COW_HUG_BENEFIT):e.happiness-COW_HUG_BENEFIT),happinessBoostsToday:e.isUsingHuggingMachine?3:0}))}),byteToHex=[];for(let e=0;e<256;++e)byteToHex.push((e+256).toString(16).slice(1));function unsafeStringify(e,t=0){return(byteToHex[e[t+0]]+byteToHex[e[t+1]]+byteToHex[e[t+2]]+byteToHex[e[t+3]]+`-`+byteToHex[e[t+4]]+byteToHex[e[t+5]]+`-`+byteToHex[e[t+6]]+byteToHex[e[t+7]]+`-`+byteToHex[e[t+8]]+byteToHex[e[t+9]]+`-`+byteToHex[e[t+10]]+byteToHex[e[t+11]]+byteToHex[e[t+12]]+byteToHex[e[t+13]]+byteToHex[e[t+14]]+byteToHex[e[t+15]]).toLowerCase()}var rnds8=new Uint8Array(16);function rng(){return crypto.getRandomValues(rnds8)}function v4(e,t,n){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():_v4(e,t,n)}function _v4(e,t,n){e||={};let a=e.random??e.rng?.()??rng();if(a.length<16)throw Error(`Random bytes length must be >= 16`);if(a[6]=a[6]&15|64,a[8]=a[8]&63|128,t){if(n||=0,n<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=a[e];return t}return unsafeStringify(a)}var generateCow=(e={})=>{let t=e.gender||chooseRandom(Object.values(genders)),n=e.color||chooseRandom(Object.values(standardCowColors)),a=e.id||v4(),o={baseWeight:Math.round(COW_STARTING_WEIGHT_BASE*(t===genders.MALE?MALE_COW_WEIGHT_MULTIPLIER:1)-200+random$1()*400),color:n,colorsInBloodline:{[n]:!0},daysOld:1,daysSinceMilking:0,daysSinceProducingFertilizer:0,gender:t,happiness:0,happinessBoostsToday:0,id:a,isBred:!1,isUsingHuggingMachine:!1,name:``,ownerId:``,originalOwnerId:``,timesTraded:0,weightMultiplier:1,...e};return o.name=getDefaultCowName(o),o},castToMoney=e=>Math.round(e*100)/100,applyLoanInterest=e=>{let t=moneyTotal(e.loanBalance,castToMoney(e.loanBalance*LOAN_INTEREST_RATE)),n=t>0?[...e.newDayNotifications,{severity:`warning`,message:LOAN_BALANCE_NOTIFICATION(``,t)}]:e.newDayNotifications;return{...e,loanBalance:t,newDayNotifications:n}},getPriceEventForCrop=e=>({itemId:e.id,daysRemaining:getCropLifecycleDuration(e)-1}),getFinalCropItemIdFromSeedItemId=(e,t=0)=>{let{growsInto:n}=itemsMap[e];return Array.isArray(n)?n[t]:n},getRandomUnlockedCrop=e=>{let t=chooseRandom(e),n=itemsMap[t],a=getFinalCropItemIdFromSeedItemId(t,Array.isArray(n.growsInto)?chooseRandomIndex(n.growsInto):0);if(!a)throw Error(`Seed item ID ${t} has no corresponding final crop ID`);return itemsMap[a]},createPriceEvent=(e,t,n)=>({...e,[n]:{...e[n],[t.itemId]:t}}),TYPE_CRASH=`priceCrashes`,TYPE_SURGE=`priceSurges`,generatePriceEvents=e=>{let t={...e.priceCrashes},n={...e.priceSurges},a=[...e.newDayNotifications],o;if(random$1()<.2){let{items:s}=getLevelEntitlements(levelAchieved(e.experience)),l=getRandomUnlockedCrop(filterItemIdsToSeeds(Object.keys(s))),{id:u}=l;if(!(t[u]||n[u])){let t=random$1()<.5?TYPE_CRASH:TYPE_SURGE;o=createPriceEvent(e,getPriceEventForCrop(l),t),a.push(t===TYPE_CRASH?{message:PRICE_CRASH(``,l),severity:`warning`}:{message:PRICE_SURGE(``,l),severity:`success`})}}return{...e,...o,newDayNotifications:a}},WineService=class{maturityDayMultiplier=3;getDaysToMature=e=>wineVarietyValueMap[e]*this.maturityDayMultiplier;isWineRecipe=e=>`recipeType`in e&&e.recipeType===recipeType.WINE;getMaxWineYield=({grape:e,inventory:t,cellarInventory:n,cellarSize:a})=>{let{[e.id]:o=0,[itemsMap.yeast?.id??``]:s=0}=getInventoryQuantityMap(t),l=a-n.length,u=Math.floor(o/50),d=Math.floor(s/getYeastRequiredForWine(e.variety));return Math.min(l,u,d)}},wineService=new WineService,getKegDisplayName=e=>wineService.isWineRecipe(e)?e.name:FERMENTED_CROP_NAME(``,e),CellarService=class{_uuid=v4;getItemInstancesInCellar=memoize((e,t)=>e.filter(e=>e.itemId===t.id).length,{cacheSize:Object.keys(fermentableItemsMap).length});generateKeg=e=>{let t={id:this._uuid(),itemId:e.id,daysUntilMature:e.daysToFerment??0};return wineService.isWineRecipe(e)&&(t.daysUntilMature=getYeastRequiredForWine(e.variety)),t};doesCellarSpaceRemain=(e,t)=>e.length<(PURCHASEABLE_CELLARS.get(t)?.space??0);doesKegSpoil=e=>{let t=itemsMap[e.itemId];return!wineService.isWineRecipe(t)}},cellarService=new CellarService,getKegSpoilageRate=e=>!cellarService.doesKegSpoil(e)||e.daysUntilMature>0?0:Math.abs(e.daysUntilMature)*KEG_SPOILAGE_RATE_MULTIPLIER,removeKegFromCellar=(e,t)=>{let{cellarInventory:n}=e,a=n.findIndex(({id:e})=>e===t);if(a===-1)return console.error(`removeKegFromCellar: kegId ${t} not found`),e;let o=[...n.slice(0,a),...n.slice(a+1,n.length)];return e={...e,cellarInventory:o},e},processCellarSpoilage=e=>{let{cellarInventory:t}=e,n=[...t];for(let t=n.length-1;t>-1;t--){let a=n[t],o=itemsMap[a.itemId],s=getKegSpoilageRate(a);!wineService.isWineRecipe(o)&&randomNumberService.isRandomNumberLessThan(s)&&(e=removeKegFromCellar(e,a.id),e={...e,newDayNotifications:[...e.newDayNotifications,{message:KEG_SPOILED_MESSAGE`${a}`,severity:`error`}]})}return e={...e},e},processCellar=e=>{e=processCellarSpoilage(e);let{cellarInventory:t}=e,n=[...t],a={};for(let e=0;e<n.length;e++){let t=n[e],o=t.daysUntilMature-1,s=itemsMap[t.itemId];if(wineService.isWineRecipe(s)&&t.daysUntilMature>0&&o<=0){let e=getKegDisplayName(s);a[e]=(a[e]||0)+1}n[e]={...t,daysUntilMature:o}}let o=[...e.newDayNotifications];return Object.keys(a).length&&o.push({message:KEGS_READY_TO_SELL(``,a),severity:`success`}),e={...e,cellarInventory:n,newDayNotifications:o},e},removeCowFromInventory=(e,t)=>{let n=[...e.cowInventory],{isUsingHuggingMachine:a}=t;return n.splice(n.indexOf(t),1),a&&(e=addItemToInventory(e,itemsMap[HUGGING_MACHINE_ITEM_ID])),e=changeCowBreedingPenResident(e,t,!1),{...e,cowInventory:n}},processCowAttrition=e=>{let t=[...e.newDayNotifications],n=[...e.cowInventory];for(let a=0;a<n.length;a++){let o=n[a];Number(o.weightMultiplier.toFixed(2))===.5&&(e=removeCowFromInventory(e,o),t.push({message:COW_ATTRITION_MESSAGE(``,o),severity:`error`}))}return{...e,newDayNotifications:t}},findCowById=memoize((e,t)=>e.find(e=>t===e.id)),generateOffspringCow=(e,t,n,a={})=>{if(e.gender===t.gender)throw Error(`${JSON.stringify(e)} ${JSON.stringify(t)} cannot produce offspring because they have the same gender`);let o=e.gender===genders.MALE?e:t,s=e.gender===genders.MALE?t:e,l={[o.color]:!0,[s.color]:!0,...o.colorsInBloodline,...s.colorsInBloodline};return delete l[cowColors.RAINBOW],generateCow({color:Object.keys(l).length===Object.keys(standardCowColors).length?cowColors.RAINBOW:chooseRandom([s.color,o.color]),colorsInBloodline:l,baseWeight:(o.baseWeight+s.baseWeight)/2,isBred:!0,ownerId:n,originalOwnerId:n,...a})},processCowBreeding=e=>{let{cowBreedingPen:t,cowInventory:n,playerId:a,newDayNotifications:o,purchasedCowPen:s}=e,{cowId1:l,cowId2:u}=t;if(!u)return e;let d=l?findCowById(n,l):null,f=u?findCowById(n,u):null;if(!d||!f||d.gender===f.gender)return e;let m=d.happiness>=.8&&f.happiness>=.8?t.daysUntilBirth-1:3,h=PURCHASEABLE_COW_PENS.get(s),v=h&&n.length<h.cows&&m===0,y=v?generateOffspringCow(d,f,a):null;if(y){let t=y.color===cowColors.RAINBOW?EXPERIENCE_VALUES.RAINBOW_COW_BRED:EXPERIENCE_VALUES.COW_BRED;e=addExperience(e,t)}return{...e,cowInventory:v&&y?[...n,y]:n,cowBreedingPen:{...t,daysUntilBirth:v?3:m},newDayNotifications:y?[...o,{message:COW_BORN_MESSAGE(``,d,f,y),severity:`success`}]:o}},getCowFertilizerItem=({color:e})=>itemsMap[e===cowColors.RAINBOW?`rainbow-fertilizer`:`fertilizer`],scaleNumber=(e,t,n,a,o)=>(e-t)*(o-a)/(n-t)+a,getCowFertilizerProductionRate=e=>e.gender===genders.MALE?scaleNumber(e.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,7,1):1/0,processCowFertilizerProduction=e=>{let t=[...e.cowInventory],n=[...e.newDayNotifications],{length:a}=t,o={},s=e.hasProducedRainbowFertilizer;for(let n=0;n<a;n++){let a=t[n];if((a.daysSinceProducingFertilizer||0)>getCowFertilizerProductionRate(a)){t[n]={...a,daysSinceProducingFertilizer:0};let l=getCowFertilizerItem(a),{name:u}=l;if(!doesInventorySpaceRemain(e))break;o[u]=(o[u]||0)+1,e=addItemToInventory(e,l),l.id===`rainbow-fertilizer`&&(s=!0)}}return Object.keys(o).length&&n.push({message:FERTILIZERS_PRODUCED(``,o),severity:`success`}),{...e,cowInventory:t,hasProducedRainbowFertilizer:s,newDayNotifications:n}},clampNumber=(e,t,n)=>e<=t?t:e>=n?n:e,processFeedingCows=e=>{let t=[...e.cowInventory],{length:n}=t,a=[...e.newDayNotifications],o=[...e.inventory],s=o[o.findIndex(({id:e})=>e===COW_FEED_ITEM_ID)],l=s?s.quantity:0,u=0;for(let e=0;e<n;e++){let n=t[e],a=u<l;t[e]={...n,weightMultiplier:clampNumber(a?n.weightMultiplier+COW_WEIGHT_MULTIPLIER_FEED_BENEFIT:n.weightMultiplier-COW_WEIGHT_MULTIPLIER_FEED_BENEFIT,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM)},a&&u++}return l<=n&&n>0&&a.push({message:OUT_OF_COW_FEED_NOTIFICATION,severity:`error`}),decrementItemFromInventory({...e,cowInventory:t,inventory:o,newDayNotifications:a},COW_FEED_ITEM_ID,u)},incrementPlotContentAge=e=>e&&getPlotContentType(e)===itemType.CROP?{...e,daysOld:(e.daysOld||0)+1,daysWatered:(e.daysWatered||0)+(e.wasWateredToday?1+(e.fertilizerType===fertilizerType.NONE?0:FERTILIZER_BONUS):0)}:e,updatePlotShoveledState=e=>e&&e.isShoveled&&e.daysUntilClear!==void 0&&e.daysUntilClear>1?{...e,daysUntilClear:e.daysUntilClear-1}:e&&!e.isShoveled?e:null,getPlotContentFromItemId=e=>({itemId:e,fertilizerType:fertilizerType.NONE});function spawnWeeds(e){if(e)return e;let t=null;return randomNumberService.isRandomNumberLessThan(.15)&&(t=getPlotContentFromItemId(weed.id)),t}var fieldReducer=(e,t)=>t(e),resetWasWatered=e=>setWasWateredProperty(e,!1),fieldUpdaters=[incrementPlotContentAge,resetWasWatered,spawnWeeds,updatePlotShoveledState],processField=e=>({...e,field:updateField(e.field,e=>fieldUpdaters.reduce(fieldReducer,e))}),{GROWN:GROWN$7}=cropLifeStage,{NONE:NONE$2,RAINBOW:RAINBOW$1}=fertilizerType,incrementTreeAge=e=>{if(!e)return null;let t=e.daysOld+1;if(!isPlantedTree(e))return{...e,daysOld:t};let n=e.fertilizerType!=null&&e.fertilizerType!==NONE$2,a=e.fertilizerType===RAINBOW$1,o=(e.daysGrown??e.daysOld)+(n?1+FERTILIZER_BONUS:1),s={...e,daysOld:t,daysGrown:o};return{...s,daysSinceLastHarvest:getTreeLifeStage(s)===GROWN$7?s.daysSinceLastHarvest+(a?1+FERTILIZER_BONUS:1):s.daysSinceLastHarvest}},processForest=e=>{let t=e.forest.map(e=>e.map(incrementTreeAge)),n={};t.forEach((t,a)=>t.forEach((t,o)=>{let s=e.forest[a]?.[o];if(!isPlantedTree(s)||!isPlantedTree(t)||getFruitLifeStage(s)===GROWN$7||getFruitLifeStage(t)!==GROWN$7)return;let{name:l}=itemsMap[t.itemId]??{};l&&(n[l]=(n[l]||0)+1)}));let a=[...e.newDayNotifications];return Object.keys(n).length&&a.push({message:FRUIT_READY_TO_HARVEST(``,n),severity:`success`}),{...e,forest:t,newDayNotifications:a}},getCowMilkItem=({color:e,happiness:t})=>{if(e===cowColors.BROWN)return chocolateMilk;let n=e===cowColors.RAINBOW;return t<1/3?n?rainbowMilk1:milk1:t<2/3?n?rainbowMilk2:milk2:n?rainbowMilk3:milk3},getCowMilkRate=e=>e.gender===genders.FEMALE?scaleNumber(e.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,7,2):1/0,processMilkingCows=e=>{let t=[...e.cowInventory],n=[...e.newDayNotifications],{length:a}=t,o={};for(let n=0;n<a;n++){let a=t[n];if(a.daysSinceMilking>getCowMilkRate(a)){t[n]={...a,daysSinceMilking:0};let s=getCowMilkItem(a),{name:l}=s;if(!doesInventorySpaceRemain(e))break;o[l]=(o[l]||0)+1,e=addItemToInventory(e,s)}}return Object.keys(o).length&&n.push({message:MILKS_PRODUCED(``,o),severity:`success`}),{...e,cowInventory:t,newDayNotifications:n}},doesPlotContainCrop=e=>e!==null&&getPlotContentType(e)===itemType.CROP;function forEachPlot(e,t){e.field.forEach((e,n)=>e.forEach((e,a)=>t(e,a,n)))}var applyCrows=e=>{let{field:t,purchasedField:n}=e;if(fieldHasScarecrow(t)||randomNumberService.isRandomNumberLessThan(.6))return e;let a=[...e.newDayNotifications],o=[],s=[];forEachPlot(e,(t,n,a)=>{doesPlotContainCrop(e.field[a][n])&&s.push({x:n,y:a})});let l=Math.min(s.length,Math.floor(random$1()*(n+1)*5)),u=0;for(let t=0;t<l;t++){let t=Math.floor(random$1()*s.length),n=s.splice(t,1)[0];e=modifyFieldPlotAt(e,n.x,n.y,()=>null),u+=1}return u>0&&o.push(CROWS_DESTROYED(``,u)),o.length&&a.push({message:o.join(`
|
|
152
|
+
`),n},NEW_COW_OFFERED_FOR_TRADE=(e,t)=>`A new cow is being offered for trade by ${getPlayerName(t.playerId)}!`,FOREST_EXPANDED=(e,t)=>`The Forest has expanded! You can now plant up to ${t} trees.`,EXPERIENCE_GAUGE_TOOLTIP_LABEL=(e,t,n)=>t===1?`Just 1 more experience point needed to reach level ${integerString(n)}!`:`${integerString(t)} more experience points needed to reach level ${integerString(n)}`,inventorySpaceConsumed=memoize(e=>e.reduce((e,{quantity:t=0})=>e+t,0),{}),inventorySpaceRemaining=({inventory:e,inventoryLimit:t})=>t===-1?1/0:Math.max(0,t-inventorySpaceConsumed(e)),addItemToInventory=(e,t,n=1,a=!1)=>{let{id:o}=t,s=[...e.inventory],l=a?n:Math.min(n,inventorySpaceRemaining(e));if(l===0)return e;let u=s.findIndex(({id:e})=>o===e);if(~u){let e=s[u];s[u]={...e,quantity:e.quantity+l}}else s.push({id:o,quantity:l});return{...e,inventory:s}},showNotification=(e,t,n=`info`,a=void 0)=>{let{showNotifications:o,todaysNotifications:s}=e;return{...e,...o&&{latestNotification:{message:t,onClick:a,severity:n}},todaysNotifications:s.find(e=>e.message===t)?s:s.concat({message:t,onClick:a,severity:n})}},unlockTool=(e,t)=>{let{toolLevels:n}=e;return n[t]===toolLevel.UNAVAILABLE?{...e,toolLevels:{...n,[t]:toolLevel.DEFAULT}}:e},processLevelUp=(e,t)=>{let{experience:n,selectedItemId:a}=e,o=levelAchieved(n);for(let s=o;s>t;s--){let t=levels[s]||{},o;if(Object.keys(t).length<2)o=getRandomLevelUpReward(s),e=addItemToInventory(e,o,getRandomLevelUpRewardQuantity(s),!0);else if(t?.unlocksTool)for(let n of t.unlocksTool)e=unlockTool(e,n);else if(t&&t.increasesSprinklerRange&&a===`sprinkler`){let{sprinklerRange:t}=getLevelEntitlements(levelAchieved(n));t>e.hoveredPlotRangeSize&&(e={...e,hoveredPlotRangeSize:t})}e=showNotification(e,LEVEL_GAINED_NOTIFICATION(``,s,o),`success`)}return e},addExperience=(e,t)=>{let{experience:n}=e,a=levelAchieved(n),o={...e,experience:n+t};return o=processLevelUp(o,a),o},addPeer=(e,t)=>{let n={...e.peers};return n[t]=null,{...e,peers:n,activePlayers:(e.activePlayers??1)+1}},addRevenue=(e,t)=>{let{money:n,revenue:a,todaysRevenue:o}=e;return{...e,money:moneyTotal(n,t),revenue:moneyTotal(a,t),todaysRevenue:moneyTotal(o,t)}},adjustLoan=(e,t)=>{let n=moneyTotal(e.loanBalance,t),a=moneyTotal(e.money,t);return n===0&&t<0?e=showNotification(e,LOAN_PAYOFF(),`success`):t>0&&(e={...showNotification(e,LOAN_INCREASED(``,n),`info`),loansTakenOut:e.loansTakenOut+1}),{...e,loanBalance:n,money:a}},getInventoryQuantityMap=memoize(e=>e.reduce((e,{id:t,quantity:n})=>(e[t]=n,e),{})),shouldStormToday=()=>random$1()<STORM_CHANCE,getPlotContentType=({itemId:e})=>e?itemsMap[e].type:null,memoizationSerializer=e=>JSON.stringify([...e].map(e=>typeof e==`function`?e.toString():e)),findInField=memoize((e,t)=>{for(let n of e)for(let e of n)if(t(e))return e;return null},{serializer:memoizationSerializer}),setWasWateredProperty=(e,t)=>e===null?null:getPlotContentType(e)===itemType.CROP?{...e,wasWateredToday:t}:{...e},setWasWatered=e=>setWasWateredProperty(e,!0),fieldHasScarecrow=e=>!!(e&&findInField(e,plotContainsScarecrow)),applyChanceEvent=(e,t)=>e.reduce((e,[t,n])=>t()?n(e):e,t),plotContainsScarecrow=e=>!!(e&&e.itemId===`scarecrow`),applyDestructionYield=(e,t)=>t?.destructionYield?addItemToInventory(e,itemsMap[t.destructionYield.itemId],t.destructionYield.quantity):e,plotContainsLightningRod=e=>!!(e&&itemsMap[e.itemId]?.type===itemType.LIGHTNING_ROD),fieldHasLightningRod=e=>!!(e&&findInField(e,plotContainsLightningRod));function updateField(e,t){return e.map((e,n)=>e.map((e,a)=>t(e,a,n)))}var decrementItemFromInventory=(e,t,n=1)=>{let a=[...e.inventory],o=a.findIndex(({id:e})=>e===t);if(o===-1)return e;let{quantity:s}=a[o];return s>n?a[o]={...a[o],quantity:s-n}:a.splice(o,1),{...e,inventory:a}},waterField=e=>({...e,field:updateField(e.field,setWasWatered)}),applyPrecipitation=e=>{let{field:t}=e,n=0,a,o=[],s=[];if(shouldStormToday())if(fieldHasLightningRod(t)){let n={...getInventoryQuantityMap(e.inventory)},l=!1,u=!1;t=updateField(t,e=>{if(!e||!plotContainsLightningRod(e))return e;let t=itemsMap[e.itemId],a=(e.lightningStrikesSustained??0)+1;if(a>=(t.lightningStrikeCapacity??1/0)){let a=n[e.itemId]||0;return e.fertilizerType===fertilizerType.RAINBOW&&a>0?(n[e.itemId]=a-1,s.push(e.itemId),u=!0,{...e,lightningStrikesSustained:0}):(l=!0,o.push(t),null)}return{...e,lightningStrikesSustained:a}}),a={message:l?LIGHTNING_ROD_DESTROYED_MESSAGE:u?LIGHTNING_ROD_REPLANTED_MESSAGE:LIGHTNING_ROD_STRUCK_MESSAGE,severity:l?`error`:u?`success`:`info`}}else if(fieldHasScarecrow(t)){a={message:STORM_DESTROYS_SCARECROWS_MESSAGE,severity:`error`};let{scarecrow:o=0}=getInventoryQuantityMap(e.inventory);t=updateField(t,e=>plotContainsScarecrow(e)?o&&e&&e.fertilizerType===fertilizerType.RAINBOW?(o--,n++,e):null:e)}else a={message:STORM_MESSAGE,severity:`info`};else a={message:RAIN_MESSAGE,severity:`info`};e=decrementItemFromInventory({...e,field:t},`scarecrow`,n);for(let t of s)e=decrementItemFromInventory(e,t);for(let t of o)e=applyDestructionYield(e,t);return e={...e,newDayNotifications:[...e.newDayNotifications,a]},e=waterField(e),e},areHuggingMachinesInInventory=memoize(e=>e.some(({id:e})=>e===HUGGING_MACHINE_ITEM_ID)),modifyCow=(e,t,n)=>{let a=[...e.cowInventory],o=a.find(({id:e})=>e===t);if(!o)return e;let s=a.indexOf(o);return s===-1?e:(a[s]={...o,...n(o)},{...e,cowInventory:a})},changeCowAutomaticHugState=(e,t,n)=>n&&(t.isUsingHuggingMachine||!areHuggingMachinesInInventory(e.inventory))?e:(e=modifyCow(e,t.id,e=>({...e,isUsingHuggingMachine:n})),e=n?decrementItemFromInventory(e,HUGGING_MACHINE_ITEM_ID):addItemToInventory(e,itemsMap[HUGGING_MACHINE_ITEM_ID]),e),cowCanBeAdded=(e,t,n)=>{let{cowId1:a,cowId2:o}=t,s=a!==null&&o!==null,l=a===e.id||o===e.id;return!!n.find(({id:t})=>t===e.id)&&!s&&!l},changeCowBreedingPenResident=(e,t,n)=>{let{cowBreedingPen:a,cowInventory:o}=e,{cowId1:s,cowId2:l}=a,u=s===t.id||l===t.id,d={...a};if(n&&!cowCanBeAdded(t,a,o)||!n&&!u)return e;if(n){let e=s===null?`cowId1`:`cowId2`;d={...d,[e]:t.id}}else s===t.id&&(d={...d,cowId1:d.cowId2}),d={...d,cowId2:null};return{...e,cowBreedingPen:{...d,daysUntilBirth:3}}},changeCowName=(e,t,n)=>modifyCow(e,t,()=>({name:n.slice(0,30)})),doesInventorySpaceRemain=e=>inventorySpaceRemaining(e)>0,getChopWoodYieldRange=(e,t)=>{let n=AXE_WOOD_YIELD_RANGE[e];if(!n)return null;let[a,o]=n;return t?[a,o]:[Math.max(1,Math.floor(a/2)),Math.max(1,Math.floor(o/2))]},{SEED:SEED$5,GROWN:GROWN$11}=cropLifeStage,getFruitLifeStage=(e,t)=>{if((t??getTreeLifeStage(e))!==GROWN$11)return SEED$5;let{itemId:n,daysSinceLastHarvest:a=0}=e,o=itemsMap[n];if(!o)throw Error(`${n} is not a valid item`);let{fruitTimeline:s}=o;if(!s)throw Error(`${n} has no fruitTimeline`);return getLifeStageForTimeline(s,a)},modifyForestPlotAt=(e,t,n,a)=>{let{forest:o}=e,s=o[n];if(!s)return e;let l=[...s];l[t]=a(l[t]);let u=[...o];return u[n]=l,{...e,forest:u}},{GROWN:GROWN$10}=cropLifeStage,{DEAD:DEAD$2}=treeLifeStage,{UNAVAILABLE:UNAVAILABLE$1}=toolLevel,getWoodYield=(e,t)=>{let n=getChopWoodYieldRange(e,t);if(!n)return 0;let[a,o]=n;return a+Math.floor(random$1()*(o-a+1))},chopForestPlot=(e,t,n)=>{let a=e.forest[n]?.[t];if(!isPlantedTree(a)||e.toolLevels[toolType.AXE]===UNAVAILABLE$1||!doesInventorySpaceRemain(e))return e;let o=getTreeLifeStage(a);if(getFruitLifeStage(a,o)===GROWN$10){let t=itemsMap[a.itemId];t&&(e=addItemToInventory(e,t),e={...e,treeFruitsHarvested:{...e.treeFruitsHarvested,[t.id]:(e.treeFruitsHarvested[t.id]||0)+1}})}let s=itemsMap.wood;if(s){let t=getWoodYield(e.toolLevels[toolType.AXE],o===GROWN$10||o===DEAD$2);t>0&&(e=addItemToInventory(e,s,t))}return e={...e,treesChopped:e.treesChopped+1},modifyForestPlotAt(e,t,n,()=>null)},{SEED:SEED$4,GROWING:GROWING$2,GROWN:GROWN$9}=cropLifeStage,getCropLifeStage=e=>{let{itemId:t,daysWatered:n=0}=e,{cropTimeline:a}=itemsMap[t];if(!a)throw Error(`${t} has no cropTimeline`);return getLifeStageRange(a)[Math.floor(n)]||GROWN$9},getSeedItemIdFromFinalStageCropItemId=memoize(e=>{let t=Object.values(itemsMap).find(t=>{let{growsInto:n}=t;return Array.isArray(n)?n.includes(e):n===e})?.id;if(!t)throw Error(`Crop item ID ${e} does not have a corresponding seed`);return t},{cacheSize:Object.keys(itemsMap).length}),modifyFieldPlotAt=(e,t,n,a)=>{let{field:o}=e,s=[...o[n]];s[t]=a(s[t]);let l=[...o];return l[n]=s,{...e,field:l}},removeFieldPlotAt=(e,t,n)=>modifyFieldPlotAt(e,t,n,()=>null),{GROWN:GROWN$8}=cropLifeStage,clearPlot=(e,t,n)=>{let a=e.field[n][t],o=e.toolLevels[toolType.HOE];if(!a||a.isShoveled)return e;if(getPlotContentType(a)===itemType.LIGHTNING_ROD){let o=itemsMap[a.itemId];return e=removeFieldPlotAt(e,t,n),a.lightningStrikesSustained?e:applyDestructionYield(e,o)}if(getPlotContentType(a)===itemType.CROP&&getCropLifeStage(a)!==GROWN$8&&randomNumberService.isRandomNumberLessThan(HOE_LEVEL_TO_SEED_RECLAIM_RATE[o]||0)){let t=getSeedItemIdFromFinalStageCropItemId(a.itemId);e=addItemToInventory(e,itemsMap[t])}let s=itemsMap[a.itemId];return s.isReplantable&&!doesInventorySpaceRemain(e)?e:(e=removeFieldPlotAt(e,t,n),s.isReplantable||getPlotContentType(a)===itemType.WEED||getCropLifeStage(a)===GROWN$8?addItemToInventory(e,s):e)},computeCowInventoryForNextDay=e=>({...e,cowInventory:e.cowInventory.map(e=>({...e,daysOld:e.daysOld+1,daysSinceMilking:e.daysSinceMilking+1,daysSinceProducingFertilizer:(e.daysSinceProducingFertilizer||0)+1,happiness:Math.max(0,e.isUsingHuggingMachine?Math.min(1,e.happiness+2*COW_HUG_BENEFIT):e.happiness-COW_HUG_BENEFIT),happinessBoostsToday:e.isUsingHuggingMachine?3:0}))}),byteToHex=[];for(let e=0;e<256;++e)byteToHex.push((e+256).toString(16).slice(1));function unsafeStringify(e,t=0){return(byteToHex[e[t+0]]+byteToHex[e[t+1]]+byteToHex[e[t+2]]+byteToHex[e[t+3]]+`-`+byteToHex[e[t+4]]+byteToHex[e[t+5]]+`-`+byteToHex[e[t+6]]+byteToHex[e[t+7]]+`-`+byteToHex[e[t+8]]+byteToHex[e[t+9]]+`-`+byteToHex[e[t+10]]+byteToHex[e[t+11]]+byteToHex[e[t+12]]+byteToHex[e[t+13]]+byteToHex[e[t+14]]+byteToHex[e[t+15]]).toLowerCase()}var rnds8=new Uint8Array(16);function rng(){return crypto.getRandomValues(rnds8)}function v4(e,t,n){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():_v4(e,t,n)}function _v4(e,t,n){e||={};let a=e.random??e.rng?.()??rng();if(a.length<16)throw Error(`Random bytes length must be >= 16`);if(a[6]=a[6]&15|64,a[8]=a[8]&63|128,t){if(n||=0,n<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=a[e];return t}return unsafeStringify(a)}var generateCow=(e={})=>{let t=e.gender||chooseRandom(Object.values(genders)),n=e.color||chooseRandom(Object.values(standardCowColors)),a=e.id||v4(),o={baseWeight:Math.round(COW_STARTING_WEIGHT_BASE*(t===genders.MALE?MALE_COW_WEIGHT_MULTIPLIER:1)-200+random$1()*400),color:n,colorsInBloodline:{[n]:!0},daysOld:1,daysSinceMilking:0,daysSinceProducingFertilizer:0,gender:t,happiness:0,happinessBoostsToday:0,id:a,isBred:!1,isUsingHuggingMachine:!1,name:``,ownerId:``,originalOwnerId:``,timesTraded:0,weightMultiplier:1,...e};return o.name=getDefaultCowName(o),o},castToMoney=e=>Math.round(e*100)/100,applyLoanInterest=e=>{let t=moneyTotal(e.loanBalance,castToMoney(e.loanBalance*LOAN_INTEREST_RATE)),n=t>0?[...e.newDayNotifications,{severity:`warning`,message:LOAN_BALANCE_NOTIFICATION(``,t)}]:e.newDayNotifications;return{...e,loanBalance:t,newDayNotifications:n}},getPriceEventForCrop=e=>({itemId:e.id,daysRemaining:getCropLifecycleDuration(e)-1}),getFinalCropItemIdFromSeedItemId=(e,t=0)=>{let{growsInto:n}=itemsMap[e];return Array.isArray(n)?n[t]:n},getRandomUnlockedCrop=e=>{let t=chooseRandom(e),n=itemsMap[t],a=getFinalCropItemIdFromSeedItemId(t,Array.isArray(n.growsInto)?chooseRandomIndex(n.growsInto):0);if(!a)throw Error(`Seed item ID ${t} has no corresponding final crop ID`);return itemsMap[a]},createPriceEvent=(e,t,n)=>({...e,[n]:{...e[n],[t.itemId]:t}}),TYPE_CRASH=`priceCrashes`,TYPE_SURGE=`priceSurges`,generatePriceEvents=e=>{let t={...e.priceCrashes},n={...e.priceSurges},a=[...e.newDayNotifications],o;if(random$1()<.2){let{items:s}=getLevelEntitlements(levelAchieved(e.experience)),l=getRandomUnlockedCrop(filterItemIdsToSeeds(Object.keys(s))),{id:u}=l;if(!(t[u]||n[u])){let t=random$1()<.5?TYPE_CRASH:TYPE_SURGE;o=createPriceEvent(e,getPriceEventForCrop(l),t),a.push(t===TYPE_CRASH?{message:PRICE_CRASH(``,l),severity:`warning`}:{message:PRICE_SURGE(``,l),severity:`success`})}}return{...e,...o,newDayNotifications:a}},WineService=class{maturityDayMultiplier=3;getDaysToMature=e=>wineVarietyValueMap[e]*this.maturityDayMultiplier;isWineRecipe=e=>`recipeType`in e&&e.recipeType===recipeType.WINE;getMaxWineYield=({grape:e,inventory:t,cellarInventory:n,cellarSize:a})=>{let{[e.id]:o=0,[itemsMap.yeast?.id??``]:s=0}=getInventoryQuantityMap(t),l=a-n.length,u=Math.floor(o/50),d=Math.floor(s/getYeastRequiredForWine(e.variety));return Math.min(l,u,d)}},wineService=new WineService,getKegDisplayName=e=>wineService.isWineRecipe(e)?e.name:FERMENTED_CROP_NAME(``,e),CellarService=class{_uuid=v4;getItemInstancesInCellar=memoize((e,t)=>e.filter(e=>e.itemId===t.id).length,{cacheSize:Object.keys(fermentableItemsMap).length});generateKeg=e=>{let t={id:this._uuid(),itemId:e.id,daysUntilMature:e.daysToFerment??0};return wineService.isWineRecipe(e)&&(t.daysUntilMature=getYeastRequiredForWine(e.variety)),t};doesCellarSpaceRemain=(e,t)=>e.length<(PURCHASEABLE_CELLARS.get(t)?.space??0);doesKegSpoil=e=>{let t=itemsMap[e.itemId];return!wineService.isWineRecipe(t)}},cellarService=new CellarService,getKegSpoilageRate=e=>!cellarService.doesKegSpoil(e)||e.daysUntilMature>0?0:Math.abs(e.daysUntilMature)*KEG_SPOILAGE_RATE_MULTIPLIER,removeKegFromCellar=(e,t)=>{let{cellarInventory:n}=e,a=n.findIndex(({id:e})=>e===t);if(a===-1)return console.error(`removeKegFromCellar: kegId ${t} not found`),e;let o=[...n.slice(0,a),...n.slice(a+1,n.length)];return e={...e,cellarInventory:o},e},processCellarSpoilage=e=>{let{cellarInventory:t}=e,n=[...t];for(let t=n.length-1;t>-1;t--){let a=n[t],o=itemsMap[a.itemId],s=getKegSpoilageRate(a);!wineService.isWineRecipe(o)&&randomNumberService.isRandomNumberLessThan(s)&&(e=removeKegFromCellar(e,a.id),e={...e,newDayNotifications:[...e.newDayNotifications,{message:KEG_SPOILED_MESSAGE`${a}`,severity:`error`}]})}return e={...e},e},processCellar=e=>{e=processCellarSpoilage(e);let{cellarInventory:t}=e,n=[...t],a={};for(let e=0;e<n.length;e++){let t=n[e],o=t.daysUntilMature-1,s=itemsMap[t.itemId];if(wineService.isWineRecipe(s)&&t.daysUntilMature>0&&o<=0){let e=getKegDisplayName(s);a[e]=(a[e]||0)+1}n[e]={...t,daysUntilMature:o}}let o=[...e.newDayNotifications];return Object.keys(a).length&&o.push({message:KEGS_READY_TO_SELL(``,a),severity:`success`}),e={...e,cellarInventory:n,newDayNotifications:o},e},removeCowFromInventory=(e,t)=>{let n=[...e.cowInventory],{isUsingHuggingMachine:a}=t;return n.splice(n.indexOf(t),1),a&&(e=addItemToInventory(e,itemsMap[HUGGING_MACHINE_ITEM_ID])),e=changeCowBreedingPenResident(e,t,!1),{...e,cowInventory:n}},processCowAttrition=e=>{let t=[...e.newDayNotifications],n=[...e.cowInventory];for(let a=0;a<n.length;a++){let o=n[a];Number(o.weightMultiplier.toFixed(2))===.5&&(e=removeCowFromInventory(e,o),t.push({message:COW_ATTRITION_MESSAGE(``,o),severity:`error`}))}return{...e,newDayNotifications:t}},findCowById=memoize((e,t)=>e.find(e=>t===e.id)),generateOffspringCow=(e,t,n,a={})=>{if(e.gender===t.gender)throw Error(`${JSON.stringify(e)} ${JSON.stringify(t)} cannot produce offspring because they have the same gender`);let o=e.gender===genders.MALE?e:t,s=e.gender===genders.MALE?t:e,l={[o.color]:!0,[s.color]:!0,...o.colorsInBloodline,...s.colorsInBloodline};return delete l[cowColors.RAINBOW],generateCow({color:Object.keys(l).length===Object.keys(standardCowColors).length?cowColors.RAINBOW:chooseRandom([s.color,o.color]),colorsInBloodline:l,baseWeight:(o.baseWeight+s.baseWeight)/2,isBred:!0,ownerId:n,originalOwnerId:n,...a})},processCowBreeding=e=>{let{cowBreedingPen:t,cowInventory:n,playerId:a,newDayNotifications:o,purchasedCowPen:s}=e,{cowId1:l,cowId2:u}=t;if(!u)return e;let d=l?findCowById(n,l):null,f=u?findCowById(n,u):null;if(!d||!f||d.gender===f.gender)return e;let m=d.happiness>=.8&&f.happiness>=.8?t.daysUntilBirth-1:3,h=PURCHASEABLE_COW_PENS.get(s),v=h&&n.length<h.cows&&m===0,y=v?generateOffspringCow(d,f,a):null;if(y){let t=y.color===cowColors.RAINBOW?EXPERIENCE_VALUES.RAINBOW_COW_BRED:EXPERIENCE_VALUES.COW_BRED;e=addExperience(e,t)}return{...e,cowInventory:v&&y?[...n,y]:n,cowBreedingPen:{...t,daysUntilBirth:v?3:m},newDayNotifications:y?[...o,{message:COW_BORN_MESSAGE(``,d,f,y),severity:`success`}]:o}},getCowFertilizerItem=({color:e})=>itemsMap[e===cowColors.RAINBOW?`rainbow-fertilizer`:`fertilizer`],scaleNumber=(e,t,n,a,o)=>(e-t)*(o-a)/(n-t)+a,getCowFertilizerProductionRate=e=>e.gender===genders.MALE?scaleNumber(e.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,7,1):1/0,processCowFertilizerProduction=e=>{let t=[...e.cowInventory],n=[...e.newDayNotifications],{length:a}=t,o={},s=e.hasProducedRainbowFertilizer;for(let n=0;n<a;n++){let a=t[n];if((a.daysSinceProducingFertilizer||0)>getCowFertilizerProductionRate(a)){t[n]={...a,daysSinceProducingFertilizer:0};let l=getCowFertilizerItem(a),{name:u}=l;if(!doesInventorySpaceRemain(e))break;o[u]=(o[u]||0)+1,e=addItemToInventory(e,l),l.id===`rainbow-fertilizer`&&(s=!0)}}return Object.keys(o).length&&n.push({message:FERTILIZERS_PRODUCED(``,o),severity:`success`}),{...e,cowInventory:t,hasProducedRainbowFertilizer:s,newDayNotifications:n}},clampNumber=(e,t,n)=>e<=t?t:e>=n?n:e,processFeedingCows=e=>{let t=[...e.cowInventory],{length:n}=t,a=[...e.newDayNotifications],o=[...e.inventory],s=o[o.findIndex(({id:e})=>e===COW_FEED_ITEM_ID)],l=s?s.quantity:0,u=0;for(let e=0;e<n;e++){let n=t[e],a=u<l;t[e]={...n,weightMultiplier:clampNumber(a?n.weightMultiplier+COW_WEIGHT_MULTIPLIER_FEED_BENEFIT:n.weightMultiplier-COW_WEIGHT_MULTIPLIER_FEED_BENEFIT,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM)},a&&u++}return l<=n&&n>0&&a.push({message:OUT_OF_COW_FEED_NOTIFICATION,severity:`error`}),decrementItemFromInventory({...e,cowInventory:t,inventory:o,newDayNotifications:a},COW_FEED_ITEM_ID,u)},incrementPlotContentAge=e=>e&&getPlotContentType(e)===itemType.CROP?{...e,daysOld:(e.daysOld||0)+1,daysWatered:(e.daysWatered||0)+(e.wasWateredToday?1+(e.fertilizerType===fertilizerType.NONE?0:FERTILIZER_BONUS):0)}:e,updatePlotShoveledState=e=>e&&e.isShoveled&&e.daysUntilClear!==void 0&&e.daysUntilClear>1?{...e,daysUntilClear:e.daysUntilClear-1}:e&&!e.isShoveled?e:null,getPlotContentFromItemId=e=>({itemId:e,fertilizerType:fertilizerType.NONE});function spawnWeeds(e){if(e)return e;let t=null;return randomNumberService.isRandomNumberLessThan(.15)&&(t=getPlotContentFromItemId(weed.id)),t}var fieldReducer=(e,t)=>t(e),resetWasWatered=e=>setWasWateredProperty(e,!1),fieldUpdaters=[incrementPlotContentAge,resetWasWatered,spawnWeeds,updatePlotShoveledState],processField=e=>({...e,field:updateField(e.field,e=>fieldUpdaters.reduce(fieldReducer,e))}),{GROWN:GROWN$7}=cropLifeStage,{NONE:NONE$2,RAINBOW:RAINBOW$1}=fertilizerType,incrementTreeAge=e=>{if(!e)return null;let t=e.daysOld+1;if(!isPlantedTree(e))return{...e,daysOld:t};let n=e.fertilizerType!=null&&e.fertilizerType!==NONE$2,a=e.fertilizerType===RAINBOW$1,o=(e.daysGrown??e.daysOld)+(n?1+FERTILIZER_BONUS:1),s={...e,daysOld:t,daysGrown:o};return{...s,daysSinceLastHarvest:getTreeLifeStage(s)===GROWN$7?s.daysSinceLastHarvest+(a?1+FERTILIZER_BONUS:1):s.daysSinceLastHarvest}},processForest=e=>{let t=e.forest.map(e=>e.map(incrementTreeAge)),n={};t.forEach((t,a)=>t.forEach((t,o)=>{let s=e.forest[a]?.[o];if(!isPlantedTree(s)||!isPlantedTree(t)||getFruitLifeStage(s)===GROWN$7||getFruitLifeStage(t)!==GROWN$7)return;let{name:l}=itemsMap[t.itemId]??{};l&&(n[l]=(n[l]||0)+1)}));let a=[...e.newDayNotifications];return Object.keys(n).length&&a.push({message:FRUIT_READY_TO_HARVEST(``,n),severity:`success`}),{...e,forest:t,newDayNotifications:a}},getCowMilkItem=({color:e,happiness:t})=>{if(e===cowColors.BROWN)return chocolateMilk;let n=e===cowColors.RAINBOW;return t<1/3?n?rainbowMilk1:milk1:t<2/3?n?rainbowMilk2:milk2:n?rainbowMilk3:milk3},getCowMilkRate=e=>e.gender===genders.FEMALE?scaleNumber(e.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,7,2):1/0,processMilkingCows=e=>{let t=[...e.cowInventory],n=[...e.newDayNotifications],{length:a}=t,o={};for(let n=0;n<a;n++){let a=t[n];if(a.daysSinceMilking>getCowMilkRate(a)){t[n]={...a,daysSinceMilking:0};let s=getCowMilkItem(a),{name:l}=s;if(!doesInventorySpaceRemain(e))break;o[l]=(o[l]||0)+1,e=addItemToInventory(e,s)}}return Object.keys(o).length&&n.push({message:MILKS_PRODUCED(``,o),severity:`success`}),{...e,cowInventory:t,newDayNotifications:n}},doesPlotContainCrop=e=>e!==null&&getPlotContentType(e)===itemType.CROP;function forEachPlot(e,t){e.field.forEach((e,n)=>e.forEach((e,a)=>t(e,a,n)))}var applyCrows=e=>{let{field:t,purchasedField:n}=e;if(fieldHasScarecrow(t)||randomNumberService.isRandomNumberLessThan(.6))return e;let a=[...e.newDayNotifications],o=[],s=[];forEachPlot(e,(t,n,a)=>{doesPlotContainCrop(e.field[a][n])&&s.push({x:n,y:a})});let l=Math.min(s.length,Math.floor(random$1()*(n+1)*5)),u=0;for(let t=0;t<l;t++){let t=Math.floor(random$1()*s.length),n=s.splice(t,1)[0];e=modifyFieldPlotAt(e,n.x,n.y,()=>null),u+=1}return u>0&&o.push(CROWS_DESTROYED(``,u)),o.length&&a.push({message:o.join(`
|
|
153
153
|
|
|
154
|
-
`),severity:`error`}),{...e,newDayNotifications:a}},processNerfs=e=>applyChanceEvent([[()=>!0,applyCrows]],e),getRangeCoords=(e,t,n)=>{let a=2*e+1,o=t-e,s=n-e;return Array(a).fill(null).map((e,t)=>Array(a).fill(null).map((e,n)=>({x:o+n,y:s+t})))},processSprinklers=e=>{let{field:t,experience:n}=e,a=new Map,o=[...t],{sprinklerRange:s}=getLevelEntitlements(levelAchieved(n));return t.forEach((n,l)=>{n.forEach((n,u)=>{!n||getPlotContentType(n)!==itemType.SPRINKLER||getRangeCoords(s,u,l).flat().forEach(({x:n,y:s})=>{let l=t[s];if(!l)return;let u=l[n];u&&getPlotContentType(u)===itemType.CROP&&(a.has(u)||(o=modifyFieldPlotAt({...e,field:o},n,s,setWasWatered).field),a.set(u,{x:n,y:s}))})})}),{...e,field:o}},shouldPrecipitateToday=()=>random$1()<PRECIPITATION_CHANCE,processWeather=e=>applyChanceEvent([[shouldPrecipitateToday,applyPrecipitation]],e),rotateNotificationLogs=e=>{let t=[...e.notificationLog],{dayCount:n,newDayNotifications:a}=e,o={error:[],info:[],success:[],warning:[]};return a.forEach(({message:e,severity:t})=>o[t].push(e)),a.length&&t.unshift({day:n,notifications:o}),t.length=Math.min(t.length,14),{...e,notificationLog:t}},get7DayAverage=e=>e.reduce((e,t)=>moneyTotal(e,t),0)/7,getProfit=(e,t)=>moneyTotal(e,t),updateFinancialRecords=e=>{let{profitabilityStreak:t,todaysLosses:n,todaysRevenue:a,record7dayProfitAverage:o,recordProfitabilityStreak:s}=e,{historicalDailyLosses:l,historicalDailyRevenue:u,recordSingleDayProfit:d}=e;l=[n,...l].slice(0,7),u=[a,...u].slice(0,7);let f=get7DayAverage(l.map((e,t)=>moneyTotal(u[t],e))),m=a+n>0?t+1:0;return{...e,historicalDailyLosses:l,historicalDailyRevenue:u,profitabilityStreak:m,record7dayProfitAverage:Math.max(o,f),recordProfitabilityStreak:Math.max(s,m),recordSingleDayProfit:Math.max(d,getProfit(a,n)),todaysLosses:0,todaysRevenue:0}},updateInventoryRecordsForNextDay=e=>({...e,todaysPurchases:{},todaysStartingInventory:e.inventory.reduce((e,{id:t,quantity:n})=>(e[t]=n,e),{})}),decrementPriceEventDays=e=>Object.keys(e).reduce((t,n)=>{let a=e[n];if(!a)return t;let{itemId:o,daysRemaining:s}=a;return s>1&&(t[n]={itemId:o,daysRemaining:s-1}),t},{}),updatePriceEvents=e=>{let{priceCrashes:t,priceSurges:n}=e;return{...e,priceCrashes:decrementPriceEventDays(t),priceSurges:decrementPriceEventDays(n)}},adjustItemValues=e=>({...e,historicalValueAdjustments:[e.valueAdjustments],valueAdjustments:generateValueAdjustments(e.priceCrashes,e.priceSurges)}),computeStateForNextDay=(e,t=!1)=>(e=(t?[processField]:[computeCowInventoryForNextDay,processCowBreeding,processField,processForest,processNerfs,processWeather,processSprinklers,processFeedingCows,processCowAttrition,processMilkingCows,processCowFertilizerProduction,processCellar,updatePriceEvents,updateFinancialRecords,updateInventoryRecordsForNextDay,generatePriceEvents,applyLoanInterest,rotateNotificationLogs]).concat([adjustItemValues]).reduce((e,t)=>t({...e}),{...e,cowForSale:generateCow(),dayCount:e.dayCount+1,todaysNotifications:[]}),e.dayCount%365==0&&(e=addExperience(e,EXPERIENCE_VALUES.NEW_YEAR)),e),{FERTILIZE:FERTILIZE$3,OBSERVE:OBSERVE$4}=fieldMode,fertilizerItemIdToTypeMap={[itemsMap.fertilizer.id]:fertilizerType.STANDARD,[itemsMap[`rainbow-fertilizer`].id]:fertilizerType.RAINBOW},fertilizePlot=(e,t,n)=>{let{field:a,selectedItemId:o}=e,s=a[n][t];if(!s||itemsMap[o]?.type!==itemType.FERTILIZER)return e;let{id:l}=itemsMap[o],u=e.inventory.find(e=>e.id===l),d=getPlotContentType(s);if(!s||!u||s.fertilizerType!==fertilizerType.NONE||o===`fertilizer`&&d!==itemType.CROP||o===`rainbow-fertilizer`&&d!==itemType.CROP&&d!==itemType.SCARECROW)return e;let{quantity:f}=u;e=decrementItemFromInventory(e,l);let m=f>1;return e=modifyFieldPlotAt(e,t,n,e=>e&&{...e,fertilizerType:fertilizerItemIdToTypeMap[l]}),{...e,fieldMode:m?FERTILIZE$3:OBSERVE$4,selectedItemId:m?l:``}},forRange=(e,t,n,a,o,...s)=>{let l=Math.max(a-n,0),u=Math.min(a+n,e.field[0].length-1),d=Math.max(o-n,0),f=Math.min(o+n,e.field.length-1);for(let n=d;n<=f;n++)for(let a=l;a<=u;a++)e=t(e,a,n,...s);return e},{GROWN:GROWN$6}=cropLifeStage,{UNAVAILABLE}=toolLevel,harvestForestPlot=(e,t,n)=>{let a=e.forest[n]?.[t];if(!a||!(`itemId`in a)||e.toolLevels[toolType.PICKER_POLE]===UNAVAILABLE||!doesInventorySpaceRemain(e)||getFruitLifeStage(a)!==GROWN$6)return e;let o=itemsMap[a.itemId];if(!o)return e;let s=PICKER_POLE_LEVEL_TO_FRUIT_YIELD[e.toolLevels[toolType.PICKER_POLE]]??1,l=Math.min(s,inventorySpaceRemaining(e));return e=addItemToInventory(e,o,s),e={...e,treeFruitsHarvested:{...e.treeFruitsHarvested,[o.id]:(e.treeFruitsHarvested[o.id]||0)+l}},modifyForestPlotAt(e,t,n,e=>e&&`itemId`in e?{...e,daysSinceLastHarvest:0}:e)},getCropFromItemId=e=>({...getPlotContentFromItemId(e),daysOld:0,daysWatered:0,wasWateredToday:!1}),plantInPlot=(e,t,n,a)=>{if(!a||!e.inventory.some(({id:e})=>e===a))return e;let{field:o}=e;if(o[n][t])return e;let{growsInto:s}=itemsMap[a],l=getFinalCropItemIdFromSeedItemId(a,Array.isArray(s)?chooseRandomIndex(s):0);return l?(e=modifyFieldPlotAt(e,t,n,()=>getCropFromItemId(l)),e=decrementItemFromInventory(e,a),e=processSprinklers(e),{...e,selectedItemId:e.inventory.find(({id:e})=>e===a)?a:``}):e},{GROWN:GROWN$5}=cropLifeStage;function getHarvestedQuantity(e){let t=1;switch(e.toolLevels[toolType.SCYTHE]){case toolLevel.BRONZE:t+=1;break;case toolLevel.IRON:t+=2;break;case toolLevel.SILVER:t+=3;break;case toolLevel.GOLD:t+=4;break;default:t=1}return t}function harvestCrops(e,t,n){let a=e.field[n][t];if(!a)return e;let o=itemsMap[a.itemId];if(!o)return e;let s=getSeedItemIdFromFinalStageCropItemId(o.id),l=a.fertilizerType===fertilizerType.RAINBOW,u=getHarvestedQuantity(e);e=removeFieldPlotAt(e,t,n),e=addItemToInventory(e,o,u);let{cropType:d}=o;if(!d)return e;l&&getInventoryQuantityMap(e.inventory)[s]>0&&(e=plantInPlot(e,t,n,s),e=modifyFieldPlotAt(e,t,n,e=>e&&{...e,fertilizerType:fertilizerType.RAINBOW}));let{cropsHarvested:f}=e;return{...e,cropsHarvested:{...f,[d]:(f[d]||0)+u}}}function harvestWeed(e,t,n){let a=e.field[n][t];if(!a)return e;let o=itemsMap[a.itemId],s=getHarvestedQuantity(e);return e=removeFieldPlotAt(e,t,n),e=addItemToInventory(e,o,s),e}var harvestPlot=(e,t,n)=>{let a=e.field[n][t];return!a||!doesInventorySpaceRemain(e)?e:getPlotContentType(a)===itemType.CROP&&getCropLifeStage(a)===GROWN$5?harvestCrops(e,t,n):getPlotContentType(a)===itemType.WEED?harvestWeed(e,t,n):e},hugCow=(e,t)=>modifyCow(e,t,e=>e.happinessBoostsToday>=3?e:{happiness:Math.min(1,e.happiness+COW_HUG_BENEFIT),happinessBoostsToday:e.happinessBoostsToday+1}),maxYieldOfRecipe=memoize(({ingredients:e},t)=>{let n=getInventoryQuantityMap(t);return Math.min(...Object.keys(e).map(t=>Math.floor(n[t]/e[t])))||0},{}),canMakeRecipe=(e,t,n)=>maxYieldOfRecipe(e,t)>=n,consumeIngredients=(e,t,n=1,a=0)=>t.ingredients&&!canMakeRecipe(t,e.inventory,n)?e:(e=addExperience(e,a),Object.keys(t.ingredients||{}).reduce((e,a)=>decrementItemFromInventory(e,a,t.ingredients[a]*n),e)),EXPERIENCE_FOR_RECIPE={[recipeType.FERMENTATION]:EXPERIENCE_VALUES.FERMENTATION_RECIPE_MADE,[recipeType.FORGE]:EXPERIENCE_VALUES.FORGE_RECIPE_MADE,[recipeType.KITCHEN]:EXPERIENCE_VALUES.KITCHEN_RECIPE_MADE,[recipeType.RECYCLING]:EXPERIENCE_VALUES.RECYCLING_RECIPE_MADE,[recipeType.WOOD_CHIPPER]:EXPERIENCE_VALUES.WOOD_CHIPPER_RECIPE_MADE},makeRecipe=(e,t,n=1)=>{let a=e;return e=consumeIngredients(e,t,n,EXPERIENCE_FOR_RECIPE[t.recipeType]||0),e===a?e:(e={...e,recipesMade:{...e.recipesMade,[t.id]:(e.recipesMade[t.id]||0)+n}},addItemToInventory(e,t,n))},saltRequirementMultiplier=2/3,getSaltRequirementsForFermentationRecipe=e=>{let{daysToFerment:t=0,tier:n=1}=e;return Math.ceil((t??0)*saltRequirementMultiplier)*n},getMaxYieldOfFermentationRecipe=(e,t,n,a)=>{let{[e.id]:o=0,[itemsMap.salt.id]:s=0}=getInventoryQuantityMap(t),l=Math.floor(s/getSaltRequirementsForFermentationRecipe(e));return Math.min(a-n.length,o,l)},addKegToCellarInventory=(e,t)=>{let{cellarInventory:n}=e;return{...e,cellarInventory:[...n,t]}},makeFermentationRecipe=(e,t,n=1)=>{let{inventory:a,cellarInventory:o,purchasedCellar:s}=e,{space:l}=PURCHASEABLE_CELLARS.get(s)??{space:0};if(getMaxYieldOfFermentationRecipe(t,a,o,l)<n)return e;for(let a=0;a<n;a++){let n=cellarService.generateKeg(t);e=addKegToCellarInventory(e,n)}let u=getSaltRequirementsForFermentationRecipe(t);return e=decrementItemFromInventory(e,t.id,n),e=decrementItemFromInventory(e,itemsMap.salt.id,n*u),e},makeWine=(e,t,n=1)=>{let{inventory:a,cellarInventory:o,purchasedCellar:s}=e,{space:l}=PURCHASEABLE_CELLARS.get(s)??{space:0},u=wineService.getMaxWineYield({grape:t,inventory:a,cellarInventory:o,cellarSize:l}),d=itemsMap[t.wineId],f=Math.min(n,u);for(let t=0;t<f;t++){let t=cellarService.generateKeg(d);e=addKegToCellarInventory(e,t)}e=decrementItemFromInventory(e,t.id,f*50);let m=getYeastRequiredForWine(t.variety);return e=decrementItemFromInventory(e,itemsMap.yeast.id,f*m),e};function randomChoice(e){let t=0,n=[];for(let a of e)t+=a.weight,n.push(a);n.sort((e,t)=>e.weight-t.weight);let a=random$1()*t,o,s=0;for(let e in n){if(o=n[e],a<o.weight+s)return o;s+=o.weight}return n[n.length-1]}var Factory=class{generate(){throw Error(`generate() must be implemented by subclass`)}},SPAWNABLE_ORES=[goldOre,ironOre,bronzeOre,silverOre],OreFactory=class extends Factory{oreOptions=[];constructor(){super();for(let e of SPAWNABLE_ORES)this.oreOptions.push({ore:e,weight:e.spawnChance||0})}generate(){return[this.spawn()]}spawn(){return randomChoice(this.oreOptions).ore}},CoalFactory=class extends Factory{generate(){let e=[],t=chooseRandom([1,1,1,2,3]);for(let n=0;n<t;n++)e.push(this.spawnCoal());return e.push(this.spawnStone()),e}spawnCoal(){return coal$1}spawnStone(){return stone}},spawnableResources=[{resource:stone,spawnChance:STONE_SPAWN_CHANCE},{resource:saltRock,spawnChance:SALT_ROCK_SPAWN_CHANCE},{resource:coal$1,spawnChance:COAL_SPAWN_CHANCE}],StoneFactory=class extends Factory{generate(){let e=[];for(let{resource:t,spawnChance:n}of spawnableResources)randomNumberService.isRandomNumberLessThan(n)&&e.push(t);return e}},factoryInstances={},instance=null,ResourceFactory=class e{resourceOptions;constructor(){this.resourceOptions=[{weight:ORE_SPAWN_CHANCE,itemType:itemType.ORE},{weight:COAL_SPAWN_CHANCE,itemType:itemType.FUEL},{weight:STONE_SPAWN_CHANCE,itemType:itemType.STONE}]}static instance(){return instance||=new e,instance}static generateFactoryInstance(e){switch(e){case itemType.STONE:return new StoneFactory;case itemType.FUEL:return new CoalFactory;case itemType.ORE:return new OreFactory;default:return null}}static getFactoryForItemType=t=>(factoryInstances[t]||(factoryInstances[t]=e.generateFactoryInstance(t)),factoryInstances[t]);generateResources(t){let n=[],a=RESOURCE_SPAWN_CHANCE;switch(t){case toolLevel.BRONZE:a+=.1;break;case toolLevel.IRON:a+=.2;break;case toolLevel.SILVER:a+=.3;break;case toolLevel.GOLD:a+=.5;break;default:}if(randomNumberService.isRandomNumberLessThan(a)){let t=randomChoice(this.resourceOptions),a=e.getFactoryForItemType(t.itemType);if(a){let e=a.generate();n=Array.isArray(e)?e:[e]}}return n}},daysUntilClearPeriods=[1,2,2,3],minePlot=(e,t,n)=>{let{field:a}=e;if(a[n][t])return e;if(!doesInventorySpaceRemain(e))return showNotification(e,INVENTORY_FULL_NOTIFICATION);let o=e.toolLevels[toolType.SHOVEL],s=ResourceFactory.instance().generateResources(o),[l]=s,u=chooseRandom(daysUntilClearPeriods);if(l){let e=s.map(({spawnChance:e})=>e).filter(e=>e!=null),t=Math.min(...e);u+=Math.round(random$1()*(1-t)*10)}for(let t of s)e=addItemToInventory(e,t);return e=modifyFieldPlotAt(e,t,n,()=>({itemId:``,fertilizerType:fertilizerType.NONE,isShoveled:!0,daysUntilClear:u,oreId:l?.id??null})),{...e}},{FERTILIZE:FERTILIZE$2,OBSERVE:OBSERVE$3}=fieldMode,mulchItemIdToTypeMap={mulch:fertilizerType.STANDARD,"rainbow-mulch":fertilizerType.RAINBOW},mulchForestPlot=(e,t,n)=>{let{forest:a,selectedItemId:o}=e,s=a[n]?.[t];if(!s||!isPlantedTree(s)||itemsMap[o]?.type!==itemType.MULCH)return e;let l=o,u=e.inventory.find(e=>e.id===l);if(!u||(s.fertilizerType??fertilizerType.NONE)!==fertilizerType.NONE)return e;let{quantity:d}=u;e=decrementItemFromInventory(e,l);let f=d>1;return e={...e,mulchApplied:{...e.mulchApplied,[l]:(e.mulchApplied[l]||0)+1}},e=modifyForestPlotAt(e,t,n,e=>!e||!isPlantedTree(e)?e:{...e,fertilizerType:mulchItemIdToTypeMap[l]}),{...e,fieldMode:f?FERTILIZE$2:OBSERVE$3,selectedItemId:f?l:``}},offerCow=(e,t)=>(e={...e,cowIdOfferedForTrade:t},e),getTreeDeathChance=e=>Math.min(TREE_DEATH_CHANCE_MAX,TREE_DEATH_CHANCE_BASE+e*TREE_DEATH_CHANCE_INCREMENT_PER_DAY),MAX_ITERATIONS=1e3,getRandomLifespanExtension=()=>{let e=0;for(;e<MAX_ITERATIONS&&random$1()>=getTreeDeathChance(e);)e++;return e},getRandomizedLifespan=e=>{let t=e*(1-random$1()*TREE_LIFESPAN_VARIANCE_MAX);return Math.round(t+getRandomLifespanExtension())},{NONE:NONE$1}=fertilizerType,plantTreeInPlot=(e,t,n,a)=>{if(!a||!e.inventory.some(({id:e})=>e===a))return e;let o=e.forest[n];if(!o||o[t])return e;let s=getFinalCropItemIdFromSeedItemId(a);if(!s)return e;let l=itemsMap[s]?.lifespan,u=l===void 0?void 0:getRandomizedLifespan(l);return e=modifyForestPlotAt(e,t,n,()=>({itemId:s,daysOld:0,daysSinceLastHarvest:0,daysGrown:0,fertilizerType:NONE$1,...u!==void 0&&{lifespan:u}})),e=decrementItemFromInventory(e,a),{...e,selectedForestItemId:e.inventory.find(({id:e})=>e===a)?a:``}},prependPendingPeerMessage=(e,t,n=`info`)=>({...e,pendingPeerMessages:[{playerId:e.playerId,message:t,severity:n},...e.pendingPeerMessages].slice(0,5)}),purchaseCombine=(e,t)=>{let{money:n,purchasedCombine:a}=e;if(a>=t)return e;let o=PURCHASEABLE_COMBINES.get(t)?.price||0;return{...e,purchasedCombine:t,money:moneyTotal(n,-o)}},updateLearnedRecipes=e=>({...e,learnedRecipes:Object.keys(recipesMap).reduce((t,n)=>(recipesMap[n].condition(e)&&(t[n]=!0),t),{})}),purchaseComposter=(e,t)=>{let{money:n,purchasedComposter:a}=e;return a>=t?e:(e={...e,purchasedComposter:t,money:moneyTotal(n,-(PURCHASEABLE_COMPOSTERS.get(t)?.price??0))},e=showNotification(e,RECYCLING_AVAILABLE_NOTIFICATION),e=addExperience(e,EXPERIENCE_VALUES.COMPOSTER_ACQUIRED),updateLearnedRecipes(e))},getCowWeight=({baseWeight:e,weightMultiplier:t})=>Math.round(e*t),getCowValue=(e,t=!1)=>t?getCowWeight(e)*clampNumber(scaleNumber(e.daysOld,1,100,0,1),0,1):getCowWeight(e)*1.5,purchaseCow=(e,t)=>{let{cowInventory:n,cowColorsPurchased:a,playerId:o,money:s,purchasedCowPen:l}=e,{color:u}=t,d=getCowValue(t,!1);return s<d||l===0||n.length>=(PURCHASEABLE_COW_PENS.get(l)?.cows??0)?e:(e=addCowToInventory(e,{...t,ownerId:o,originalOwnerId:o}),{...e,cowColorsPurchased:{...a,[u]:(a[u]||0)+1},money:moneyTotal(s,-d),cowForSale:generateCow()})},purchaseCowPen=(e,t)=>{let{money:n,purchasedCowPen:a}=e;if(a>=t)return e;let o=PURCHASEABLE_COW_PENS.get(t);if(!o)return e;let{cows:s,price:l}=o;e=showNotification(e,COW_PEN_PURCHASED(``,s),`success`);let u=t>1?EXPERIENCE_VALUES.COW_PEN_EXPANDED:EXPERIENCE_VALUES.COW_PEN_ACQUIRED;return e=addExperience(e,u),{...e,purchasedCowPen:t,money:moneyTotal(n,-l)}},purchaseCellar=(e,t)=>{let{money:n,purchasedCellar:a}=e;if(a>=t)return e;let o=PURCHASEABLE_CELLARS.get(t);if(!o)return e;let{price:s,space:l}=o;e=showNotification(e,CELLAR_PURCHASED(``,l),`success`);let u=t>1?EXPERIENCE_VALUES.CELLAR_EXPANDED:EXPERIENCE_VALUES.CELLAR_ACQUIRED;return e=addExperience(e,u),{...e,purchasedCellar:t,money:moneyTotal(n,-s)}},nullArray=memoize(e=>Object.freeze(Array(e).fill(null)),{cacheSize:30}),purchaseField=(e,t)=>{let{field:n,money:a,purchasedField:o}=e;if(o>=t)return e;e=addExperience(e,EXPERIENCE_VALUES.FIELD_EXPANDED);let s=PURCHASEABLE_FIELD_SIZES.get(t);if(!s)return e;let{columns:l,price:u,rows:d}=s;return{...e,purchasedField:t,field:nullArray(d).map((e,t)=>nullArray(l).map((e,a)=>n[t]&&n[t][a]||null)),money:moneyTotal(a,-u)}},purchaseForest=(e,t)=>{let{forest:n,money:a,purchasedForest:o}=e;if(o>=t)return e;e=addExperience(e,EXPERIENCE_VALUES.FOREST_EXPANDED);let s=PURCHASABLE_FOREST_SIZES.get(t);if(!s)return e;let{columns:l,price:u,rows:d}=s,f=t===1?FOREST_AVAILABLE_NOTIFICATION:FOREST_EXPANDED`${d*l}`;return e=showNotification(e,f,`success`),{...e,purchasedForest:t,forest:nullArray(d).map((e,t)=>nullArray(l).map((e,a)=>n[t]&&n[t][a]||null)),money:moneyTotal(a,-u)}},getAdjustedItemValue=(e,t)=>Number(((e[t]||1)*itemsMap[t].value).toFixed(2)),purchaseItem=(e,t,n=1)=>{let{money:a,todaysPurchases:o,valueAdjustments:s}=e,l=Math.min(n,inventorySpaceRemaining(e));if(l===0)return e;let u=getAdjustedItemValue(s,t.id)*l;return u>a?e:(e=prependPendingPeerMessage(e,PURCHASED_ITEM_PEER_NOTIFICATION(``,n,t)),addItemToInventory({...e,money:moneyTotal(a,-u),todaysPurchases:{...o,[t.id]:(o[t.id]||0)+l}},t,l))},purchaseSmelter=(e,t)=>{let{money:n,purchasedSmelter:a}=e;return a>=t?e:(e={...e,purchasedSmelter:t,money:moneyTotal(n,-(PURCHASEABLE_SMELTERS.get(t)?.price??0))},e=showNotification(e,FORGE_AVAILABLE_NOTIFICATION),e=addExperience(e,EXPERIENCE_VALUES.SMELTER_ACQUIRED),updateLearnedRecipes(e))},getCostOfNextStorageExpansion=e=>500+(e-100)/100*50,purchaseStorageExpansion=e=>{let{money:t,inventoryLimit:n}=e,a=getCostOfNextStorageExpansion(n);return t<a||n===-1?e:{...e,inventoryLimit:n+100,money:moneyTotal(t,-a)}},purchaseWoodChipper=(e,t)=>{let{money:n,purchasedWoodChipper:a}=e;return a>=t?e:(e={...e,purchasedWoodChipper:t,money:moneyTotal(n,-(PURCHASEABLE_WOOD_CHIPPERS.get(t)?.price??0))},e=showNotification(e,WOOD_CHIPPER_AVAILABLE_NOTIFICATION),e=addExperience(e,EXPERIENCE_VALUES.WOOD_CHIPPER_ACQUIRED),updateLearnedRecipes(e))},removePeer=(e,t)=>{let n={...e.peers};return delete n[t],{...e,peers:n,activePlayers:(e.activePlayers??1)-1}},selectCow=(e,{id:t})=>({...e,selectedCowId:t}),cowColorToIdMap={[cowColors.BLUE]:`blue`,[cowColors.BROWN]:`brown`,[cowColors.GREEN]:`green`,[cowColors.ORANGE]:`orange`,[cowColors.PURPLE]:`purple`,[cowColors.RAINBOW]:`rainbow`,[cowColors.WHITE]:`white`,[cowColors.YELLOW]:`yellow`},getCowColorId=({color:e})=>`${cowColorToIdMap[e]}-cow`,sellCow=(e,t)=>{let{cowsSold:n}=e,a=getCowColorId(t),o=getCowValue(t,!0);e=removeCowFromInventory(e,t),e=addRevenue(e,o);let s={...n,[a]:(n[a]||0)+1};return e={...e,cowsSold:s},e},getResaleValue=({id:e})=>itemsMap[e].value/2,getSalePriceMultiplier=(e={})=>{let t=1;return e[`i-am-rich-3`]?t+=I_AM_RICH_BONUSES[2]:e[`i-am-rich-2`]?t+=I_AM_RICH_BONUSES[1]:e[`i-am-rich-1`]&&(t+=I_AM_RICH_BONUSES[0]),t},inventory$1=[cowFeed$1,huggingMachine],inventory=[appleSapling,bananaSapling,mulch,asparagusSeed,carrotSeed,cornSeed,grapeSeed,garlicSeed,jalapenoSeed,oliveSeed,onionSeed,peaSeed,potatoSeed,pumpkinSeed,soybeanSeed,spinachSeed,sunflowerSeed,strawberrySeed,sugarcaneSeed,sweetPotatoSeed,tomatoSeed,watermelonSeed,wheatSeed,fertilizer,scarecrow,sprinkler,cowFeed$1,huggingMachine],itemIds$1=new Set(inventory.map(e=>e.id)),purchasableItemMap=[...inventory$1,...inventory].reduce((e,t)=>(e[t.id]=t,e),{}),isItemSoldInShop=({id:e})=>!!purchasableItemMap[e],sellItem=(e,{id:t},n=1)=>{if(n===0)return e;let a=itemsMap[t],{completedAchievements:o,itemsSold:s,money:l,valueAdjustments:u}=e,{loanBalance:d}=e,f=isItemSoldInShop(a)?getResaleValue(a):getAdjustedItemValue(u,t),m=isItemAFarmProduct(a),h=0,v=0,y=1;for(let e=0;e<n;e++){let e=m?Math.min(d,castToMoney(f*LOAN_GARNISHMENT_RATE)):0;isItemAFarmProduct(a)&&(y=getSalePriceMultiplier(o),v+=EXPERIENCE_VALUES.ITEM_SOLD);let t=f*y-e;d=moneyTotal(d,-e),h=moneyTotal(h,t)}m&&(e=adjustLoan(e,moneyTotal(d,-e.loanBalance)));let b={...s,[t]:(s[t]||0)+n};return e=a.isPlantableCrop?{...e,money:moneyTotal(l,h)}:addRevenue({...e,money:l},h),e=addExperience(e,v),e={...e,itemsSold:b},e=decrementItemFromInventory(e,t,n),e=prependPendingPeerMessage(e,SOLD_ITEM_PEER_NOTIFICATION(``,n,a),`warning`),updateLearnedRecipes(e)},getItemBaseValue=e=>itemsMap[e].value,getKegValue=e=>{let{itemId:t,daysUntilMature:n}=e,a=itemsMap[t];if(n>0)return 0;let o=0,s=0,l=0;return wineService.isWineRecipe(a)?(o=a.value,s=WINE_INTEREST_RATE,l=Math.min(Math.max(-n,1),100)):(o=(a.tier??1)*getItemBaseValue(t),s=KEG_INTEREST_RATE,l=Math.abs(e.daysUntilMature)),o*(1+s)**l},sellKeg=(e,t)=>{let{itemId:n}=t,a=itemsMap[n],{cellarItemsSold:o,completedAchievements:s,itemsSold:l,money:u}=e,{loanBalance:d}=e,f=0,m=getKegValue(t),h=Math.min(d,castToMoney(m*LOAN_GARNISHMENT_RATE)),v=m*getSalePriceMultiplier(s)-h;d=moneyTotal(d,-h),f=moneyTotal(f,v),e=adjustLoan(e,moneyTotal(d,-e.loanBalance));let y={...l,[n]:(l[n]??0)+1},b={...o,[n]:(o[n]??0)+1};return e={...e,itemsSold:y,cellarItemsSold:b},e=addRevenue({...e,money:u},f),e=addExperience(e,EXPERIENCE_VALUES.KEG_SOLD),e=removeKegFromCellar(e,t.id),e=prependPendingPeerMessage(e,SOLD_FERMENTED_ITEM_PEER_NOTIFICATION`${a}`,`warning`),e=updateLearnedRecipes(e),e},{OBSERVE:OBSERVE$2,SET_SCARECROW:SET_SCARECROW$2}=fieldMode,setScarecrow=(e,t,n)=>{if(e.field[n][t]!==null)return e;e=decrementItemFromInventory(e,SCARECROW_ITEM_ID);let a=e.inventory.some(e=>e.id===SCARECROW_ITEM_ID);return e=modifyFieldPlotAt(e,t,n,()=>getPlotContentFromItemId(SCARECROW_ITEM_ID)),{...e,fieldMode:a?SET_SCARECROW$2:OBSERVE$2,selectedItemId:a?SCARECROW_ITEM_ID:``}},{OBSERVE:OBSERVE$1,SET_SPRINKLER:SET_SPRINKLER$2}=fieldMode,setSprinkler=(e,t,n)=>{let{field:a}=e;if(a[n][t]!==null)return e;e=decrementItemFromInventory(e,SPRINKLER_ITEM_ID);let o=e.inventory.some(e=>e.id===SPRINKLER_ITEM_ID);return e=modifyFieldPlotAt(e,t,n,()=>getPlotContentFromItemId(SPRINKLER_ITEM_ID)),e=processSprinklers(e),{...e,fieldMode:o?SET_SPRINKLER$2:OBSERVE$1,selectedItemId:o?SPRINKLER_ITEM_ID:``}},dollarString=e=>toDecimal(dinero({amount:Math.round(e),currency:USD,scale:0}),({value:e})=>Number(e).toLocaleString(`en-US`,{style:`currency`,currency:`USD`,minimumFractionDigits:0,maximumFractionDigits:0})),getProfitRecord=(e,t,n)=>Math.max(e,getProfit(t,n)),isOctober=()=>new Date().getMonth()===9,percentageString=e=>`${Math.round(e*100)}%`,{SEED:SEED$3}=cropLifeStage,addMoney=(e,t)=>({...e,money:moneyTotal(e.money,t)}),sumOfCropsHarvested=memoize(e=>Object.values(e).reduce((e,t)=>e+t,0),{}),sumOfPartialRecordValues=memoize(e=>Object.values(e).reduce((e,t)=>e+(t||0),0),{}),PIE_RECIPE_IDS=Object.values(recipesMap).filter(e=>e.isPie).map(e=>e.id),sumOfPiesMade=memoize(e=>PIE_RECIPE_IDS.reduce((t,n)=>t+(e[n]||0),0),{}),cowFeed=itemsMap[COW_FEED_ITEM_ID],progressAchievement=(e,t)=>({condition:n=>t(n)>=e,getProgress:n=>({currentValue:t(n),goal:e})}),achievements=[((e=100)=>({id:`plant-crop`,name:`Plant a Crop`,description:`Purchase a seed and plant it in the field.`,rewardDescription:dollarString(e),condition:e=>!!findInField(e.field,e=>e!==null&&doesPlotContainCrop(e)&&getCropLifeStage(e)===SEED$3),reward:t=>addMoney(t,e)}))(),((e=150)=>({id:`water-crop`,name:`Water a Crop`,description:`Water a crop that you planted.`,rewardDescription:dollarString(e),condition:e=>!!findInField(e.field,e=>doesPlotContainCrop(e)&&!!e.wasWateredToday),reward:t=>addMoney(t,e)}))(),((e=200)=>({id:`harvest-crop`,name:`Harvest a Crop`,description:`Harvest a crop that you planted.`,rewardDescription:dollarString(e),condition:e=>sumOfCropsHarvested(e.cropsHarvested)>=1,reward:t=>addMoney(t,e)}))(),((e=EXPERIENCE_VALUES.LOAN_PAID_OFF)=>({id:`financial-freedom`,name:`Financial Freedom`,description:`Pay off your initial loan from the bank.`,rewardDescription:`${e} experience points`,condition:e=>e.loanBalance===0,reward:t=>addExperience(t,e)}))(),((e=1e4)=>({id:`unlock-crop-price-guide`,name:`Prove Yourself as a Farmer`,description:`Show that you can run a farm by earning at least ${dollarString(e)}. Proven farmers get access to the Crop Price Guide, an invaluable tool for making better buying and selling decisions!`,rewardDescription:`Crop Price Guide`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=15)=>({id:`purchase-cow-pen`,name:`Purchase a Cow Pen`,description:`Construct any size cow pen to let your bovine buddies moo-ve on in!`,rewardDescription:`${e} units of ${cowFeed.name}`,condition:e=>e.purchasedCowPen>0,reward:t=>addItemToInventory(t,cowFeed,e,!0)}))(),((e=100,t=Object.keys(standardCowColors).length)=>({id:`purchase-all-cow-colors`,name:`Cows of Many Colors`,description:`Show that you love all cows and purchase one of every color.`,rewardDescription:`${e} units of ${cowFeed.name}`,...progressAchievement(t,e=>Object.values(standardCowColors).filter(t=>(e.cowColorsPurchased[t]||0)>0).length),reward:t=>addItemToInventory(t,cowFeed,e,!0)}))(),((e=150)=>({id:`play-during-october`,name:`Halloween Harvest`,description:`Play Farmhand in October and get the gift of the season.`,rewardDescription:`${e} units of ${itemsMap.jackolantern.name}`,condition:()=>isOctober(),reward:t=>addItemToInventory(t,itemsMap.jackolantern,e,!0)}))(),((e=100,t=1e4)=>({id:`sell-10000-jack-o-lanterns`,name:`Spooky Pumpkin Patch`,description:`Sell ${integerString(t)} units of ${itemsMap.jackolantern.name}. That's enough to fill a whole pumpkin patch!`,rewardDescription:`${e} units of ${itemsMap.scarecrow.name}`,...progressAchievement(t,e=>e.itemsSold.jackolantern||0),reward:t=>addItemToInventory(t,itemsMap.scarecrow,e,!0)}))(),((e=5e3,t=25)=>({id:`daily-profit-1`,name:`Daily profit: ${dollarString(e)}`,description:`Earn ${dollarString(e)} of profit in a single day.`,rewardDescription:`${t} units of ${itemsMap.fertilizer.name}`,...progressAchievement(e,e=>getProfitRecord(e.recordSingleDayProfit,e.todaysRevenue,e.todaysLosses)),reward:e=>addItemToInventory(e,itemsMap.fertilizer,t,!0)}))(),((e=15e3,t=50)=>({id:`daily-profit-2`,name:`Daily profit: ${dollarString(e)}`,description:`Earn ${dollarString(e)} of profit in a single day.`,rewardDescription:`${t} units of ${itemsMap[`onion-seed`].name}`,...progressAchievement(e,e=>getProfitRecord(e.recordSingleDayProfit,e.todaysRevenue,e.todaysLosses)),reward:e=>addItemToInventory(e,itemsMap[`onion-seed`],t,!0)}))(),((e=5e4,t=100)=>({id:`daily-profit-3`,name:`Daily profit: ${dollarString(e)}`,description:`Earn ${dollarString(e)} of profit in a single day.`,rewardDescription:`${t} units of ${itemsMap[`tomato-seed`].name}`,...progressAchievement(e,e=>getProfitRecord(e.recordSingleDayProfit,e.todaysRevenue,e.todaysLosses)),reward:e=>addItemToInventory(e,itemsMap[`tomato-seed`],t,!0)}))(),((e=2500,t=35,n=itemsMap[`pumpkin-seed`])=>({id:`profit-average-1`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=1e4,t=100,n=itemsMap[`potato-seed`])=>({id:`profit-average-2`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=25e3,t=250,n=itemsMap[`soybean-seed`])=>({id:`profit-average-3`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=5e4,t=300,n=itemsMap[`chocolate-milk`])=>({id:`profit-average-4`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=15e4,t=500,n=itemsMap[`rainbow-milk-3`])=>({id:`profit-average-5`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=1e6,t=1e3,n=itemsMap.rainbowCheese)=>({id:`profit-average-6`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=1e4,t=itemsMap[`milk-3`],n=5e3,a=itemsMap.fertilizer)=>({id:`sale-goal-1`,name:`Dairy Master`,description:`Sell ${integerString(e)} units of ${t.name}.`,rewardDescription:`${integerString(n)} ${a.name} units`,...progressAchievement(e,e=>e.itemsSold[t.id]||0),reward:e=>addItemToInventory(e,a,n,!0)}))(),((e=1e3,t=itemsMap[`rainbow-milk-2`],n=500,a=itemsMap.scarecrow)=>({id:`sale-goal-2`,name:`A Big Average Rainbow`,description:`Sell ${integerString(e)} units of ${t.name}.`,rewardDescription:`${integerString(n)} ${a.name} units`,...progressAchievement(e,e=>e.itemsSold[t.id]||0),reward:e=>addItemToInventory(e,a,n,!0)}))(),((e=1e4,t=itemsMap.burger,n=5e3)=>({id:`sale-goal-3`,name:`Burger Master`,description:`Sell ${integerString(e)} ${t.name} units.`,rewardDescription:`${integerString(n)} additional inventory spaces`,...progressAchievement(e,e=>e.itemsSold[t.id]||0),reward:e=>({...e,inventoryLimit:e.inventoryLimit+n})}))(),((e=5e5)=>({id:`i-am-rich-1`,name:`I am Rich!`,description:`Earn ${dollarString(e)}.`,rewardDescription:`All sales receive a ${percentageString(I_AM_RICH_BONUSES[0])} bonus`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=1e6)=>({id:`i-am-rich-2`,name:`Millionaire`,description:`Earn ${dollarString(e)}.`,rewardDescription:`All sales receive a ${percentageString(I_AM_RICH_BONUSES[1])} bonus`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=1e9)=>({id:`i-am-rich-3`,name:`Billionaire`,description:`Earn ${dollarString(e)}.`,rewardDescription:`All sales receive a ${percentageString(I_AM_RICH_BONUSES[2])} bonus`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=Math.floor(Math.PI*1e6),t=1e3)=>({id:`lord-of-the-pies`,name:`Lord of the Pies`,description:`Have ${dollarString(e)} on hand.`,rewardDescription:`${integerString(t)} units of ${itemsMap[`pumpkin-pie`].name}`,condition:t=>Math.floor(t.money)===e,reward:e=>addItemToInventory(e,itemsMap[`pumpkin-pie`],t,!0)}))(),{id:`gold-digger`,name:`Gold Digger`,description:`Dig up your first piece of gold.`,rewardDescription:`A Gold Ingot`,condition:e=>!!e.inventory.find(e=>e.id===`gold-ore`),reward:e=>addItemToInventory(e,itemsMap[`gold-ingot`],1,!0)},((e=1e3,t=50)=>({id:`orchardist`,name:`Orchardist`,description:`Pick ${integerString(e)} fruits from trees in the Forest.`,rewardDescription:`${t} units of ${itemsMap[`apple-sapling`].name}`,...progressAchievement(e,e=>sumOfPartialRecordValues(e.treeFruitsHarvested)),reward:e=>addItemToInventory(e,itemsMap[`apple-sapling`],t,!0)}))(),((e=100,t=1e5)=>({id:`piemaker`,name:`Piemaker`,description:`Make ${integerString(e)} pies.`,rewardDescription:dollarString(t),...progressAchievement(e,e=>sumOfPiesMade(e.recipesMade)),reward:e=>addMoney(e,t)}))(),((e=250,t=500)=>({id:`deforestation`,name:`Deforestation`,description:`Chop down ${integerString(e)} trees in the Forest.`,rewardDescription:`${t} units of ${itemsMap.wood.name}`,...progressAchievement(e,e=>e.treesChopped),reward:e=>addItemToInventory(e,itemsMap.wood,t,!0)}))(),((e=100,t=25)=>({id:`landscaper`,name:`Landscaper`,description:`Spread ${integerString(e)} bags of mulch (of any type) on trees in the Forest.`,rewardDescription:`${t} units of ${itemsMap[`rainbow-mulch`].name}`,...progressAchievement(e,e=>sumOfPartialRecordValues(e.mulchApplied)),reward:e=>addItemToInventory(e,itemsMap[`rainbow-mulch`],t,!0)}))()],achievementsMap=achievements.reduce((e,t)=>(e[t.id]=t,e),{}),updateAchievements=(e,t)=>achievements.reduce((e,n)=>(!e.completedAchievements[n.id]&&n.condition(e,t)&&(e={...n.reward(e),completedAchievements:{...e.completedAchievements,[n.id]:!0}},e=showNotification(e,ACHIEVEMENT_COMPLETED(``,{name:n.name,rewardDescription:n.rewardDescription}),`success`)),e),e),updatePeer=(e,t,n,a)=>{let o={...e.peers},s=o[a]?.cowOfferedForTrade?.id,l=n.cowOfferedForTrade?.id,u=l&&s!==l;o[a]=n;let{pendingPeerMessages:d=[]}=n;return u&&(e=showNotification(e,NEW_COW_OFFERED_FOR_TRADE`${n}`,`info`,()=>{t.openDialogView(dialogView.ONLINE_PEERS)})),{...e,peers:o,latestPeerMessages:[...d,...e.latestPeerMessages].slice(0,30)}},upgradeTool=(e,t)=>{if(!t.toolType||!t.level)return e;let n=e;if(e=consumeIngredients(e,{...t,ingredients:t.ingredients||{}},1,EXPERIENCE_VALUES.FORGE_RECIPE_MADE),e===n)return e;e=addItemToInventory(e,t,1);let a=upgrades[t.toolType],o=e.toolLevels[t.toolType],s=a?.[o]?.name||``;return e.toolLevels[t.toolType]=t.level,e=showNotification(e,TOOL_UPGRADED_NOTIFICATION(``,s,t.name)),{...e}},waterAllPlots=e=>waterField(e),waterPlot=(e,t,n)=>{let a=e.field[n][t];return a&&getPlotContentType(a)===itemType.CROP?modifyFieldPlotAt(e,t,n,e=>e&&{...e,wasWateredToday:!0}):e},withdrawCow=(e,t)=>{let{cowIdOfferedForTrade:n}=e;return t===n&&(e={...e,cowIdOfferedForTrade:``}),e},reducers_exports=__exportAll({addCowToInventory:()=>addCowToInventory,addExperience:()=>addExperience,addItemToInventory:()=>addItemToInventory,addPeer:()=>addPeer,addRevenue:()=>addRevenue,adjustLoan:()=>adjustLoan,applyPrecipitation:()=>applyPrecipitation,changeCowAutomaticHugState:()=>changeCowAutomaticHugState,changeCowBreedingPenResident:()=>changeCowBreedingPenResident,changeCowName:()=>changeCowName,chopForestPlot:()=>chopForestPlot,clearPlot:()=>clearPlot,computeCowInventoryForNextDay:()=>computeCowInventoryForNextDay,computeStateForNextDay:()=>computeStateForNextDay,createPriceEvent:()=>createPriceEvent,decrementItemFromInventory:()=>decrementItemFromInventory,fertilizePlot:()=>fertilizePlot,forRange:()=>forRange,generatePriceEvents:()=>generatePriceEvents,harvestForestPlot:()=>harvestForestPlot,harvestPlot:()=>harvestPlot,hugCow:()=>hugCow,incrementPlotContentAge:()=>incrementPlotContentAge,makeFermentationRecipe:()=>makeFermentationRecipe,makeRecipe:()=>makeRecipe,makeWine:()=>makeWine,minePlot:()=>minePlot,modifyCow:()=>modifyCow,modifyFieldPlotAt:()=>modifyFieldPlotAt,modifyForestPlotAt:()=>modifyForestPlotAt,mulchForestPlot:()=>mulchForestPlot,offerCow:()=>offerCow,plantInPlot:()=>plantInPlot,plantTreeInPlot:()=>plantTreeInPlot,prependPendingPeerMessage:()=>prependPendingPeerMessage,processCowAttrition:()=>processCowAttrition,processCowBreeding:()=>processCowBreeding,processCowFertilizerProduction:()=>processCowFertilizerProduction,processFeedingCows:()=>processFeedingCows,processField:()=>processField,processForest:()=>processForest,processLevelUp:()=>processLevelUp,processMilkingCows:()=>processMilkingCows,processNerfs:()=>processNerfs,processSprinklers:()=>processSprinklers,processWeather:()=>processWeather,purchaseCellar:()=>purchaseCellar,purchaseCombine:()=>purchaseCombine,purchaseComposter:()=>purchaseComposter,purchaseCow:()=>purchaseCow,purchaseCowPen:()=>purchaseCowPen,purchaseField:()=>purchaseField,purchaseForest:()=>purchaseForest,purchaseItem:()=>purchaseItem,purchaseSmelter:()=>purchaseSmelter,purchaseStorageExpansion:()=>purchaseStorageExpansion,purchaseWoodChipper:()=>purchaseWoodChipper,removeCowFromInventory:()=>removeCowFromInventory,removeFieldPlotAt:()=>removeFieldPlotAt,removeKegFromCellar:()=>removeKegFromCellar,removePeer:()=>removePeer,rotateNotificationLogs:()=>rotateNotificationLogs,selectCow:()=>selectCow,sellCow:()=>sellCow,sellItem:()=>sellItem,sellKeg:()=>sellKeg,setScarecrow:()=>setScarecrow,setSprinkler:()=>setSprinkler,showNotification:()=>showNotification,spawnWeeds:()=>spawnWeeds,unlockTool:()=>unlockTool,updateAchievements:()=>updateAchievements,updateFinancialRecords:()=>updateFinancialRecords,updateInventoryRecordsForNextDay:()=>updateInventoryRecordsForNextDay,updateLearnedRecipes:()=>updateLearnedRecipes,updatePeer:()=>updatePeer,updatePlotShoveledState:()=>updatePlotShoveledState,updatePriceEvents:()=>updatePriceEvents,upgradeTool:()=>upgradeTool,waterAllPlots:()=>waterAllPlots,waterField:()=>waterField,waterPlot:()=>waterPlot,withdrawCow:()=>withdrawCow}),{CHOP:CHOP$2,CLEANUP:CLEANUP$3,FERTILIZE:FERTILIZE$1,HARVEST:HARVEST$3,HARVEST_FRUIT:HARVEST_FRUIT$2,MINE:MINE$3,PLANT:PLANT$2,SET_SCARECROW:SET_SCARECROW$1,SET_SPRINKLER:SET_SPRINKLER$1,WATER:WATER$3}=fieldMode,{GROWN:GROWN$4}=cropLifeStage,ui_events_default={handleItemPurchaseClick(e,t=1){this.purchaseItem(e,t)},handleMakeRecipeClick(e,t=1){this.makeRecipe(e,t)},handleMakeFermentationRecipeClick(e,t=1){this.makeFermentationRecipe(e,t)},handleMakeWineClick(e,t=1){this.makeWine(e,t)},handleSellKegClick(e){this.sellKeg(e)},handleThrowAwayKegClick(e){this.removeKegFromCellar(e.id)},handleUpgradeTool(e){this.upgradeTool(e)},handleCowPurchaseClick(e){this.purchaseCow(e)},handleCowSellClick(e){this.sellCow(e)},handleCowTradeClick(e){this.tradeForPeerCow(e)},handleCowAutomaticHugChange({target:{checked:e}},t){this.changeCowAutomaticHugState(t,e)},handleCowBreedChange({target:e},t){let{checked:n}=e;this.changeCowBreedingPenResident(t,n)},handleCowHugClick(e){this.hugCow(e.id)},handleCowOfferClick(e){this.offerCow(e.id)},handleCowWithdrawClick(e){this.withdrawCow(e.id)},handleCowNameInputChange(e,t){this.changeCowName(t.id,e)},handleItemSellClick(e,t=1){this.sellItem(e,t)},handleViewChange({target:e}){let{value:t}=e;this.setState({stageFocus:t})},handleViewChangeButtonClick(e){this.setState({stageFocus:e})},handleFieldModeSelect(e){this.setState(({selectedItemId:t})=>({selectedItemId:e!==PLANT$2||TOOLBELT_FIELD_MODES.has(e)?``:t,selectedForestItemId:``,fieldMode:e}))},handleItemSelectClick({id:e,enablesFieldMode:t}){this.setState({fieldMode:t,selectedItemId:e})},handleForestItemSelectClick({id:e}){this.setState({fieldMode:PLANT$2,selectedForestItemId:e})},handlePlotClick(e,t){let{fieldMode:n,hoveredPlotRangeSize:a,selectedItemId:o}=this.state;n===PLANT$2?this.forRange(plantInPlot,a,e,t,o):n===HARVEST$3?this.forRange(harvestPlot,a,e,t):n===MINE$3?this.forRange(minePlot,a,e,t):n===CLEANUP$3?this.forRange(clearPlot,a,e,t):n===WATER$3?this.forRange(waterPlot,a,e,t):n===FERTILIZE$1?this.forRange(fertilizePlot,a,e,t):n===SET_SPRINKLER$1?this.setSprinkler(e,t):n===SET_SCARECROW$1&&this.setScarecrow(e,t)},handleFieldActionRangeChange(e){this.setState(()=>({hoveredPlotRangeSize:e}))},handleClickEndDayButton(){this.incrementDay(),document.activeElement?.blur()},handleAddMoneyClick(e){this.setState(({money:t})=>({money:moneyTotal(t,e)}))},handleClearPersistedDataClick(){this.clearPersistedData()},handleWaterAllPlotsClick(){this.waterAllPlots(this.state)},handleFieldPurchase(e){this.purchaseField(e)},handleForestPurchase(e){this.purchaseForest(e)},handleForestPlotClick(e,t){let n=this.state.forest[t]?.[e];if(this.state.fieldMode===CHOP$2){isPlantedTree(n)&&this.chopForestPlot(e,t);return}if(this.state.fieldMode===FERTILIZE$1){isPlantedTree(n)&&this.mulchForestPlot(e,t);return}if(!n){let{selectedForestItemId:n,inventory:a}=this.state;n&&a.some(({id:e})=>e===n)&&this.plantTreeInPlot(e,t,n);return}this.state.fieldMode===HARVEST_FRUIT$2&&isPlantedTree(n)&&getTreeLifeStage(n)===GROWN$4&&this.harvestForestPlot(e,t)},handleCombinePurchase(e){this.purchaseCombine(e)},handleComposterPurchase(e){this.purchaseComposter(e)},handleSmelterPurchase(e){this.purchaseSmelter(e)},handleWoodChipperPurchase(e){this.purchaseWoodChipper(e)},handleCowPenPurchase(e){this.purchaseCowPen(e)},handleCellarPurchase(e){this.purchaseCellar(e)},handleStorageExpansionPurchase(){this.purchaseStorageExpansion()},handleMenuToggle(e=void 0){this.setState(({isMenuOpen:t})=>({isMenuOpen:e??!t}))},handleClickNextMenuButton(){this.focusNextView()},handleClickPreviousMenuButton(){this.focusPreviousView()},handleCowSelect(e){this.selectCow(e)},handleCowClick(e){this.selectCow(e),this.hugCow(e.id)},handleCowPenUnmount(){this.setState({selectedCowId:``})},handleClickDialogViewButton(e){this.openDialogView(e)},handleCloseDialogView(){this.state.isAwaitingCowTradeRequest||this.closeDialogView()},handleDialogViewExited(){this.setState({currentDialogView:dialogView.NONE})},handleClickLoanPaydownButton(e){this.adjustLoan(-e)},handleClickTakeOutLoanButton(e){this.adjustLoan(e)},handleExportDataClick(){let e=new Blob([JSON.stringify(reduceByPersistedKeys(this.state),null,2)],{type:`application/json;charset=utf-8`}),[t]=new Date().toISOString().split(`T`);(0,import_FileSaver_min.saveAs)(e,`farmhand-${t}.json`)},handleImportDataClick([e]){let[,t]=e,n=new FileReader;n.addEventListener(`loadend`,e=>{try{let t=e.target,n=String(t?.result),a=reduceByPersistedKeys(transformStateDataForImport(JSON.parse(n)));if(Object.keys(a).some(e=>typeof this.state[e]!=typeof a[e]))throw Error(INVALID_DATA_PROVIDED);this.setState({...transformStateDataForImport({...this.createInitialState?this.createInitialState():{},...a}),hasBooted:!0}),this.showNotification(`Data loaded!`,`success`)}catch(e){console.error(e),this.showNotification(e.message,`error`)}}),n.readAsText(t.slice())},async handleSaveButtonClick(){await this.persistState(),this.showNotification(PROGRESS_SAVED_MESSAGE,`info`)},handleFarmNameUpdate(e){this.setState({farmName:e})},handleCombineEnabledChange(e,t){this.setState({isCombineEnabled:t})},handleUseAlternateEndDayButtonPositionChange(e,t){this.setState({useAlternateEndDayButtonPosition:t})},handleAllowCustomPeerCowNamesChange(e,t){this.setState({allowCustomPeerCowNames:t})},handleShowHomeScreenChange(e,t){this.state.stageFocus===stageFocusType.HOME&&!t&&this.focusNextView(),this.setState({showHomeScreen:t})},handleShowNotificationsChange({target:{checked:e}}){this.setState({showNotifications:e})},handleClickNotificationIndicator(){this.openDialogView(dialogView.FARMERS_LOG)},handleOnlineToggleChange(e){e||this.showNotification(DISCONNECTING_FROM_SERVER,`info`),this.setState(({room:t,cowIdOfferedForTrade:n})=>e?{redirect:withCurrentHashQuery(`/online/${encodeURIComponent(t)}`),cowIdOfferedForTrade:n,isOnline:!0}:{redirect:withCurrentHashQuery(`/`),cowIdOfferedForTrade:``})},handleRoomChange(e){this.setState(()=>({room:e,redirect:withCurrentHashQuery(`/online/${encodeURIComponent(e.trim()||`global`)}`)}))},handleActivePlayerButtonClick(){this.openDialogView(dialogView.ONLINE_PEERS)},handleRNGSeedChange(e){let{origin:t,pathname:n,search:a,hash:o}=import_window.default.location,s=new URLSearchParams(a),l=e.trim();l===``?(randomNumberService.unseedRandomNumber(),s.delete(`seed`),this.showNotification(`Random seed reset`,`info`)):(randomNumberService.seedRandomNumber(l),s.set(`seed`,l),this.showNotification(`Random seed set to "${l}"`,`success`));let u=s.toString(),d=`${t}${n}${u.length>0?`?${u}`:``}${o}`;import_window.default.history.replaceState({},``,d)},handleChatRoomOpenStateChange(e){this.setState({isChatOpen:e})},handleGameUpdateAvailable(e){this.showNotification(UPDATE_AVAILABLE,`success`,()=>{e(!0)})}},createContextData=()=>({gameState:{viewTitle:``,viewList:[],features:{},blockInput:!1,shopInventory:[],isChatAvailable:!1,playerInventory:[],levelEntitlements:{items:{},tools:{},sprinklerRange:0,stageFocusType:{}},fieldToolInventory:[],mulchInventory:[],plantableCropInventory:[],plantableTreeInventory:[],playerInventoryQuantities:{},activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:`NONE`,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:0},cowInventory:[],cowColorsPurchased:{BLUE:0,BROWN:0,GREEN:0,ORANGE:0,PURPLE:0,RAINBOW:0,WHITE:0,YELLOW:0},cowIdOfferedForTrade:``,cowsSold:{},cowsTraded:0,cowTradeTimeoutId:null,cropsHarvested:{ASPARAGUS:0,CARROT:0,CORN:0,GARLIC:0,GRAPE:0,JALAPENO:0,OLIVE:0,ONION:0,PEA:0,POTATO:0,PUMPKIN:0,SOYBEAN:0,SPINACH:0,SUNFLOWER:0,STRAWBERRY:0,SWEET_POTATO:0,TOMATO:0,WATERMELON:0,WHEAT:0,WEED:0},dayCount:0,experience:0,farmName:``,field:[[]],forest:[[]],treesChopped:0,treeFruitsHarvested:{},mulchApplied:{},fieldMode:`OBSERVE`,getCowAccept:()=>{},getCowReject:()=>{},getCowTradeRequest:()=>{},getPeerMetadata:()=>{},hasBooted:!0,hasProducedRainbowFertilizer:!1,heartbeatTimeoutId:-1,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:``,inventory:[{id:scarecrow.id,quantity:1}],inventoryLimit:-1,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!0,isMenuOpen:!1,itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:!0,isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:0,loansTakenOut:0,money:0,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendCowAccept:()=>{},sendCowReject:()=>{},sendCowTradeRequest:()=>{},sendPeerMetadata:()=>{},selectedCowId:``,selectedForestItemId:``,selectedItemId:``,priceCrashes:{},priceSurges:{},purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,purchasedWoodChipper:0,profitabilityStreak:0,recipesMade:{},record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:``,room:``,showHomeScreen:!0,showNotifications:!0,stageFocus:`HOME`,todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{AXE:`UNAVAILABLE`,PICKER_POLE:`UNAVAILABLE`,SCYTHE:`DEFAULT`,SHOVEL:`DEFAULT`,HOE:`DEFAULT`,WATERING_CAN:`DEFAULT`},valueAdjustments:{},version:`1.0.0`,todaysNotifications:[],useAlternateEndDayButtonPosition:!1},handlers:{...ui_events_default,debounced:{...ui_events_default}}}),FarmhandContext=(0,import_react$24.createContext)(createContextData()),usePrefersReducedMotion=()=>{let[e,t]=(0,import_react$24.useState)(()=>typeof window>`u`||!window.matchMedia?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches);return(0,import_react$24.useEffect)(()=>{if(typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),n=e=>{t(e.matches)};return e.addEventListener?e.addEventListener(`change`,n):`addListener`in e&&e.addListener(n),()=>{e.removeEventListener?e.removeEventListener(`change`,n):`removeListener`in e&&e.removeListener(n)}},[]),e},MoneyDisplay=({money:e})=>{let t=`rgb(255, 255, 255)`,n=usePrefersReducedMotion(),[a,o]=(0,import_react$24.useState)(e),[s,l]=(0,import_react$24.useState)(t),u=(0,import_react$24.useRef)(e),d=(0,import_react$24.useRef)(null);return(0,import_react$24.useEffect)(()=>{if(d.current?.cancel(),d.current=null,n||u.current===e){u.current=e,o(e),l(t);return}let a=e>u.current?`rgb(0, 255, 0)`:`rgb(255, 0, 0)`;return d.current=(0,import_shifty.tween)({easing:`easeOutQuad`,duration:750,render:({color:e,money:t})=>{l(String(e)),o(Number(t))},from:{color:a,money:u.current},to:{color:t,money:e}}),u.current=e,()=>{d.current?.cancel(),d.current=null}},[e,n]),(0,import_jsx_runtime.jsx)(`span`,{style:{color:s},children:moneyString(a)})},AppBar=({handleClickNotificationIndicator:e,money:t,showNotifications:n,todaysNotifications:a,viewTitle:o,areAnyNotificationsErrors:s=a.some(({severity:e})=>e===`error`)})=>(0,import_jsx_runtime.jsx)(AppBar$1,{className:`AppBar top-level`,position:`fixed`,sx:{"& .toolbar":{display:`flex`,"& h2":{color:`#fff`,fontFamily:`"Francois One", monospace`,fontSize:`1.2em`},"& .stage-header":{display:`none`,marginLeft:`1em`,[`@media (min-width: ${breakpoints.mediumPhone}px)`]:{display:`block`}},"& .money-display":{position:`absolute`,right:`1em`},"& .notification-indicator-container":{display:`flex`,"& .error-indicator":{marginLeft:`1em`}}}},children:(0,import_jsx_runtime.jsxs)(Toolbar,{className:`toolbar`,children:[!n&&(0,import_jsx_runtime.jsxs)(`div`,{className:`notification-indicator-container`,onClick:e,children:[(0,import_jsx_runtime.jsx)(Typography,{children:(0,import_jsx_runtime.jsx)(StepIcon,{icon:a.length})}),s&&(0,import_jsx_runtime.jsx)(Typography,{className:`error-indicator`,children:(0,import_jsx_runtime.jsx)(StepIcon,{error:!0,icon:``})})]}),(0,import_jsx_runtime.jsx)(Typography,{className:`stage-header`,variant:`h2`,children:o}),(0,import_jsx_runtime.jsx)(Typography,{className:`money-display`,variant:`h2`,children:(0,import_jsx_runtime.jsx)(MoneyDisplay,{money:t})})]})});AppBar.propTypes={handleClickNotificationIndicator:import_prop_types$1.func.isRequired,money:import_prop_types$1.number.isRequired,showNotifications:import_prop_types$1.bool.isRequired,todaysNotifications:import_prop_types$1.array.isRequired,viewTitle:import_prop_types$1.string.isRequired};function Consumer$29(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(AppBar,{...t,...n,...e})})}var require_lib$5=__commonJSMin(((e,t)=>{function n(e){return e&&typeof e==`object`&&`default`in e?e.default:e}var a=require_react(),o=n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var u=!!(typeof window<`u`&&window.document&&window.document.createElement);function d(e,t,n){if(typeof e!=`function`)throw Error(`Expected reducePropsToState to be a function.`);if(typeof t!=`function`)throw Error(`Expected handleStateChangeOnClient to be a function.`);if(n!==void 0&&typeof n!=`function`)throw Error(`Expected mapStateOnServer to either be undefined or a function.`);function d(e){return e.displayName||e.name||`Component`}return function(f){if(typeof f!=`function`)throw Error(`Expected WrappedComponent to be a React component.`);var m=[],h;function v(){h=e(m.map(function(e){return e.props})),y.canUseDOM?t(h):n&&(h=n(h))}var y=function(e){l(t,e);function t(){return e.apply(this,arguments)||this}t.peek=function(){return h},t.rewind=function(){if(t.canUseDOM)throw Error(`You may only call rewind() on the server. Call peek() to read the current state.`);var e=h;return h=void 0,m=[],e};var n=t.prototype;return n.UNSAFE_componentWillMount=function(){m.push(this),v()},n.componentDidUpdate=function(){v()},n.componentWillUnmount=function(){var e=m.indexOf(this);m.splice(e,1),v()},n.render=function(){return o.createElement(f,this.props)},t}(a.PureComponent);return s(y,`displayName`,`SideEffect(`+d(f)+`)`),s(y,`canUseDOM`,u),y}}t.exports=d})),require_react_fast_compare=__commonJSMin(((e,t)=>{var n=typeof Element<`u`,a=typeof Map==`function`,o=typeof Set==`function`,s=typeof ArrayBuffer==`function`&&!!ArrayBuffer.isView;function l(e,t){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var u,d,f;if(Array.isArray(e)){if(u=e.length,u!=t.length)return!1;for(d=u;d--!==0;)if(!l(e[d],t[d]))return!1;return!0}var m;if(a&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(m=e.entries();!(d=m.next()).done;)if(!t.has(d.value[0]))return!1;for(m=e.entries();!(d=m.next()).done;)if(!l(d.value[1],t.get(d.value[0])))return!1;return!0}if(o&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(m=e.entries();!(d=m.next()).done;)if(!t.has(d.value[0]))return!1;return!0}if(s&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(u=e.length,u!=t.length)return!1;for(d=u;d--!==0;)if(e[d]!==t[d])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf==`function`&&typeof t.valueOf==`function`)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString==`function`&&typeof t.toString==`function`)return e.toString()===t.toString();if(f=Object.keys(e),u=f.length,u!==Object.keys(t).length)return!1;for(d=u;d--!==0;)if(!Object.prototype.hasOwnProperty.call(t,f[d]))return!1;if(n&&e instanceof Element)return!1;for(d=u;d--!==0;)if(!((f[d]===`_owner`||f[d]===`__v`||f[d]===`__o`)&&e.$$typeof)&&!l(e[f[d]],t[f[d]]))return!1;return!0}return e!==e&&t!==t}t.exports=function(e,t){try{return l(e,t)}catch(e){if((e.message||``).match(/stack|recursion/i))return console.warn(`react-fast-compare cannot handle circular refs`),!1;throw e}}})),import_lib$1=__toESM(require_lib$5()),import_react_fast_compare=__toESM(require_react_fast_compare()),import_object_assign=__toESM(require_object_assign()),ATTRIBUTE_NAMES={BODY:`bodyAttributes`,HTML:`htmlAttributes`,TITLE:`titleAttributes`},TAG_NAMES={BASE:`base`,BODY:`body`,HEAD:`head`,HTML:`html`,LINK:`link`,META:`meta`,NOSCRIPT:`noscript`,SCRIPT:`script`,STYLE:`style`,TITLE:`title`};Object.keys(TAG_NAMES).map(function(e){return TAG_NAMES[e]});var TAG_PROPERTIES={CHARSET:`charset`,CSS_TEXT:`cssText`,HREF:`href`,HTTPEQUIV:`http-equiv`,INNER_HTML:`innerHTML`,ITEM_PROP:`itemprop`,NAME:`name`,PROPERTY:`property`,REL:`rel`,SRC:`src`,TARGET:`target`},REACT_TAG_MAP={accesskey:`accessKey`,charset:`charSet`,class:`className`,contenteditable:`contentEditable`,contextmenu:`contextMenu`,"http-equiv":`httpEquiv`,itemprop:`itemProp`,tabindex:`tabIndex`},HELMET_PROPS={DEFAULT_TITLE:`defaultTitle`,DEFER:`defer`,ENCODE_SPECIAL_CHARACTERS:`encodeSpecialCharacters`,ON_CHANGE_CLIENT_STATE:`onChangeClientState`,TITLE_TEMPLATE:`titleTemplate`},HTML_TAG_MAP=Object.keys(REACT_TAG_MAP).reduce(function(e,t){return e[REACT_TAG_MAP[t]]=t,e},{}),SELF_CLOSING_TAGS=[TAG_NAMES.NOSCRIPT,TAG_NAMES.SCRIPT,TAG_NAMES.STYLE],HELMET_ATTRIBUTE=`data-react-helmet`,_typeof$3=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},classCallCheck=function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)},createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},inherits=function(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},objectWithoutProperties$1=function(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n},possibleConstructorReturn=function(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e},encodeSpecialCharacters=function(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!1?String(e):String(e).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)},getTitleFromPropsList=function(e){var t=getInnermostProperty(e,TAG_NAMES.TITLE),n=getInnermostProperty(e,HELMET_PROPS.TITLE_TEMPLATE);if(n&&t)return n.replace(/%s/g,function(){return Array.isArray(t)?t.join(``):t});var a=getInnermostProperty(e,HELMET_PROPS.DEFAULT_TITLE);return t||a||void 0},getOnChangeClientState=function(e){return getInnermostProperty(e,HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},getAttributesFromPropsList=function(e,t){return t.filter(function(t){return t[e]!==void 0}).map(function(t){return t[e]}).reduce(function(e,t){return _extends({},e,t)},{})},getBaseTagFromPropsList=function(e,t){return t.filter(function(e){return e[TAG_NAMES.BASE]!==void 0}).map(function(e){return e[TAG_NAMES.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var a=Object.keys(n),o=0;o<a.length;o++){var s=a[o].toLowerCase();if(e.indexOf(s)!==-1&&n[s])return t.concat(n)}return t},[])},getTagsFromPropsList=function(e,t,n){var a={};return n.filter(function(t){return Array.isArray(t[e])?!0:(t[e]!==void 0&&warn$1(`Helmet: `+e+` should be of type "Array". Instead found type "`+_typeof$3(t[e])+`"`),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var o={};n.filter(function(e){for(var n=void 0,s=Object.keys(e),l=0;l<s.length;l++){var u=s[l],d=u.toLowerCase();t.indexOf(d)!==-1&&!(n===TAG_PROPERTIES.REL&&e[n].toLowerCase()===`canonical`)&&!(d===TAG_PROPERTIES.REL&&e[d].toLowerCase()===`stylesheet`)&&(n=d),t.indexOf(u)!==-1&&(u===TAG_PROPERTIES.INNER_HTML||u===TAG_PROPERTIES.CSS_TEXT||u===TAG_PROPERTIES.ITEM_PROP)&&(n=u)}if(!n||!e[n])return!1;var f=e[n].toLowerCase();return a[n]||(a[n]={}),o[n]||(o[n]={}),a[n][f]?!1:(o[n][f]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var s=Object.keys(o),l=0;l<s.length;l++){var u=s[l];a[u]=(0,import_object_assign.default)({},a[u],o[u])}return e},[]).reverse()},getInnermostProperty=function(e,t){for(var n=e.length-1;n>=0;n--){var a=e[n];if(a.hasOwnProperty(t))return a[t]}return null},reducePropsToState=function(e){return{baseTag:getBaseTagFromPropsList([TAG_PROPERTIES.HREF,TAG_PROPERTIES.TARGET],e),bodyAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY,e),defer:getInnermostProperty(e,HELMET_PROPS.DEFER),encode:getInnermostProperty(e,HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML,e),linkTags:getTagsFromPropsList(TAG_NAMES.LINK,[TAG_PROPERTIES.REL,TAG_PROPERTIES.HREF],e),metaTags:getTagsFromPropsList(TAG_NAMES.META,[TAG_PROPERTIES.NAME,TAG_PROPERTIES.CHARSET,TAG_PROPERTIES.HTTPEQUIV,TAG_PROPERTIES.PROPERTY,TAG_PROPERTIES.ITEM_PROP],e),noscriptTags:getTagsFromPropsList(TAG_NAMES.NOSCRIPT,[TAG_PROPERTIES.INNER_HTML],e),onChangeClientState:getOnChangeClientState(e),scriptTags:getTagsFromPropsList(TAG_NAMES.SCRIPT,[TAG_PROPERTIES.SRC,TAG_PROPERTIES.INNER_HTML],e),styleTags:getTagsFromPropsList(TAG_NAMES.STYLE,[TAG_PROPERTIES.CSS_TEXT],e),title:getTitleFromPropsList(e),titleAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE,e)}},rafPolyfill=function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout(function(){rafPolyfill(t)},0)}}(),cafPolyfill=function(e){return clearTimeout(e)},requestAnimationFrame$1=typeof window<`u`?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||rafPolyfill:{}.requestAnimationFrame||rafPolyfill,cancelAnimationFrame$1=typeof window<`u`?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||cafPolyfill:{}.cancelAnimationFrame||cafPolyfill,warn$1=function(e){return console&&typeof console.warn==`function`&&console.warn(e)},_helmetCallback=null,handleClientStateChange=function(e){_helmetCallback&&cancelAnimationFrame$1(_helmetCallback),e.defer?_helmetCallback=requestAnimationFrame$1(function(){commitTagChanges(e,function(){_helmetCallback=null})}):(commitTagChanges(e),_helmetCallback=null)},commitTagChanges=function(e,t){var n=e.baseTag,a=e.bodyAttributes,o=e.htmlAttributes,s=e.linkTags,l=e.metaTags,u=e.noscriptTags,d=e.onChangeClientState,f=e.scriptTags,m=e.styleTags,h=e.title,v=e.titleAttributes;updateAttributes(TAG_NAMES.BODY,a),updateAttributes(TAG_NAMES.HTML,o),updateTitle(h,v);var y={baseTag:updateTags(TAG_NAMES.BASE,n),linkTags:updateTags(TAG_NAMES.LINK,s),metaTags:updateTags(TAG_NAMES.META,l),noscriptTags:updateTags(TAG_NAMES.NOSCRIPT,u),scriptTags:updateTags(TAG_NAMES.SCRIPT,f),styleTags:updateTags(TAG_NAMES.STYLE,m)},b={},x={};Object.keys(y).forEach(function(e){var t=y[e],n=t.newTags,a=t.oldTags;n.length&&(b[e]=n),a.length&&(x[e]=y[e].oldTags)}),t&&t(),d(e,b,x)},flattenArray=function(e){return Array.isArray(e)?e.join(``):e},updateTitle=function(e,t){e!==void 0&&document.title!==e&&(document.title=flattenArray(e)),updateAttributes(TAG_NAMES.TITLE,t)},updateAttributes=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var a=n.getAttribute(HELMET_ATTRIBUTE),o=a?a.split(`,`):[],s=[].concat(o),l=Object.keys(t),u=0;u<l.length;u++){var d=l[u],f=t[d]||``;n.getAttribute(d)!==f&&n.setAttribute(d,f),o.indexOf(d)===-1&&o.push(d);var m=s.indexOf(d);m!==-1&&s.splice(m,1)}for(var h=s.length-1;h>=0;h--)n.removeAttribute(s[h]);o.length===s.length?n.removeAttribute(HELMET_ATTRIBUTE):n.getAttribute(HELMET_ATTRIBUTE)!==l.join(`,`)&&n.setAttribute(HELMET_ATTRIBUTE,l.join(`,`))}},updateTags=function(e,t){var n=document.head||document.querySelector(TAG_NAMES.HEAD),a=n.querySelectorAll(e+`[`+HELMET_ATTRIBUTE+`]`),o=Array.prototype.slice.call(a),s=[],l=void 0;return t&&t.length&&t.forEach(function(t){var n=document.createElement(e);for(var a in t)if(t.hasOwnProperty(a))if(a===TAG_PROPERTIES.INNER_HTML)n.innerHTML=t.innerHTML;else if(a===TAG_PROPERTIES.CSS_TEXT)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var u=t[a]===void 0?``:t[a];n.setAttribute(a,u)}n.setAttribute(HELMET_ATTRIBUTE,`true`),o.some(function(e,t){return l=t,n.isEqualNode(e)})?o.splice(l,1):s.push(n)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),s.forEach(function(e){return n.appendChild(e)}),{oldTags:o,newTags:s}},generateElementAttributesAsString=function(e){return Object.keys(e).reduce(function(t,n){var a=e[n]===void 0?``+n:n+`="`+e[n]+`"`;return t?t+` `+a:a},``)},generateTitleAsString=function(e,t,n,a){var o=generateElementAttributesAsString(n),s=flattenArray(t);return o?`<`+e+` `+HELMET_ATTRIBUTE+`="true" `+o+`>`+encodeSpecialCharacters(s,a)+`</`+e+`>`:`<`+e+` `+HELMET_ATTRIBUTE+`="true">`+encodeSpecialCharacters(s,a)+`</`+e+`>`},generateTagsAsString=function(e,t,n){return t.reduce(function(t,a){var o=Object.keys(a).filter(function(e){return!(e===TAG_PROPERTIES.INNER_HTML||e===TAG_PROPERTIES.CSS_TEXT)}).reduce(function(e,t){var o=a[t]===void 0?t:t+`="`+encodeSpecialCharacters(a[t],n)+`"`;return e?e+` `+o:o},``),s=a.innerHTML||a.cssText||``,l=SELF_CLOSING_TAGS.indexOf(e)===-1;return t+`<`+e+` `+HELMET_ATTRIBUTE+`="true" `+o+(l?`/>`:`>`+s+`</`+e+`>`)},``)},convertElementAttributestoReactProps=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[REACT_TAG_MAP[n]||n]=e[n],t},t)},convertReactPropstoHtmlAttributes=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[HTML_TAG_MAP[n]||n]=e[n],t},t)},generateTitleAsReactComponent=function(e,t,n){var a,o=convertElementAttributestoReactProps(n,(a={key:t},a[HELMET_ATTRIBUTE]=!0,a));return[import_react$24.createElement(TAG_NAMES.TITLE,o,t)]},generateTagsAsReactComponent=function(e,t){return t.map(function(t,n){var a,o=(a={key:n},a[HELMET_ATTRIBUTE]=!0,a);return Object.keys(t).forEach(function(e){var n=REACT_TAG_MAP[e]||e;n===TAG_PROPERTIES.INNER_HTML||n===TAG_PROPERTIES.CSS_TEXT?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]}),import_react$24.createElement(e,o)})},getMethodsForTag=function(e,t,n){switch(e){case TAG_NAMES.TITLE:return{toComponent:function(){return generateTitleAsReactComponent(e,t.title,t.titleAttributes,n)},toString:function(){return generateTitleAsString(e,t.title,t.titleAttributes,n)}};case ATTRIBUTE_NAMES.BODY:case ATTRIBUTE_NAMES.HTML:return{toComponent:function(){return convertElementAttributestoReactProps(t)},toString:function(){return generateElementAttributesAsString(t)}};default:return{toComponent:function(){return generateTagsAsReactComponent(e,t)},toString:function(){return generateTagsAsString(e,t,n)}}}},mapStateOnServer=function(e){var t=e.baseTag,n=e.bodyAttributes,a=e.encode,o=e.htmlAttributes,s=e.linkTags,l=e.metaTags,u=e.noscriptTags,d=e.scriptTags,f=e.styleTags,m=e.title,h=m===void 0?``:m,v=e.titleAttributes;return{base:getMethodsForTag(TAG_NAMES.BASE,t,a),bodyAttributes:getMethodsForTag(ATTRIBUTE_NAMES.BODY,n,a),htmlAttributes:getMethodsForTag(ATTRIBUTE_NAMES.HTML,o,a),link:getMethodsForTag(TAG_NAMES.LINK,s,a),meta:getMethodsForTag(TAG_NAMES.META,l,a),noscript:getMethodsForTag(TAG_NAMES.NOSCRIPT,u,a),script:getMethodsForTag(TAG_NAMES.SCRIPT,d,a),style:getMethodsForTag(TAG_NAMES.STYLE,f,a),title:getMethodsForTag(TAG_NAMES.TITLE,{title:h,titleAttributes:v},a)}},HelmetExport=function(e){var t,n;return n=t=function(t){inherits(n,t);function n(){return classCallCheck(this,n),possibleConstructorReturn(this,t.apply(this,arguments))}return n.prototype.shouldComponentUpdate=function(e){return!(0,import_react_fast_compare.default)(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case TAG_NAMES.SCRIPT:case TAG_NAMES.NOSCRIPT:return{innerHTML:t};case TAG_NAMES.STYLE:return{cssText:t}}throw Error(`<`+e.type+` /> elements are self-closing and can not contain children. Refer to our API for more information.`)},n.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,a=e.arrayTypeChildren,o=e.newChildProps,s=e.nestedChildren;return _extends({},a,(t={},t[n.type]=[].concat(a[n.type]||[],[_extends({},o,this.mapNestedChildrenToProps(n,s))]),t))},n.prototype.mapObjectTypeChildren=function(e){var t,n,a=e.child,o=e.newProps,s=e.newChildProps,l=e.nestedChildren;switch(a.type){case TAG_NAMES.TITLE:return _extends({},o,(t={},t[a.type]=l,t.titleAttributes=_extends({},s),t));case TAG_NAMES.BODY:return _extends({},o,{bodyAttributes:_extends({},s)});case TAG_NAMES.HTML:return _extends({},o,{htmlAttributes:_extends({},s)})}return _extends({},o,(n={},n[a.type]=_extends({},s),n))},n.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=_extends({},t);return Object.keys(e).forEach(function(t){var a;n=_extends({},n,(a={},a[t]=e[t],a))}),n},n.prototype.warnOnInvalidChildren=function(e,t){return!0},n.prototype.mapChildrenToProps=function(e,t){var n=this,a={};return import_react$24.Children.forEach(e,function(e){if(!(!e||!e.props)){var o=e.props,s=o.children,l=convertReactPropstoHtmlAttributes(objectWithoutProperties$1(o,[`children`]));switch(n.warnOnInvalidChildren(e,s),e.type){case TAG_NAMES.LINK:case TAG_NAMES.META:case TAG_NAMES.NOSCRIPT:case TAG_NAMES.SCRIPT:case TAG_NAMES.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:s});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:s});break}}}),t=this.mapArrayTypeChildrenToProps(a,t),t},n.prototype.render=function(){var t=this.props,n=t.children,a=_extends({},objectWithoutProperties$1(t,[`children`]));return n&&(a=this.mapChildrenToProps(n,a)),import_react$24.createElement(e,a)},createClass(n,null,[{key:`canUseDOM`,set:function(t){e.canUseDOM=t}}]),n}(import_react$24.Component),t.propTypes={base:import_prop_types$1.default.object,bodyAttributes:import_prop_types$1.default.object,children:import_prop_types$1.default.oneOfType([import_prop_types$1.default.arrayOf(import_prop_types$1.default.node),import_prop_types$1.default.node]),defaultTitle:import_prop_types$1.default.string,defer:import_prop_types$1.default.bool,encodeSpecialCharacters:import_prop_types$1.default.bool,htmlAttributes:import_prop_types$1.default.object,link:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),meta:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),noscript:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),onChangeClientState:import_prop_types$1.default.func,script:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),style:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),title:import_prop_types$1.default.string,titleAttributes:import_prop_types$1.default.object,titleTemplate:import_prop_types$1.default.string},t.defaultProps={defer:!0,encodeSpecialCharacters:!0},t.peek=e.peek,t.rewind=function(){var t=e.rewind();return t||=mapStateOnServer({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:``,titleAttributes:{}}),t},n}((0,import_lib$1.default)(reducePropsToState,handleClientStateChange,mapStateOnServer)(function(){return null}));HelmetExport.renderStatic=HelmetExport.rewind,init_generateUtilityClasses(),init_generateUtilityClass();function getButtonUtilityClass(e){return generateUtilityClass(`MuiButton`,e)}var buttonClasses=generateUtilityClasses(`MuiButton`,`root.text.textInherit.textPrimary.textSecondary.textSuccess.textError.textInfo.textWarning.outlined.outlinedInherit.outlinedPrimary.outlinedSecondary.outlinedSuccess.outlinedError.outlinedInfo.outlinedWarning.contained.containedInherit.containedPrimary.containedSecondary.containedSuccess.containedError.containedInfo.containedWarning.disableElevation.focusVisible.disabled.colorInherit.colorPrimary.colorSecondary.colorSuccess.colorError.colorInfo.colorWarning.textSizeSmall.textSizeMedium.textSizeLarge.outlinedSizeSmall.outlinedSizeMedium.outlinedSizeLarge.containedSizeSmall.containedSizeMedium.containedSizeLarge.sizeMedium.sizeSmall.sizeLarge.fullWidth.startIcon.endIcon.icon.iconSizeSmall.iconSizeMedium.iconSizeLarge`.split(`.`)),ButtonGroupContext=import_react$24.createContext({}),ButtonGroupButtonContext=import_react$24.createContext(void 0);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_resolveProps(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$52=[`children`,`color`,`component`,`className`,`disabled`,`disableElevation`,`disableFocusRipple`,`endIcon`,`focusVisibleClassName`,`fullWidth`,`size`,`startIcon`,`type`,`variant`],useUtilityClasses$46=e=>{let{color:t,disableElevation:n,fullWidth:a,size:o,variant:s,classes:l}=e;return _extends$3({},l,composeClasses({root:[`root`,s,`${s}${capitalize_default(t)}`,`size${capitalize_default(o)}`,`${s}Size${capitalize_default(o)}`,`color${capitalize_default(t)}`,n&&`disableElevation`,a&&`fullWidth`],label:[`label`],startIcon:[`icon`,`startIcon`,`iconSize${capitalize_default(o)}`],endIcon:[`icon`,`endIcon`,`iconSize${capitalize_default(o)}`]},getButtonUtilityClass,l))},commonIconStyles=e=>_extends$3({},e.size===`small`&&{"& > *:nth-of-type(1)":{fontSize:18}},e.size===`medium`&&{"& > *:nth-of-type(1)":{fontSize:20}},e.size===`large`&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$1(ButtonBase,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${capitalize_default(n.color)}`],t[`size${capitalize_default(n.size)}`],t[`${n.variant}Size${capitalize_default(n.size)}`],n.color===`inherit`&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})(({theme:e,ownerState:t})=>{var n,a;let o=e.palette.mode===`light`?e.palette.grey[300]:e.palette.grey[800],s=e.palette.mode===`light`?e.palette.grey.A100:e.palette.grey[700];return _extends$3({},e.typography.button,{minWidth:64,padding:`6px 16px`,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`,`color`],{duration:e.transitions.duration.short}),"&:hover":_extends$3({textDecoration:`none`,backgroundColor:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}},t.variant===`text`&&t.color!==`inherit`&&{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}},t.variant===`outlined`&&t.color!==`inherit`&&{border:`1px solid ${(e.vars||e).palette[t.color].main}`,backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}},t.variant===`contained`&&{backgroundColor:e.vars?e.vars.palette.Button.inheritContainedHoverBg:s,boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2],backgroundColor:(e.vars||e).palette.grey[300]}},t.variant===`contained`&&t.color!==`inherit`&&{backgroundColor:(e.vars||e).palette[t.color].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t.color].main}}),"&:active":_extends$3({},t.variant===`contained`&&{boxShadow:(e.vars||e).shadows[8]}),[`&.${buttonClasses.focusVisible}`]:_extends$3({},t.variant===`contained`&&{boxShadow:(e.vars||e).shadows[6]}),[`&.${buttonClasses.disabled}`]:_extends$3({color:(e.vars||e).palette.action.disabled},t.variant===`outlined`&&{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`},t.variant===`contained`&&{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground})},t.variant===`text`&&{padding:`6px 8px`},t.variant===`text`&&t.color!==`inherit`&&{color:(e.vars||e).palette[t.color].main},t.variant===`outlined`&&{padding:`5px 15px`,border:`1px solid currentColor`},t.variant===`outlined`&&t.color!==`inherit`&&{color:(e.vars||e).palette[t.color].main,border:e.vars?`1px solid rgba(${e.vars.palette[t.color].mainChannel} / 0.5)`:`1px solid ${(0,import_colorManipulator.alpha)(e.palette[t.color].main,.5)}`},t.variant===`contained`&&{color:e.vars?e.vars.palette.text.primary:(a=e.palette).getContrastText?.call(a,e.palette.grey[300]),backgroundColor:e.vars?e.vars.palette.Button.inheritContainedBg:o,boxShadow:(e.vars||e).shadows[2]},t.variant===`contained`&&t.color!==`inherit`&&{color:(e.vars||e).palette[t.color].contrastText,backgroundColor:(e.vars||e).palette[t.color].main},t.color===`inherit`&&{color:`inherit`,borderColor:`currentColor`},t.size===`small`&&t.variant===`text`&&{padding:`4px 5px`,fontSize:e.typography.pxToRem(13)},t.size===`large`&&t.variant===`text`&&{padding:`8px 11px`,fontSize:e.typography.pxToRem(15)},t.size===`small`&&t.variant===`outlined`&&{padding:`3px 9px`,fontSize:e.typography.pxToRem(13)},t.size===`large`&&t.variant===`outlined`&&{padding:`7px 21px`,fontSize:e.typography.pxToRem(15)},t.size===`small`&&t.variant===`contained`&&{padding:`4px 10px`,fontSize:e.typography.pxToRem(13)},t.size===`large`&&t.variant===`contained`&&{padding:`8px 22px`,fontSize:e.typography.pxToRem(15)},t.fullWidth&&{width:`100%`})},({ownerState:e})=>e.disableElevation&&{boxShadow:`none`,"&:hover":{boxShadow:`none`},[`&.${buttonClasses.focusVisible}`]:{boxShadow:`none`},"&:active":{boxShadow:`none`},[`&.${buttonClasses.disabled}`]:{boxShadow:`none`}}),ButtonStartIcon=styled$1(`span`,{name:`MuiButton`,slot:`StartIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.startIcon,t[`iconSize${capitalize_default(n.size)}`]]}})(({ownerState:e})=>_extends$3({display:`inherit`,marginRight:8,marginLeft:-4},e.size===`small`&&{marginLeft:-2},commonIconStyles(e))),ButtonEndIcon=styled$1(`span`,{name:`MuiButton`,slot:`EndIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.endIcon,t[`iconSize${capitalize_default(n.size)}`]]}})(({ownerState:e})=>_extends$3({display:`inherit`,marginRight:-4,marginLeft:8},e.size===`small`&&{marginRight:-2},commonIconStyles(e))),Button=import_react$24.forwardRef(function(e,t){let n=import_react$24.useContext(ButtonGroupContext),a=import_react$24.useContext(ButtonGroupButtonContext),o=useDefaultProps({props:resolveProps(n,e),name:`MuiButton`}),{children:s,color:l=`primary`,component:u=`button`,className:d,disabled:f=!1,disableElevation:m=!1,disableFocusRipple:h=!1,endIcon:v,focusVisibleClassName:y,fullWidth:b=!1,size:x=`medium`,startIcon:S,type:C,variant:T=`text`}=o,E=_objectWithoutPropertiesLoose$3(o,_excluded$52),D=_extends$3({},o,{color:l,component:u,disabled:f,disableElevation:m,disableFocusRipple:h,fullWidth:b,size:x,type:C,variant:T}),O=useUtilityClasses$46(D),k=S&&(0,import_jsx_runtime.jsx)(ButtonStartIcon,{className:O.startIcon,ownerState:D,children:S}),j=v&&(0,import_jsx_runtime.jsx)(ButtonEndIcon,{className:O.endIcon,ownerState:D,children:v}),M=a||``;return(0,import_jsx_runtime.jsxs)(ButtonRoot,_extends$3({ownerState:D,className:clsx$1(n.className,O.root,d,M),component:u,disabled:f,focusRipple:!h,focusVisibleClassName:clsx$1(O.focusVisible,y),ref:t,type:C},E,{classes:O,children:[k,s,j]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogUtilityClass(e){return generateUtilityClass(`MuiDialog`,e)}var dialogClasses=generateUtilityClasses(`MuiDialog`,[`root`,`scrollPaper`,`scrollBody`,`container`,`paper`,`paperScrollPaper`,`paperScrollBody`,`paperWidthFalse`,`paperWidthXs`,`paperWidthSm`,`paperWidthMd`,`paperWidthLg`,`paperWidthXl`,`paperFullWidth`,`paperFullScreen`]),DialogContext=import_react$24.createContext({});init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useId$1(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$51=[`aria-describedby`,`aria-labelledby`,`BackdropComponent`,`BackdropProps`,`children`,`className`,`disableEscapeKeyDown`,`fullScreen`,`fullWidth`,`maxWidth`,`onBackdropClick`,`onClick`,`onClose`,`open`,`PaperComponent`,`PaperProps`,`scroll`,`TransitionComponent`,`transitionDuration`,`TransitionProps`],DialogBackdrop=styled$1(Backdrop,{name:`MuiDialog`,slot:`Backdrop`,overrides:(e,t)=>t.backdrop})({zIndex:-1}),useUtilityClasses$45=e=>{let{classes:t,scroll:n,maxWidth:a,fullWidth:o,fullScreen:s}=e;return composeClasses({root:[`root`],container:[`container`,`scroll${capitalize_default(n)}`],paper:[`paper`,`paperScroll${capitalize_default(n)}`,`paperWidth${capitalize_default(String(a))}`,o&&`paperFullWidth`,s&&`paperFullScreen`]},getDialogUtilityClass,t)},DialogRoot=styled$1(Modal,{name:`MuiDialog`,slot:`Root`,overridesResolver:(e,t)=>t.root})({"@media print":{position:`absolute !important`}}),DialogContainer=styled$1(`div`,{name:`MuiDialog`,slot:`Container`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.container,t[`scroll${capitalize_default(n.scroll)}`]]}})(({ownerState:e})=>_extends$3({height:`100%`,"@media print":{height:`auto`},outline:0},e.scroll===`paper`&&{display:`flex`,justifyContent:`center`,alignItems:`center`},e.scroll===`body`&&{overflowY:`auto`,overflowX:`hidden`,textAlign:`center`,"&::after":{content:`""`,display:`inline-block`,verticalAlign:`middle`,height:`100%`,width:`0`}})),DialogPaper=styled$1(Paper,{name:`MuiDialog`,slot:`Paper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.paper,t[`scrollPaper${capitalize_default(n.scroll)}`],t[`paperWidth${capitalize_default(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(({theme:e,ownerState:t})=>_extends$3({margin:32,position:`relative`,overflowY:`auto`,"@media print":{overflowY:`visible`,boxShadow:`none`}},t.scroll===`paper`&&{display:`flex`,flexDirection:`column`,maxHeight:`calc(100% - 64px)`},t.scroll===`body`&&{display:`inline-block`,verticalAlign:`middle`,textAlign:`left`},!t.maxWidth&&{maxWidth:`calc(100% - 64px)`},t.maxWidth===`xs`&&{maxWidth:e.breakpoints.unit===`px`?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${dialogClasses.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:`calc(100% - 64px)`}}},t.maxWidth&&t.maxWidth!==`xs`&&{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`,[`&.${dialogClasses.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t.maxWidth]+64)]:{maxWidth:`calc(100% - 64px)`}}},t.fullWidth&&{width:`calc(100% - 64px)`},t.fullScreen&&{margin:0,width:`100%`,maxWidth:`100%`,height:`100%`,maxHeight:`none`,borderRadius:0,[`&.${dialogClasses.paperScrollBody}`]:{margin:0,maxWidth:`100%`}})),Dialog=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialog`}),a=useTheme$1(),o={enter:a.transitions.duration.enteringScreen,exit:a.transitions.duration.leavingScreen},{"aria-describedby":s,"aria-labelledby":l,BackdropComponent:u,BackdropProps:d,children:f,className:m,disableEscapeKeyDown:h=!1,fullScreen:v=!1,fullWidth:y=!1,maxWidth:b=`sm`,onBackdropClick:x,onClick:S,onClose:C,open:T,PaperComponent:E=Paper,PaperProps:D={},scroll:O=`paper`,TransitionComponent:k=Fade,transitionDuration:j=o,TransitionProps:M}=n,N=_objectWithoutPropertiesLoose$3(n,_excluded$51),F=_extends$3({},n,{disableEscapeKeyDown:h,fullScreen:v,fullWidth:y,maxWidth:b,scroll:O}),I=useUtilityClasses$45(F),L=import_react$24.useRef(),R=e=>{L.current=e.target===e.currentTarget},z=e=>{S&&S(e),L.current&&(L.current=null,x&&x(e),C&&C(e,`backdropClick`))},B=useId(l),V=import_react$24.useMemo(()=>({titleId:B}),[B]);return(0,import_jsx_runtime.jsx)(DialogRoot,_extends$3({className:clsx$1(I.root,m),closeAfterTransition:!0,components:{Backdrop:DialogBackdrop},componentsProps:{backdrop:_extends$3({transitionDuration:j,as:u},d)},disableEscapeKeyDown:h,onClose:C,open:T,ref:t,onClick:z,ownerState:F},N,{children:(0,import_jsx_runtime.jsx)(k,_extends$3({appear:!0,in:T,timeout:j,role:`presentation`},M,{children:(0,import_jsx_runtime.jsx)(DialogContainer,{className:clsx$1(I.container),onMouseDown:R,ownerState:F,children:(0,import_jsx_runtime.jsx)(DialogPaper,_extends$3({as:E,elevation:24,role:`dialog`,"aria-describedby":s,"aria-labelledby":B},D,{className:clsx$1(I.paper,D.className),ownerState:F,children:(0,import_jsx_runtime.jsx)(DialogContext.Provider,{value:V,children:f})}))})}))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogTitleUtilityClass(e){return generateUtilityClass(`MuiDialogTitle`,e)}var dialogTitleClasses=generateUtilityClasses(`MuiDialogTitle`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$50=[`className`,`id`],useUtilityClasses$44=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getDialogTitleUtilityClass,t)},DialogTitleRoot=styled$1(Typography,{name:`MuiDialogTitle`,slot:`Root`,overridesResolver:(e,t)=>t.root})({padding:`16px 24px`,flex:`0 0 auto`}),DialogTitle=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialogTitle`}),{className:a,id:o}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$50),l=n,u=useUtilityClasses$44(l),{titleId:d=o}=import_react$24.useContext(DialogContext);return(0,import_jsx_runtime.jsx)(DialogTitleRoot,_extends$3({component:`h2`,className:clsx$1(u.root,a),ownerState:l,ref:t,variant:`h6`,id:o??d},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogContentUtilityClass(e){return generateUtilityClass(`MuiDialogContent`,e)}var dialogContentClasses=generateUtilityClasses(`MuiDialogContent`,[`root`,`dividers`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$49=[`className`,`dividers`],useUtilityClasses$43=e=>{let{classes:t,dividers:n}=e;return composeClasses({root:[`root`,n&&`dividers`]},getDialogContentUtilityClass,t)},DialogContentRoot=styled$1(`div`,{name:`MuiDialogContent`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(({theme:e,ownerState:t})=>_extends$3({flex:`1 1 auto`,WebkitOverflowScrolling:`touch`,overflowY:`auto`,padding:`20px 24px`},t.dividers?{padding:`16px 24px`,borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}:{[`.${dialogTitleClasses.root} + &`]:{paddingTop:0}})),DialogContent=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialogContent`}),{className:a,dividers:o=!1}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$49),l=_extends$3({},n,{dividers:o}),u=useUtilityClasses$43(l);return(0,import_jsx_runtime.jsx)(DialogContentRoot,_extends$3({className:clsx$1(u.root,a),ownerState:l,ref:t},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogActionsUtilityClass(e){return generateUtilityClass(`MuiDialogActions`,e)}var dialogActionsClasses=generateUtilityClasses(`MuiDialogActions`,[`root`,`spacing`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$48=[`className`,`disableSpacing`],useUtilityClasses$42=e=>{let{classes:t,disableSpacing:n}=e;return composeClasses({root:[`root`,!n&&`spacing`]},getDialogActionsUtilityClass,t)},DialogActionsRoot=styled$1(`div`,{name:`MuiDialogActions`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>_extends$3({display:`flex`,alignItems:`center`,padding:8,justifyContent:`flex-end`,flex:`0 0 auto`},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),DialogActions=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialogActions`}),{className:a,disableSpacing:o=!1}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$48),l=_extends$3({},n,{disableSpacing:o}),u=useUtilityClasses$42(l);return(0,import_jsx_runtime.jsx)(DialogActionsRoot,_extends$3({className:clsx$1(u.root,a),ownerState:l,ref:t},s))}),chitchatterDomain=`https://chitchatter.im`,ChatRoom=()=>{let e=`chat-title`,t=`chat-content`,{handlers:{handleChatRoomOpenStateChange:n},gameState:{playerId:a,isChatOpen:o,room:s}}=(0,import_react$24.useContext)(FarmhandContext),l=()=>{n(!1)},u=(0,import_jsx_runtime.jsx)(`chat-room`,{"root-url":chitchatterDomain,room:`__farmhand__${s}`,"user-id":a,style:{height:`100%`,width:`100%`,border:`none`},"color-mode":`light`});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(HelmetExport,{children:(0,import_jsx_runtime.jsx)(`script`,{src:`${chitchatterDomain}/sdk.js`})}),(0,import_jsx_runtime.jsxs)(Dialog,{className:(0,import_classnames.default)(`Farmhand`,`ChatRoom`),fullWidth:!0,keepMounted:!0,fullScreen:!0,open:o,onClose:l,sx:{"& .MuiDialog-container":{padding:`1em`,height:`calc(100% - 2em)`}},"aria-describedby":e,"aria-labelledby":t,children:[(0,import_jsx_runtime.jsx)(DialogTitle,{id:e,children:`Chat room`}),(0,import_jsx_runtime.jsx)(DialogContent,{id:t,children:u}),(0,import_jsx_runtime.jsx)(DialogActions,{children:(0,import_jsx_runtime.jsx)(Button,{onClick:l,color:`primary`,autoFocus:!0,children:`Close`})})]})]})},AccordionContext=import_react$24.createContext({});init_extends(),init_objectWithoutPropertiesLoose(),init_useForkRef$1(),init_appendOwnerState(),init_resolveComponentProps(),init_mergeSlotProps();var _excluded$47=[`className`,`elementType`,`ownerState`,`externalForwardedProps`,`getSlotOwnerState`,`internalForwardedProps`],_excluded2$3=[`component`,`slots`,`slotProps`],_excluded3$1=[`component`];function useSlot(e,t){let{className:n,elementType:a,ownerState:o,externalForwardedProps:s,getSlotOwnerState:l,internalForwardedProps:u}=t,d=_objectWithoutPropertiesLoose$3(t,_excluded$47),{component:f,slots:m={[e]:void 0},slotProps:h={[e]:void 0}}=s,v=_objectWithoutPropertiesLoose$3(s,_excluded2$3),y=m[e]||a,b=resolveComponentProps(h[e],o),x=mergeSlotProps(_extends$3({className:n},d,{externalForwardedProps:e===`root`?v:void 0,externalSlotProps:b})),{props:{component:S},internalRef:C}=x,T=_objectWithoutPropertiesLoose$3(x.props,_excluded3$1),E=useForkRef(C,b?.ref,t.ref),D=l?l(T):{},O=_extends$3({},o,D),k=e===`root`?S||f:S,j=appendOwnerState(y,_extends$3({},e===`root`&&!f&&!m[e]&&u,e!==`root`&&!m[e]&&u,T,k&&{as:k},{ref:E}),O);return Object.keys(D).forEach(e=>{delete j[e]}),[y,j]}init_generateUtilityClasses(),init_generateUtilityClass();function getAccordionUtilityClass(e){return generateUtilityClass(`MuiAccordion`,e)}var accordionClasses=generateUtilityClasses(`MuiAccordion`,[`root`,`rounded`,`expanded`,`disabled`,`gutters`,`region`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_useControlled();var _excluded$46=[`children`,`className`,`defaultExpanded`,`disabled`,`disableGutters`,`expanded`,`onChange`,`square`,`slots`,`slotProps`,`TransitionComponent`,`TransitionProps`],useUtilityClasses$41=e=>{let{classes:t,square:n,expanded:a,disabled:o,disableGutters:s}=e;return composeClasses({root:[`root`,!n&&`rounded`,a&&`expanded`,o&&`disabled`,!s&&`gutters`],region:[`region`]},getAccordionUtilityClass,t)},AccordionRoot=styled$1(Paper,{name:`MuiAccordion`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${accordionClasses.region}`]:t.region},t.root,!n.square&&t.rounded,!n.disableGutters&&t.gutters]}})(({theme:e})=>{let t={duration:e.transitions.duration.shortest};return{position:`relative`,transition:e.transitions.create([`margin`],t),overflowAnchor:`none`,"&::before":{position:`absolute`,left:0,top:-1,right:0,height:1,content:`""`,opacity:1,backgroundColor:(e.vars||e).palette.divider,transition:e.transitions.create([`opacity`,`background-color`],t)},"&:first-of-type":{"&::before":{display:`none`}},[`&.${accordionClasses.expanded}`]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:`none`}}},[`&.${accordionClasses.disabled}`]:{backgroundColor:(e.vars||e).palette.action.disabledBackground}}},({theme:e})=>({variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(e.vars||e).shape.borderRadius,borderBottomRightRadius:(e.vars||e).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{[`&.${accordionClasses.expanded}`]:{margin:`16px 0`}}}]})),Accordion=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAccordion`}),{children:a,className:o,defaultExpanded:s=!1,disabled:l=!1,disableGutters:u=!1,expanded:d,onChange:f,square:m=!1,slots:h={},slotProps:v={},TransitionComponent:y,TransitionProps:b}=n,x=_objectWithoutPropertiesLoose$3(n,_excluded$46),[S,C]=useControlled_default({controlled:d,default:s,name:`Accordion`,state:`expanded`}),T=import_react$24.useCallback(e=>{C(!S),f&&f(e,!S)},[S,f,C]),[E,...D]=import_react$24.Children.toArray(a),O=import_react$24.useMemo(()=>({expanded:S,disabled:l,disableGutters:u,toggle:T}),[S,l,u,T]),k=_extends$3({},n,{square:m,disabled:l,disableGutters:u,expanded:S}),j=useUtilityClasses$41(k),[M,N]=useSlot(`transition`,{elementType:Collapse,externalForwardedProps:{slots:_extends$3({transition:y},h),slotProps:_extends$3({transition:b},v)},ownerState:k});return(0,import_jsx_runtime.jsxs)(AccordionRoot,_extends$3({className:clsx$1(j.root,o),ref:t,ownerState:k,square:m},x,{children:[(0,import_jsx_runtime.jsx)(AccordionContext.Provider,{value:O,children:E}),(0,import_jsx_runtime.jsx)(M,_extends$3({in:S,timeout:`auto`},N,{children:(0,import_jsx_runtime.jsx)(`div`,{"aria-labelledby":E.props.id,id:E.props[`aria-controls`],role:`region`,className:j.region,children:D})}))]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getAccordionSummaryUtilityClass(e){return generateUtilityClass(`MuiAccordionSummary`,e)}var accordionSummaryClasses=generateUtilityClasses(`MuiAccordionSummary`,[`root`,`expanded`,`focusVisible`,`disabled`,`gutters`,`contentGutters`,`content`,`expandIconWrapper`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$45=[`children`,`className`,`expandIcon`,`focusVisibleClassName`,`onClick`],useUtilityClasses$40=e=>{let{classes:t,expanded:n,disabled:a,disableGutters:o}=e;return composeClasses({root:[`root`,n&&`expanded`,a&&`disabled`,!o&&`gutters`],focusVisible:[`focusVisible`],content:[`content`,n&&`expanded`,!o&&`contentGutters`],expandIconWrapper:[`expandIconWrapper`,n&&`expanded`]},getAccordionSummaryUtilityClass,t)},AccordionSummaryRoot=styled$1(ButtonBase,{name:`MuiAccordionSummary`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>{let t={duration:e.transitions.duration.shortest};return{display:`flex`,minHeight:48,padding:e.spacing(0,2),transition:e.transitions.create([`min-height`,`background-color`],t),[`&.${accordionSummaryClasses.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${accordionSummaryClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`&:hover:not(.${accordionSummaryClasses.disabled})`]:{cursor:`pointer`},variants:[{props:e=>!e.disableGutters,style:{[`&.${accordionSummaryClasses.expanded}`]:{minHeight:64}}}]}}),AccordionSummaryContent=styled$1(`div`,{name:`MuiAccordionSummary`,slot:`Content`,overridesResolver:(e,t)=>t.content})(({theme:e})=>({display:`flex`,flexGrow:1,margin:`12px 0`,variants:[{props:e=>!e.disableGutters,style:{transition:e.transitions.create([`margin`],{duration:e.transitions.duration.shortest}),[`&.${accordionSummaryClasses.expanded}`]:{margin:`20px 0`}}}]})),AccordionSummaryExpandIconWrapper=styled$1(`div`,{name:`MuiAccordionSummary`,slot:`ExpandIconWrapper`,overridesResolver:(e,t)=>t.expandIconWrapper})(({theme:e})=>({display:`flex`,color:(e.vars||e).palette.action.active,transform:`rotate(0deg)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shortest}),[`&.${accordionSummaryClasses.expanded}`]:{transform:`rotate(180deg)`}})),AccordionSummary=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAccordionSummary`}),{children:a,className:o,expandIcon:s,focusVisibleClassName:l,onClick:u}=n,d=_objectWithoutPropertiesLoose$3(n,_excluded$45),{disabled:f=!1,disableGutters:m,expanded:h,toggle:v}=import_react$24.useContext(AccordionContext),y=e=>{v&&v(e),u&&u(e)},b=_extends$3({},n,{expanded:h,disabled:f,disableGutters:m}),x=useUtilityClasses$40(b);return(0,import_jsx_runtime.jsxs)(AccordionSummaryRoot,_extends$3({focusRipple:!1,disableRipple:!0,disabled:f,component:`div`,"aria-expanded":h,className:clsx$1(x.root,o),focusVisibleClassName:clsx$1(x.focusVisible,l),onClick:y,ref:t,ownerState:b},d,{children:[(0,import_jsx_runtime.jsx)(AccordionSummaryContent,{className:x.content,ownerState:b,children:a}),s&&(0,import_jsx_runtime.jsx)(AccordionSummaryExpandIconWrapper,{className:x.expandIconWrapper,ownerState:b,children:s})]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getAccordionDetailsUtilityClass(e){return generateUtilityClass(`MuiAccordionDetails`,e)}var accordionDetailsClasses=generateUtilityClasses(`MuiAccordionDetails`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$44=[`className`],useUtilityClasses$39=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getAccordionDetailsUtilityClass,t)},AccordionDetailsRoot=styled$1(`div`,{name:`MuiAccordionDetails`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>({padding:e.spacing(1,2,2)})),AccordionDetails=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAccordionDetails`}),{className:a}=n,o=_objectWithoutPropertiesLoose$3(n,_excluded$44),s=n,l=useUtilityClasses$39(s);return(0,import_jsx_runtime.jsx)(AccordionDetailsRoot,_extends$3({className:clsx$1(l.root,a),ref:t,ownerState:s},o))}),FormControlContext=import_react$24.createContext(void 0);function useFormControl(){return import_react$24.useContext(FormControlContext)}init_generateUtilityClasses(),init_generateUtilityClass();function getSwitchBaseUtilityClass(e){return generateUtilityClass(`PrivateSwitchBase`,e)}var switchBaseClasses=generateUtilityClasses(`PrivateSwitchBase`,[`root`,`checked`,`disabled`,`input`,`edgeStart`,`edgeEnd`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_styled(),init_useControlled();var _excluded$43=[`autoFocus`,`checked`,`checkedIcon`,`className`,`defaultChecked`,`disabled`,`disableFocusRipple`,`edge`,`icon`,`id`,`inputProps`,`inputRef`,`name`,`onBlur`,`onChange`,`onFocus`,`readOnly`,`required`,`tabIndex`,`type`,`value`],useUtilityClasses$38=e=>{let{classes:t,checked:n,disabled:a,edge:o}=e;return composeClasses({root:[`root`,n&&`checked`,a&&`disabled`,o&&`edge${capitalize_default(o)}`],input:[`input`]},getSwitchBaseUtilityClass,t)},SwitchBaseRoot=styled$1(ButtonBase,{name:`MuiSwitchBase`})(({ownerState:e})=>_extends$3({padding:9,borderRadius:`50%`},e.edge===`start`&&{marginLeft:e.size===`small`?-3:-12},e.edge===`end`&&{marginRight:e.size===`small`?-3:-12})),SwitchBaseInput=styled$1(`input`,{name:`MuiSwitchBase`,shouldForwardProp:rootShouldForwardProp})({cursor:`inherit`,position:`absolute`,opacity:0,width:`100%`,height:`100%`,top:0,left:0,margin:0,padding:0,zIndex:1}),SwitchBase=import_react$24.forwardRef(function(e,t){let{autoFocus:n,checked:a,checkedIcon:o,className:s,defaultChecked:l,disabled:u,disableFocusRipple:d=!1,edge:f=!1,icon:m,id:h,inputProps:v,inputRef:y,name:b,onBlur:x,onChange:S,onFocus:C,readOnly:T,required:E=!1,tabIndex:D,type:O,value:k}=e,j=_objectWithoutPropertiesLoose$3(e,_excluded$43),[M,N]=useControlled_default({controlled:a,default:!!l,name:`SwitchBase`,state:`checked`}),F=useFormControl(),I=e=>{C&&C(e),F&&F.onFocus&&F.onFocus(e)},L=e=>{x&&x(e),F&&F.onBlur&&F.onBlur(e)},R=e=>{if(e.nativeEvent.defaultPrevented)return;let t=e.target.checked;N(t),S&&S(e,t)},z=u;F&&z===void 0&&(z=F.disabled);let B=O===`checkbox`||O===`radio`,V=_extends$3({},e,{checked:M,disabled:z,disableFocusRipple:d,edge:f}),H=useUtilityClasses$38(V);return(0,import_jsx_runtime.jsxs)(SwitchBaseRoot,_extends$3({component:`span`,className:clsx$1(H.root,s),centerRipple:!0,focusRipple:!d,disabled:z,tabIndex:null,role:void 0,onFocus:I,onBlur:L,ownerState:V,ref:t},j,{children:[(0,import_jsx_runtime.jsx)(SwitchBaseInput,_extends$3({autoFocus:n,checked:a,defaultChecked:l,className:H.input,disabled:z,id:B?h:void 0,name:b,onChange:R,readOnly:T,ref:y,required:E,ownerState:V,tabIndex:D,type:O},O===`checkbox`&&k===void 0?{}:{value:k},v)),M?o:m]}))});init_createSvgIcon();var CheckBoxOutlineBlank_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z`}),`CheckBoxOutlineBlank`);init_createSvgIcon();var CheckBox_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z`}),`CheckBox`);init_createSvgIcon();var IndeterminateCheckBox_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z`}),`IndeterminateCheckBox`);init_generateUtilityClasses(),init_generateUtilityClass();function getCheckboxUtilityClass(e){return generateUtilityClass(`MuiCheckbox`,e)}var checkboxClasses=generateUtilityClasses(`MuiCheckbox`,[`root`,`checked`,`disabled`,`indeterminate`,`colorPrimary`,`colorSecondary`,`sizeSmall`,`sizeMedium`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$42=[`checkedIcon`,`color`,`icon`,`indeterminate`,`indeterminateIcon`,`inputProps`,`size`,`className`],useUtilityClasses$37=e=>{let{classes:t,indeterminate:n,color:a,size:o}=e;return _extends$3({},t,composeClasses({root:[`root`,n&&`indeterminate`,`color${capitalize_default(a)}`,`size${capitalize_default(o)}`]},getCheckboxUtilityClass,t))},CheckboxRoot=styled$1(SwitchBase,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiCheckbox`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${capitalize_default(n.size)}`],n.color!=="default"&&t[`color${capitalize_default(n.color)}`]]}})(({theme:e,ownerState:t})=>_extends$3({color:(e.vars||e).palette.text.secondary},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${t.color==="default"?e.vars.palette.action.activeChannel:e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(t.color==="default"?e.palette.action.active:e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}}},t.color!=="default"&&{[`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]:{color:(e.vars||e).palette[t.color].main},[`&.${checkboxClasses.disabled}`]:{color:(e.vars||e).palette.action.disabled}})),defaultCheckedIcon=(0,import_jsx_runtime.jsx)(CheckBox_default,{}),defaultIcon=(0,import_jsx_runtime.jsx)(CheckBoxOutlineBlank_default,{}),defaultIndeterminateIcon=(0,import_jsx_runtime.jsx)(IndeterminateCheckBox_default,{}),Checkbox=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiCheckbox`}),{checkedIcon:s=defaultCheckedIcon,color:l=`primary`,icon:u=defaultIcon,indeterminate:d=!1,indeterminateIcon:f=defaultIndeterminateIcon,inputProps:m,size:h=`medium`,className:v}=o,y=_objectWithoutPropertiesLoose$3(o,_excluded$42),b=d?f:u,x=d?f:s,S=_extends$3({},o,{color:l,indeterminate:d,size:h}),C=useUtilityClasses$37(S);return(0,import_jsx_runtime.jsx)(CheckboxRoot,_extends$3({type:`checkbox`,inputProps:_extends$3({"data-indeterminate":d},m),icon:import_react$24.cloneElement(b,{fontSize:b.props.fontSize??h}),checkedIcon:import_react$24.cloneElement(x,{fontSize:x.props.fontSize??h}),ownerState:S,ref:t,className:clsx$1(C.root,v)},y,{classes:C}))});function hasValue(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function isFilled(e,t=!1){return e&&(hasValue(e.value)&&e.value!==``||t&&hasValue(e.defaultValue)&&e.defaultValue!==``)}function isAdornedStart(e){return e.startAdornment}init_generateUtilityClasses(),init_generateUtilityClass();function getFormControlUtilityClasses(e){return generateUtilityClass(`MuiFormControl`,e)}var formControlClasses=generateUtilityClasses(`MuiFormControl`,[`root`,`marginNone`,`marginNormal`,`marginDense`,`fullWidth`,`disabled`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled(),init_capitalize(),init_isMuiElement();var _excluded$41=[`children`,`className`,`color`,`component`,`disabled`,`error`,`focused`,`fullWidth`,`hiddenLabel`,`margin`,`required`,`size`,`variant`],useUtilityClasses$36=e=>{let{classes:t,margin:n,fullWidth:a}=e;return composeClasses({root:[`root`,n!==`none`&&`margin${capitalize_default(n)}`,a&&`fullWidth`]},getFormControlUtilityClasses,t)},FormControlRoot=styled$1(`div`,{name:`MuiFormControl`,slot:`Root`,overridesResolver:({ownerState:e},t)=>_extends$3({},t.root,t[`margin${capitalize_default(e.margin)}`],e.fullWidth&&t.fullWidth)})(({ownerState:e})=>_extends$3({display:`inline-flex`,flexDirection:`column`,position:`relative`,minWidth:0,padding:0,margin:0,border:0,verticalAlign:`top`},e.margin===`normal`&&{marginTop:16,marginBottom:8},e.margin===`dense`&&{marginTop:8,marginBottom:4},e.fullWidth&&{width:`100%`})),FormControl=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiFormControl`}),{children:a,className:o,color:s=`primary`,component:l=`div`,disabled:u=!1,error:d=!1,focused:f,fullWidth:m=!1,hiddenLabel:h=!1,margin:v=`none`,required:y=!1,size:b=`medium`,variant:x=`outlined`}=n,S=_objectWithoutPropertiesLoose$3(n,_excluded$41),C=_extends$3({},n,{color:s,component:l,disabled:u,error:d,fullWidth:m,hiddenLabel:h,margin:v,required:y,size:b,variant:x}),T=useUtilityClasses$36(C),[E,D]=import_react$24.useState(()=>{let e=!1;return a&&import_react$24.Children.forEach(a,t=>{if(!isMuiElement_default(t,[`Input`,`Select`]))return;let n=isMuiElement_default(t,[`Select`])?t.props.input:t;n&&isAdornedStart(n.props)&&(e=!0)}),e}),[O,k]=import_react$24.useState(()=>{let e=!1;return a&&import_react$24.Children.forEach(a,t=>{isMuiElement_default(t,[`Input`,`Select`])&&(isFilled(t.props,!0)||isFilled(t.props.inputProps,!0))&&(e=!0)}),e}),[j,M]=import_react$24.useState(!1);u&&j&&M(!1);let N=f!==void 0&&!u?f:j,F,I=import_react$24.useMemo(()=>({adornedStart:E,setAdornedStart:D,color:s,disabled:u,error:d,filled:O,focused:N,fullWidth:m,hiddenLabel:h,size:b,onBlur:()=>{M(!1)},onEmpty:()=>{k(!1)},onFilled:()=>{k(!0)},onFocus:()=>{M(!0)},registerEffect:void 0,required:y,variant:x}),[E,s,u,d,O,N,m,h,void 0,y,b,x]);return(0,import_jsx_runtime.jsx)(FormControlContext.Provider,{value:I,children:(0,import_jsx_runtime.jsx)(FormControlRoot,_extends$3({as:l,ownerState:C,className:clsx$1(T.root,o),ref:t},S,{children:a}))})});init_styled(),init_DefaultPropsProvider();var Stack=createStack({createStyledComponent:styled$1(`div`,{name:`MuiStack`,slot:`Root`,overridesResolver:(e,t)=>t.root}),useThemeProps:e=>useDefaultProps({props:e,name:`MuiStack`})});init_generateUtilityClasses(),init_generateUtilityClass();function getFormControlLabelUtilityClasses(e){return generateUtilityClass(`MuiFormControlLabel`,e)}var formControlLabelClasses=generateUtilityClasses(`MuiFormControlLabel`,[`root`,`labelPlacementStart`,`labelPlacementTop`,`labelPlacementBottom`,`disabled`,`label`,`error`,`required`,`asterisk`]);function formControlState({props:e,states:t,muiFormControl:n}){return t.reduce((t,a)=>(t[a]=e[a],n&&e[a]===void 0&&(t[a]=n[a]),t),{})}init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_styled(),init_DefaultPropsProvider();var _excluded$40=[`checked`,`className`,`componentsProps`,`control`,`disabled`,`disableTypography`,`inputRef`,`label`,`labelPlacement`,`name`,`onChange`,`required`,`slotProps`,`value`],useUtilityClasses$35=e=>{let{classes:t,disabled:n,labelPlacement:a,error:o,required:s}=e;return composeClasses({root:[`root`,n&&`disabled`,`labelPlacement${capitalize_default(a)}`,o&&`error`,s&&`required`],label:[`label`,n&&`disabled`],asterisk:[`asterisk`,o&&`error`]},getFormControlLabelUtilityClasses,t)},FormControlLabelRoot=styled$1(`label`,{name:`MuiFormControlLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${formControlLabelClasses.label}`]:t.label},t.root,t[`labelPlacement${capitalize_default(n.labelPlacement)}`]]}})(({theme:e,ownerState:t})=>_extends$3({display:`inline-flex`,alignItems:`center`,cursor:`pointer`,verticalAlign:`middle`,WebkitTapHighlightColor:`transparent`,marginLeft:-11,marginRight:16,[`&.${formControlLabelClasses.disabled}`]:{cursor:`default`}},t.labelPlacement===`start`&&{flexDirection:`row-reverse`,marginLeft:16,marginRight:-11},t.labelPlacement===`top`&&{flexDirection:`column-reverse`,marginLeft:16},t.labelPlacement===`bottom`&&{flexDirection:`column`,marginLeft:16},{[`& .${formControlLabelClasses.label}`]:{[`&.${formControlLabelClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled}}})),AsteriskComponent$1=styled$1(`span`,{name:`MuiFormControlLabel`,slot:`Asterisk`,overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${formControlLabelClasses.error}`]:{color:(e.vars||e).palette.error.main}})),FormControlLabel=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiFormControlLabel`}),{className:s,componentsProps:l={},control:u,disabled:d,disableTypography:f,label:m,labelPlacement:h=`end`,required:v,slotProps:y={}}=o,b=_objectWithoutPropertiesLoose$3(o,_excluded$40),x=useFormControl(),S=d??u.props.disabled??x?.disabled,C=v??u.props.required,T={disabled:S,required:C};[`checked`,`name`,`onChange`,`value`,`inputRef`].forEach(e=>{u.props[e]===void 0&&o[e]!==void 0&&(T[e]=o[e])});let E=_extends$3({},o,{disabled:S,labelPlacement:h,required:C,error:formControlState({props:o,muiFormControl:x,states:[`error`]}).error}),D=useUtilityClasses$35(E),O=y.typography??l.typography,k=m;return k!=null&&k.type!==Typography&&!f&&(k=(0,import_jsx_runtime.jsx)(Typography,_extends$3({component:`span`},O,{className:clsx$1(D.label,O?.className),children:k}))),(0,import_jsx_runtime.jsxs)(FormControlLabelRoot,_extends$3({className:clsx$1(D.root,s),ownerState:E,ref:t},b,{children:[import_react$24.cloneElement(u,T),C?(0,import_jsx_runtime.jsxs)(Stack,{display:`block`,children:[k,(0,import_jsx_runtime.jsxs)(AsteriskComponent$1,{ownerState:E,"aria-hidden":!0,className:D.asterisk,children:[` `,`*`]})]}):k]}))}),require_ExpandMore=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z`}),`ExpandMore`)})),require_KeyboardArrowUp=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z`}),`KeyboardArrowUp`)})),require_KeyboardArrowDown=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z`}),`KeyboardArrowDown`)}));init_generateUtilityClasses();var boxClasses=generateUtilityClasses(`MuiBox`,[`root`]);init_ClassNameGenerator$1(),init_createTheme(),init_identifier();var Box=createBox({themeId:identifier_default,defaultTheme:createTheme(),defaultClassName:boxClasses.root,generateClassName:ClassNameGenerator.generate});init_generateUtilityClasses(),init_generateUtilityClass();function getCardUtilityClass(e){return generateUtilityClass(`MuiCard`,e)}var cardClasses=generateUtilityClasses(`MuiCard`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$39=[`className`,`raised`],useUtilityClasses$34=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getCardUtilityClass,t)},CardRoot=styled$1(Paper,{name:`MuiCard`,slot:`Root`,overridesResolver:(e,t)=>t.root})(()=>({overflow:`hidden`})),Card=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCard`}),{className:a,raised:o=!1}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$39),l=_extends$3({},n,{raised:o}),u=useUtilityClasses$34(l);return(0,import_jsx_runtime.jsx)(CardRoot,_extends$3({className:clsx$1(u.root,a),elevation:o?8:void 0,ref:t,ownerState:l},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getCardHeaderUtilityClass(e){return generateUtilityClass(`MuiCardHeader`,e)}var cardHeaderClasses=generateUtilityClasses(`MuiCardHeader`,[`root`,`avatar`,`action`,`content`,`title`,`subheader`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled();var _excluded$38=[`action`,`avatar`,`className`,`component`,`disableTypography`,`subheader`,`subheaderTypographyProps`,`title`,`titleTypographyProps`],useUtilityClasses$33=e=>{let{classes:t}=e;return composeClasses({root:[`root`],avatar:[`avatar`],action:[`action`],content:[`content`],title:[`title`],subheader:[`subheader`]},getCardHeaderUtilityClass,t)},CardHeaderRoot=styled$1(`div`,{name:`MuiCardHeader`,slot:`Root`,overridesResolver:(e,t)=>_extends$3({[`& .${cardHeaderClasses.title}`]:t.title,[`& .${cardHeaderClasses.subheader}`]:t.subheader},t.root)})({display:`flex`,alignItems:`center`,padding:16}),CardHeaderAvatar=styled$1(`div`,{name:`MuiCardHeader`,slot:`Avatar`,overridesResolver:(e,t)=>t.avatar})({display:`flex`,flex:`0 0 auto`,marginRight:16}),CardHeaderAction=styled$1(`div`,{name:`MuiCardHeader`,slot:`Action`,overridesResolver:(e,t)=>t.action})({flex:`0 0 auto`,alignSelf:`flex-start`,marginTop:-4,marginRight:-8,marginBottom:-4}),CardHeaderContent=styled$1(`div`,{name:`MuiCardHeader`,slot:`Content`,overridesResolver:(e,t)=>t.content})({flex:`1 1 auto`}),CardHeader=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCardHeader`}),{action:a,avatar:o,className:s,component:l=`div`,disableTypography:u=!1,subheader:d,subheaderTypographyProps:f,title:m,titleTypographyProps:h}=n,v=_objectWithoutPropertiesLoose$3(n,_excluded$38),y=_extends$3({},n,{component:l,disableTypography:u}),b=useUtilityClasses$33(y),x=m;x!=null&&x.type!==Typography&&!u&&(x=(0,import_jsx_runtime.jsx)(Typography,_extends$3({variant:o?`body2`:`h5`,className:b.title,component:`span`,display:`block`},h,{children:x})));let S=d;return S!=null&&S.type!==Typography&&!u&&(S=(0,import_jsx_runtime.jsx)(Typography,_extends$3({variant:o?`body2`:`body1`,className:b.subheader,color:`text.secondary`,component:`span`,display:`block`},f,{children:S}))),(0,import_jsx_runtime.jsxs)(CardHeaderRoot,_extends$3({className:clsx$1(b.root,s),as:l,ref:t,ownerState:y},v,{children:[o&&(0,import_jsx_runtime.jsx)(CardHeaderAvatar,{className:b.avatar,ownerState:y,children:o}),(0,import_jsx_runtime.jsxs)(CardHeaderContent,{className:b.content,ownerState:y,children:[x,S]}),a&&(0,import_jsx_runtime.jsx)(CardHeaderAction,{className:b.action,ownerState:y,children:a})]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getCardContentUtilityClass(e){return generateUtilityClass(`MuiCardContent`,e)}var cardContentClasses=generateUtilityClasses(`MuiCardContent`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$37=[`className`,`component`],useUtilityClasses$32=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getCardContentUtilityClass,t)},CardContentRoot=styled$1(`div`,{name:`MuiCardContent`,slot:`Root`,overridesResolver:(e,t)=>t.root})(()=>({padding:16,"&:last-child":{paddingBottom:24}})),CardContent=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCardContent`}),{className:a,component:o=`div`}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$37),l=_extends$3({},n,{component:o}),u=useUtilityClasses$32(l);return(0,import_jsx_runtime.jsx)(CardContentRoot,_extends$3({as:o,className:clsx$1(u.root,a),ownerState:l,ref:t},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getCardActionsUtilityClass(e){return generateUtilityClass(`MuiCardActions`,e)}var cardActionsClasses=generateUtilityClasses(`MuiCardActions`,[`root`,`spacing`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$36=[`disableSpacing`,`className`],useUtilityClasses$31=e=>{let{classes:t,disableSpacing:n}=e;return composeClasses({root:[`root`,!n&&`spacing`]},getCardActionsUtilityClass,t)},CardActionsRoot=styled$1(`div`,{name:`MuiCardActions`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>_extends$3({display:`flex`,alignItems:`center`,padding:8},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),CardActions=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCardActions`}),{disableSpacing:a=!1,className:o}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$36),l=_extends$3({},n,{disableSpacing:a}),u=useUtilityClasses$31(l);return(0,import_jsx_runtime.jsx)(CardActionsRoot,_extends$3({className:clsx$1(u.root,o),ownerState:l,ref:t},s))}),import_ExpandMore=__toESM(require_ExpandMore()),import_KeyboardArrowUp=__toESM(require_KeyboardArrowUp()),import_KeyboardArrowDown=__toESM(require_KeyboardArrowDown()),watered_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABbklEQVRIia1WvY3GIAz15ToqRqCmZoAMwT4R+3iJ66lTMwIjXGX04tjJp9NZQgFsnv1sfkL0gdRaj0/sPhIN5oH/yekTmOh0/239hkpmbhYQMzcNoJ1Y64mIvrQSjVC8ecvuwsDyrI2IiEopxxiDxhgLRMZPQSwGaFRKWeOUEglYSukCiDaix0wsB+hkjEG994ZjCwhFbGQeM/CtGcQYKYSwxxjXeM5JvfeWc17zzNxCCPuc8+I8xkg55/08zx+XgSc6RcgImSGDzQIXQ/x64LIOwTEjm7drtBMB0c5Qb8mmq64jk37vvWkG2O+93w4jkVEDTdPKse5bzAXndpJF+QSimXrgi4G3573rwcu3u4twEqNGx1gPLLbeDO4uqrUemGthgKBSaLyLiGgVGLNxu001fbwuvPRYRdcZuZwDZm4S6dPVjKlBRxqcSJ0D/fUcWGDM3KRdgnt6/rwXTLcnHLIm316utzf5X/9C3oL6BQBimEemYBpmAAAAAElFTkSuQmCC`,fertilized_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAVklEQVRYhe2QwREAIAjD2MVBnc65dAUOi+0J+fSZXM2aX1hz7GcS71KkkIhbKSSGGpEll4jQfyBbrh9RVy4R0Q/0AyUecEGVfx0Roq4cFQGFIvXGNFEOnwmdSclbLhUAAAAASUVORK5CYII=`,rainbow_fertilized_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAkUlEQVRYhe3Quw2AMAxF0ezDFizDCjTMwLI0VKaBSFhyEht/pITXuDxXTulfL4NjBntkn+B1b5S6NmgjvsIijyBRJo6vToQQZ0WY4XB+iOgCb4kwx1kRVngpYlw8R1jjGxQ+EInXItRwyQdccCpCHed8wBXHESH4s1C8FiHGNSJccRwxHp4XitdiXFBqIWiPuwDmWChFXQDxHwAAAABJRU5ErkJggg==`,mulched_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAVdJREFUWIXtlTFuwzAMRZmewwfw2sGH8KCtZ7CB3KB7gPgqBrL1FEUGX6L3YJey+CG+KCXxUBT6kyxL1CNFUiJNTU1NTf9Y6zKpjU/H9DtOQ6frMul2Od/M1dh8uQcAjfrx53WT0zFpGjr9uH4dRERe394P6zLdzNWCVcOkodMITH4ih+vx+ykoNMoMsXl/uF9nUcTrfhoGI8H2oGwNg66GMk9ERCwxPRgz5g+xxGZ7itfGKgarJGckigrCsPzy9kMof1gUXlzHDmHXbuuKUP6KEGYee/XzCIrG/b8cfPbqsJyxyZnmsdd57KuSkFVZlD9hPiGUL+HtclbmOToTtQDMLQQtVlvkkb8W3OcrjDlqTj3UHP0mD8m6MPadXIe+uykyKN/gogiwpsfy8iEQIWVbeptyzdSejV2hfKnWjM2B3V56KTyaQqKB+3aDqNGuXjc1NTX9AX0DskV/GZiF3KoAAAAASUVORK5CYII=`,rainbow_mulched_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAYlJREFUWIXtVcGNg0AMdO5FFdRw96EDOrga6CCP0xZABXxQSqAXKIUHIKQk8r0GjRxzEPiddqRIu1mvPWuPjUhERERExD9GX+WKdSKd2rO2KdW9+Ac+3jGu01HX1rN8XhLp9PYIy/9f3z8XJm3vnUIWJoXDNWIg01f5YlOno/L+FCl2yqTWzpnM9T6/EKjTUVFam7nDpG6PoJwJz5bJwAb3nkOhfZUvv91E8BII06bZc4bysM1zKNz9Ztm8jmmbUjkjXgY8x/DVNqXW6ajPoVg0xHra7EI4ysKkWZiUCTBhJmRJeUE8rcFuk5QtkSWDF+MBfIa7uGPLiqbAg5BBlwi3sx1yIiKcduw9P9f7/BKEtWVJ2cytIpFumR8I3jal+3J+jDcCeC+mCru7ra9ytVoSU3NuaTGNYc9YyJbobrCOoAs7seHckuIyWVKHhyKcZGFSDsR7Sx5CteeeLt8mIuZz4c0ScUTJGuE5lkh3rFReIDvsPJu1NWf3MBmLrbqvBTull4iIiIgIkV/Jgy2+BhL+vQAAAABJRU5ErkJggg==`,shoveled_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAABXklEQVRYheWYPQ7CMAyFTRcGxMaRei/Ue3EXLoBYqg6dyhAZue6Lk1T5oeJJVURckk8vdtSE6MgaelqGnpaSc5xCAL7Y/eH+q9/hfjSGjiUBIZhxdu31HBrWlgW2CUgQBkBiKP2OhpVxHUNgXSzMa1q3z7d7R/eP8/rRcLIPrUKnOxAMEdHt4iYNtQgejc9zaKgvEAcsZ2KhLMiQoENSeyFQi5zSLnmBcjizx6lOEjJxTogYpzZAXH5cliVhUFVKU5o4ZDkFc6gGjC+XIFBzh2rnkJXY3rJvsVxEtP6EkLt0LYd4VXiVfs4hc6dulkM6qUs7ZAlujKUdCgIh1cghndAmUGko0yGUQ0TlHUr+HmrmEErqplWGluyvqswSPPZaB8TQJCkwyWWPxIPqFsVTl2sDJHOJH/k7NzwSPPTHXrn4zvUxdwIsfb4PXo8MPS2+q5ccSgay5LsbirlXOow+jbqqwQYBTPwAAAAASUVORK5CYII=`,apple_juice_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQJJREFUSIljYBgFo4CBgYHhxo0b/2/cuPGfLhbRxGAWFpb/MHzjxo3/yHwWFha8ljISY/i+nRPhfDFpZ4ZXT/eiqHFyz2f48+cPQbPwuhwbPrR3KgqN1QxCllw81sDALaCBIf71ww0Gfat8BmTfYQNMhCzAZjhM/OKxBgYn93zKLMAGnCd04bUcGRAMImRQmFLLcEmHl2FvQRnReoj2wY28OQyRj74ztG97xXDKrYS6FtzIm8Pw6cYNFLFVDnnUswDdcAYGBgYFNjbqWUAJINuCB79+Uc8Cs109GIaHHZhElAV4yw8WFpb/uHIyAzw3NzAwMDDgLIuIKuwIqSGroBsyAADMgGh66tN3lAAAAABJRU5ErkJggg==`,apple_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZlJREFUSIntlD9IQlEUxn9GjtEQFYJDi7ooEQ7RYoPg8sDddGvyjW8QXBpcBAehRSe3ol1wERxqCYMQqUVbGoKIaA8aXoOey33/THIK+oYH775zf9/5zr08+Ne/VlVoiRp7FU7QBwUd9Wo/0g+Ms0Cen4F9fhInUywBcHs94Ovl1VEQSyd5un9U71I7N3Iw3QYKfnN5AYBhWvS7V+TyBVUk771WU62FoxGOjrMeE93AhtlIBB7UsQDFxDAtAHqtJpliyWGyJvBRr6bgssEwLQzT4vntQ62JcvkC02FfJZQ0G5s7cm62uNjursPRCHu7W56uY+kkAPHDnAIapuVJAagk6+Iqxfqc3Zv9Zq/X6RJmCLCrlTKn+X1PkV8SffbS1HTYV6mkmU53TL3RVoesTPSY+g3SzfWk7vW7yScPkwkA9UZ7NiJRpzsGIJU1PZt1yHTYV6n0MbrhQMhxTauVsgOWSiQAeB+0PIco2p43A3jg6rHIRDfyk0BFOtzPAOb3189okeZgD3PR39TxFw0yDAIvY7DQ8JeMP6hvVK7PhaXOgsEAAAAASUVORK5CYII=`,banana_bread_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAYpJREFUSIntlE1LAlEUhh8lghhmQiQRgorUbYiIYotZ26JFW6VV/yJoFfQv+hUudO0iKSSirR/UQpCRQZxBpBbaou51ZvxodBXhu5lz7p37vOeeuXdgo43+vALrLsxHgxPvWKU7nuGtbCDAx4kjojtTj+4oQLvxNmPky8BZrRMci30/W60pRhgJk6UGi6qdBwZ4eH0HYH9vl05vQKU7Dmz5Ay+u2Av2ymUgwOmcDkC9VqX9M3d5cbASWEiuyEeDk3ROJ5NNEo4MATANhafHF2kGcHpy6AssWhQQ8Ju7KzkZ0lT6lj2Tl0sN6rXqUrDXIOgcDGkqAM3mWMYiBzg7T/wKBrA+RjJ2GYiqw5GhjEOaKlsW0lTSOZ1Ob7AQ3OkNsK1PeUylgWkorl2IXFRvGgp9y567Cy/YedGkgfiYfcvGNBTi8aDcDSBzZ+uWgYVcp0jE4pgCFIop2S7TUAhHhtxe36Nq265WLJK8B64Xa1VpVq9VSed0CsUU5dIzmWwSwBecdf5FM8X8e30B0FvZU200DxwAAAAASUVORK5CYII=`,banana_cream_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAW1JREFUSIntlDFLw0AYht8WqSJWqks2g+BUKXQJEp1a8kuELP0L/o8sgkv/gqPUSUvpIgQ7lGBxdLI0IEVozqF+532Xu1jsJPSFwOW743m/y3sXYKON1lVphTViHY5tQkLTOPqVXm10rDyTgSDo3nYXAJCd3OcWlZOWnPt4vlGNGHPLBN89vVy+JV02+Tq8AwC4XsDqtD6NgWqjI2xfRqRxJBbZ3PiIsS/E2BeLbC5eBrfWNWkcCVNuDK7CCGiq2RrQTRjcBNOBth2odTKRGUx7PmrtPlwvwGS4rLnKFl0vQDlpYfJ+xTKgsPU6C3k0a6LuhMyEQqUxgVwvkGEDwPHBTwPUaMUJMZo1ASVtMXh4RH3/CQDw+XaNw6Md2ZkuU6fTng8ADH52cc4NSKoRqdbuW6EkHQ6gpJ5XZmIz0lVxQjnW4TBciJyJamQSQUkq3GQAOr8moyJ9g3PMor8pu402Qxt4FYNCwz8y/qG+AP/oVWW7If/LAAAAAElFTkSuQmCC`,bread_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAmklEQVRIiWNgGAUDDRjJ1PefWPNIteA/AwMDw9Ic7JLRUzDNJdYCvAbjsIiRgYGBgYWaBt9+jimGywKKDcZlwX8GBgaGhmDcGlUliTMYmwX/YQYX1M/CqWFCYxphU5EAciT//3AJt8GkWNSwFmE2E0nOIQOMWkB/C5AjmIGBcE4m1WAUw6liAS6DKbaAkMG4JHGV88ToHQXkAQCMXCTuoxbh9AAAAABJRU5ErkJggg==`,burger_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4ElEQVRIiWNgGAUEACOR6v6Tq5+Qgv8MDAwMkxJQBfml9Bk+PrvIkLeAsDm4JDAMhhlKqkXYLPiPz2BsFsEA1CIUM5mwKeSX0oez0Q2D8WFqkNViA+g+INv1aMEFNxerDwi5nhi1MIA1DvBZSgRAMZMFm4ozUFrlQT9OU/68qEfhi1h8wjAcqwAU/PdfA5FaaNJH0PDkJ58ZGBgYGDaG/Mcwk+QgenOCD86Guhod4LXg/6kWfMYTBmY1qObiTUXUADRPRXgzGjmApIxGDUCwsCMFYCvs8BbXZABiK7BRgAAAeO5Ta9GiRlQAAAAASUVORK5CYII=`,butter_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFklEQVRIS2NkoDFgpLH5DKMWEAzhgQmig0sY/iM7zT6G/LjC8AHIcDsHbxSvHzqwFc4n1TIUC7AZjh7IyJaB5AhZiGGBrp4+3ExBIRmCkUjIQrw+eP/uCdGWwdRevnQRxVdwC/Snff8/iY+TAT38YTbgsgwmDvMtyEfIwQa2AGT4hYirDIe2meC0ADms8PmMKhYg+wo9nvBaANII8gUM4AouQhbkffrOcDGLExw6KHEACiZkQMgyUFBh84Gd1xkGgxXaYEtQUhEoLkAWoFuE7jMQH+Q7ZAtgyRVkOAhgtQDmephFuCzDaiHUYGTDUYIIV45CtgyfhTCDQTQs/ImyAN1idAuR5ZENhokPTHFNsAAiQcHQ9wEAcVWNGQEhAZkAAAAASUVORK5CYIIA`,carrot_soup_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyElEQVRIie2UsRXCMAxEzzz6PAaAESihyiJMwghMwiKpSMkIyQB5mUAUIOfiyCYQ6HylpPsnO34BsrKyXKInv2CFRQ+V834yXDcdDruNWXOXu8nlAFGomixgLIh7x2vr2SvevG46APBmhmiP61wLvcrUE4j0FVxResPttE1uGfb4iojl1jwkfTUYihJAawY8Ne6xdxTMM7GhT6XbA8M3+Jsmz3TpKXh7K2BRSAiPBXwVYsFTAcDrHb8Loqc961cRDUplzGBkxfUAEyhSiovwVIoAAAAASUVORK5CYII=`,cheese_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA10lEQVRIie2VsRHCMAxFfzi6tCzAEFmIYyyOhVIyAAvQpjaNjSVZsmWThjt+qTjvKYpyAX490w6MUGN+IwgA8Lrx4unKuaOCIMGWpFegdl2THPcGy7QEw2CPoDpnmjgOt6DZtQSG56U4M53vhcAEe4AAgG0F5oWVkoCNww2UcEWS1pR9jW6g6JbW4ojymnZDJdyoHdrUOqAVXbCteaa1OM6Ua0pv0uZMQ6/Fs2k9Ed9vKZiXLFEAMgQI4PEB208gwaLGgblTK1ng6rANtAWDHfYkoPz9/YM3a79OWiGiHuMAAAAASUVORK5CYII=`,chickn_pot_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACHklEQVRIS+1Vv08TYRh+3g8GimJigpOySSks+idggh20bC0DJNaEXoxbJTI50uhQicDoXaVltNdBXI1RBv8ErcRN4oKDCy1L7zXve72zP64hIekk79Cvd993z/M+z/d8d4QhFw0ZHxcEZzp8YdH/bNHX9XlmAogBZsYojYZ2tNACYGDYgyGCx4TEy4+Rgem6KaABSiJ1pctfITspv8e9eBIHj1fQyGfD+fGtCuqFN9oIEWGu+CnEDf/Un85zfLEbVBBEgQf/wcbuPsa39/D7aEzBJ2+c6th5zQwcbpQwu/lZsfVHOo+nJmCi3hxtn3S4lYYANPMPFDi2taddn6499K9fVQBtxqBeKKmSkGBm8TKIzcDYBQTNfBZj2xWYlu/myZMsQIS7s0m8u78KMGFyqol6wcFc8cAnkPq+foenUxNQQ9TLkT4ysUisWphJ4sujZRz/iiFWXMKlnTLYM8KjdbhRDjc9JLAsi9eu/oBGB0AiJYqkIU8TI8Te7SWMeO0cEOH4KIZr1xu6/tvzXRhZbwibf27CeW3/2wNZkMvlOJPJhF1PfXgBbu+KKDLGj6XXbilIjK+Y8HPhmTYh5boubLuHQCZERTqdVhsE4Dzlum9h26X+mHYSRAP7VgWHbxB5tVqF4zjRBAGJjKJEql+Nvx+9VavVVHVgTTA/8HtgWasssZVDJv53Wqb39MwYEHuqqhf4TILz+B/1zNC/aH8Brz3WGQIa2zUAAAAASUVORK5CYIIA`,chocolate_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBklEQVRIic2VoRKCQBCGf7VTSQbeQGbovoQ2GxSzL2CkkE0+gb6A0U7wDQwkKt050zF3cHu7cOOMWxjudr5vd+8YgD8PxSUsQ+Cf3YaVLALhAIDV/UWy5ggsOCeZKnDCfZIpAi+ckkgFIrhLIrlFqq5rMRwAzNvFdaCqPMH2eOsX0rJgBWYHPoGq8gQA0LQdAOBwfrAS6RmM4ACwjiOrm6FMeot6uI6m7bCOo9G7lqVlQX4Hw0MmKzfh+vm87MnKXYIR3JRQ0izLSLi5wVZuSvT66fr2woeblsQ1czMkcFeC84B1TKmcEliSULgv0TmuqXAu2RrXHLgkVJUnCoJ/b5Dkl/Dg+AKF7I1oIzfs7AAAAABJRU5ErkJggg==`,garlic_bread_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABDklEQVRIS2NkoDFgpLH5DKMWEAzhwRVEGyrk/mNzckDHI5wOJdoHIMP9Ax6Bzf/4SRBizxsIdeASLwMuS4iyAGb4X1lPVA+8YmD4cv0EXksIWoBuuLTQVYan77QRFkEt+f+BgeHgI0yf4LUAp8uR/UGuBcQYLrDqBcMHBwlwMJHsA2QLkIMFbGiYBOVBBLLAwekzA4+2Be7MhBTJZPkAZgGGq2FWUmyB3mcGHntMH4CD7IY2PImCXA8CJKUicBDpfQZrxGYJAxGuB+klmEzhlmii+gSWwXCFPSwUibYAW0zjCxqiLAApghVw9nKQ4EIH2MIdWQ3BogKmmJySlGAc4M4AxMsQ7QPijURVSXMLAIP+thkNIUCYAAAAAElFTkSuQmCC`,garlic_fries_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAB00lEQVRIS7WVMUsDQRCFN8FGTKdYCYqglQiCRQjGRiwsBMFWA6KC/oFYim3+gBbaRC0VwcJCLDQhpBAEsVIQBSvR7sRGEnkb3zK37uUu4bLN7e3Nvm/ezG6SUB0eiQ7rq8iA80JffT7/oePl3PUuk/4HwGYEUIwC6bltVb3Y0Xs5Rwzi5btdER+AwQiCmBTgGsQ4J6xnaEFd7U74kiLI6WBm8059vZz5MqYIAEmvoiqlS+Omq3dclY8WTfLSvRPALGXWFAUc2bIsLiDdY7+zySjV1NKJ+vm81y6kSCY7q7MnAHG11z2zJsvbFCBrbYsACiffD3ktbLtqWiIWki5QW+kAMNcaXNRSGXM4ApssAbLOaDIa7+oLyoYBNzL7wBLhQ2FkoL5yuqVPDDLDMzm4ofvCQSi+YRzkSir/9Obra+BNBgCb1q+PdRO7xwragQQSTHE8WwJMplLq1vN0dqvFrHaCAQiAaDKyxmBsywCWgyBTn78JhGVM2wBb2PWOJGIDpG8aPxXV6cYJwogFQGGKxgoY3l9W/aM5k/H7Y1E9rx2254B3QTYRa4BwhIkjLvQfDffBhtgNdtWeMaGAICfNGisTiAQgxHU07WNpx0QGRLkHrphfBDxYKKqYnIMAAAAASUVORK5CYIIA`,flour_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEHUlEQVRIS7WVa2xTZRjH/6f30+vapVrqVl0ZSGKy6EQgDkwIypiaMYIfiEVjYoiXzZJM/KRRNOGTQuKcRickLtuIkhg2vCBREwNz04wwwiLboHRu3Uq30Z6ul9Pb1mPet+uxtzXGhPfLOee9/H//53ne9z0M7nJj7rI+ygGEMvD/so7OKZwoip5o2wOUQjBAe+dPuexcDeHtl5+iY8dO/Uz18wZbm+uw3malEwpEREEKJo3AC2BZ8VIAoVA86LkJQRCgUcsQ5ZfBMAz9Nto2/gtrXYUBuOxaQE1VZZ773BSJAOKciLMqKeKJZaTTGb3LP3Rg8zNOUZwAK6o34PnGetpXSrwsgGEEUZxMVLMyLHFByFVa+s7HltH14VsI8bwInZr14/SFK3m1zdZAaGuug91mpbn/5QsnHm1qy3OejIehUOloHwF8130MBg2LpWgMo+MzyIqfaGtCe+d5EVJU5FHXHQxd99I0EVG5Ukvzn5smUovAeD9GxyZp/3NHTtEnMTkXSODsIO0v2qaZOlRbccvjxafnrlFIthHRwpYtOBG+HYyDVSpQ/2BVdgcWA/Y2bMQTD9sR4WNY8HMUUq4RQ1w0BZNejRqrGdO+AOYWw/j24njpCN5xbAUXjmFrbSUWE0oEOA6sQorbgQjs1VbEoiGwGj3MygT+dPmxzqSl326Pl45fnfTgkU3Va0fwek6KaKpm5rDedh+21degUhFAx5nr0Go00LBK8LEEGEYCsykDIKZuzPMYm1rEwJC7dASH92+hB9SkY3FglwX+pAnf/3oVLzbZUHHPBKZmGzB8xU3BjpbtFNr94zSWIlFqhNSudnUnlixy42N2bN5gxtO76mGvGkJwYRMCSRN9d882oK//Eox6HWQyKQ48ac1A5xowOPwXLDoJFiJpjNyYxze/TZSOwLl/C6QQ8EqLHRX3TqLrtAFqNYuDe33oHbDQ4u/e8RB6zl7CwX07KLizW0nrRu6wWzNe1N6fOUtrbtNttZXwhtJIplI45ODxeZ8erzpC6O234NnHDTCYM65/H3HjhX0+9A1YsJKKw6JlaAQTngBOnh8rAgg9b+7EpI+HscJInRBHjuaMcxJB3zkLXNNevOeU4GjHCo46pej62kgLnkzEoVCqxHWk6KtbXLyuhZ72nRh2+WE1aSGXybFOL8HuRi4DaPHh+EkF1KwSrznC+PgrNQ6/xOOzXh0MOg0tLtl1JIVaNUt3VRHgeOsecEFOjIDcS8T5R18qcORQkqaCRPbuGxK835GmkXzwSZpGGorw0GvVVDgcFzDPRXBhZIqmSbzsSIr+uOmnByZ7cMiTOBsc+xvb6x6gAG8gDqtJBc8dHhKJFCtpAaxCBj6RglopR4iPg48ncfHabB6AfJT7B5e9MtYYLPlP/j9CZdf8Az/h7SitknPUAAAAAElFTkSuQmCC`,french_onion_soup_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UPRKCMBBGvzh2Vlg43sDOgoOgDYU38BCUHMIbUNCgB6Gg8wYMBTlCbExY4iZk1DJfBfl5b5dkAGJiYoRnTv2DZQ8aaJMBp+thkXq/PQEA5wfPpQLVZNNLCJwTEZkAgJWG+zaEhClIGQsANfYdtvujmdXdLHXCfSLCEmu6eOw786xlxUYCAMpqQHHZzeBlNbB7aWZn4FqUtDlkWiNp89m4TGt2va4emM7AGw2iQBfczsc1dXURGlo9J/hJYsNdgq8kHNwnAN73eElErnbQr8Ip8iSEEePOC53iSqgjgs9oAAAAAElFTkSuQmCC`,fried_tofu_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DIPDAj8Fhv/4fLrpAW6HEvQByPD+EhGs5u/a/wYsvv0sAwMuS/BaQMhwkMH+VtwMG499Jd0CQsECcjnIcBAg2wJcQQMytLDnzUi1ADnsiQkiUPjjAqCUhZKKkFMNKIwJWQAyGJsaUPJlY4ekLrgF6EmSGAtwGY6cfMEW4ErvIEtwAUKGw5IvI6npnVDhCMsbKBYQCmvkDEWs2lELsEYFtuIDHMnEhCssQxGrFlZ8E2UByLkgDcQ4BqYW5kWikinMNcQkafSKh2CNRijdE5KnuQUA0jXJFH9Pv6cAAAAASUVORK5CYIIA`,grape_syrup_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUtJREFUSIljYBjqgJFYhSmBBv+R+XPWXyBKLwuxhvuavmVQMSliuHOmDypq8J8YS5iIsYASQHQQ1bpLoARR884XROslCtx/8Oj/wiTd/wuTdP/ff/DoPxFaGBjoEURERTIMqBVuIdkConxw/8Gj/y8+I0LlxLGTDMQGE8GIQjccBh5cPsVgYWXOoKggh9cMvJK4DCfFEooiWUHXjKAanJF8/8Gj/zUGPQxXvp9mYGBgYNDhNGXw+PCQQeXyJBR1RxRyGe4/ePQfly/wpiKY4TD2FXYGBh3bXgYGBgYGjw8PGXYIyDMwCMgz2OAxA6ut6K7HBnQ4TVHkN9xciTUucMYBPsOJkSdoAbXAwFkg/V+JaEPwqR24+uD+g0f/s9UqGZ4y3sNrgPR/JYapt9px5maCRUW2WiUDAwMDhkWwYMFnOEELYJbgkydU2AEARkyHfSdIwAwAAAAASUVORK5CYII=`,jackolantern_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7UlEQVRIidVUMRKDIBA8mJS+wHfkL3mAM/bpU6a3d8YHJG9Jny6lL7CWNHAg3gFHJoVbiHC3e9yKABwdqoJjJHxpAXO/nHFye7yyGrpWvBQnMQNw5wAFDkg6iFFkL9WBIdY4sWxuXMCYK8EYSKFULhZROUIN1OC1yW8wL/597TtWKIyFnE0xO+Lu5wWgbfYCepxYcRcLua6L7Cl6Pz9VMSyezfgRSYukEFnkPA69XvtuN49zYrAdpEgU9DjJOohPTU6cjdlR2YrQNv5MO2I4UmsAtP/4sPjLnxxfYmwR1yEmpvPIuwi53MYq8w6OL4W0Y7hN+2EVAAAAAElFTkSuQmCC`,hot_sauce_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAnklEQVRIiWNgGGTgPxQTDRhJMfz/f4jZjIyMROtlIsU15ACSfECOXpJ8sNrfkWG1vyMpWmgfREPfAmIj+T962Idu3E+UfmIswDCcFEuIsoCAPF4zWIiwgOHf/3lYxZkYkwjqJSuSbeYRNpgiC2atM6edBdd8ZpKknqg4IMdgGCDaB1pb0rGyCQGikimBVDQE8gGBnIwXDJ7CjkL9tAMAL4QnWOXkSy4AAAAASUVORK5CYII=`,rainbow_cheese_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABzUlEQVRIid2VvS9DURjGf5UrqZCwCBZNByQdhBvpQmLqH2BisIjqYrGQSNNEIo1BGCQsPrraDGKyaNIOGi4xSFiERGi6kDQ08XEM7j3t6a3bogvPcs77nvM+z3ve8wV/Ha4qcAgnzt8ICIDZ5oTiXMgMKLw1PyXX2EJjyzZgCspVfVdAWOROKBSpVEAAwhdM4gsmlYHFzKVjYDkBAYjRw4RC3BnsqjAv0JzII6lxrsRYWRJzY0ui1CkSAJHUOIAiYKx/Tj/f6FcC3Jyy0t6h+EI39QCuwhUIgFR8CIBd0+l1xZj3byrB/vATZ1Hn2luwBMTBjD9PMLijTJp+yQGwVLtMX3gKgO5wZ0UiVomU2/iWDRFzN0v7QkQAiM+9K8FGdNvMUucVg7X2YTlmlUieoofVAA+rAd6yIVsWd8ZRyez08IhiXz2f2ObYjunxcUaxr417vK4YAINz9lOtocvWW9frLHB6/Sj7Y7m8kEdvlf1s+oRs2p7pV7Cl9LR3q9iF5AD6RPHjqSJ0Uy/rD0UXrcfTWDajNr2Phpb8ZufoKSBHEltwusklsVjrLnY5PvllBYJa1OxZ7ff+EJtA0+Q+TCquavx6gPlyVovs/+ADoliAUUBEL7MAAAAASUVORK5CYII=`,salsa_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABQUlEQVRIie2ToU7DUBSGvzaIdZItRQ/sCAKDZWK2AbOXAMODkJBN42sgs3sCzAQZaoKKKZYMCRNLD4Ldw21v2y3o/urk9tzvO/e2hTp16uzMotGTRaMn/93vlT0YNbsSpSHBbMP36QEAY38JQJSGALSSmMeTSwBuvt4KWc7iqNkVGwIwGU7p355XTmrkeZGfhwcPC6I0pJXEum7gwWyjkwOs23MdIEpDojTUAZ0TmCvJx76isnVTt5KYVWfA2F/qSXxnpwUAdKOdyXCq8HV7rvWqM3A49n0J4ROvk2MADi/unGYzYb4G+Hy5B+Cs/w7La2VnBCKCd/QMoKIymQ1VMCAfV3jeHzv/FYnI7zsyorzMjoEaMJCBFwkyEm2yZJnGLVT7PHfosh/NkexKEbxKACBb0z7gUlaVICOqcuzBqFOeHxC+hOOYYjlcAAAAAElFTkSuQmCC`,soy_milk_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAz0lEQVRIiWNgGJHAysrqP00Nf/H45n+aWAIzHIapagm64cRawkSs4etWzscQL6lsJqiXoAX4DO9pr6XMAkoNxwtgYR4TE4MS5jD+/3dr//9/t5b8iEaOVJihyIYr1zAQZQFRkdzTXgsPFnHuKwwqfcEMTE/4iXIoURbAALLht/rmMbz8qkNdCxgYGEgynCwLSDGcgYGBgYUUw0kxGAZI9sHwsiAoPJHh2LFjjDSxgBjD8Vpw7NgxxqDwRIoMJwqgl0mklj1EuQLZUKq5nFoAAB8UtnDnOmpmAAAAAElFTkSuQmCC`,spicy_apple_jam_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZhJREFUSIljYBgFwx4wYhNcfv01Q6SmKIOJluZ/QgacuXadEaYeG2DCpZEYw4lRx4JPkl3LlKAFP6+dxiuPYcHy668ZeNjZGNi1TBkmzVxI0IK89HgGHnY2BlzBhBEHm+99ZOgoy/3f8/giQcNhoERWn6GiazKjrxI/YQusQ+JIMhzZkqNrFmGYhzcOGKI0CZu87DpeaewWQA22yFvO8O1QCwOXXQ1O+gRDJETPYcJuYWBggASRTTjD////////erAZTmftM0DhI9NZ+wz+W4fEEZWsGaxD4v7vYRRAMeS4uT4coxsOE8dlAc44OO7Qy2B5gIGBy66GgYFhDVwcFjzu02oZdhLhYKw52fnfe7gl3w61oMh9O9TCcNyhl6FhlQDUchKBdUgczrD+erD5/x5Ggf97GAUwxEkKoksXrjIwXIjEmopgwQZPRZOgqYiBDauDsccBNG3Dk+AFPDQsH8jqk2ABmkWUAIxIbvP2ZyzB4RpcoERWn6HN2x9r3YLhg2cWdgxtDAyMJVsZiMs4UEc9s7AjyVFUAwD/O/0eRzI1LwAAAABJRU5ErkJggg==`,spicy_cheese_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABZUlEQVRIid1UPWrDMBh9atrg3qCLSwYPhnbq2jVgaEyP0SP4ED6CzyEHCl27Zit4SCHEi2/gEFPUIZb49OOftF7aBwZL+vze+55kAX8dbAIO0cd58UtiUecR6jzC+90T6jyyBH/agWjJnLhevSrucwUEAPSRmyJjI9LiAIBNMsMmmVmF5tzlCOJOxw/p1+BcX0S9OVO0cbjAXB0M5mwSHneJVTNfpCcFF7HMUbY7hrBDQHWgxfH4sT69rLoJmRdAHLZqXMYFAMDnoV5H3Z/jsIwL+DxUQswLsF9yJSA7UMe0qTJ83j+jqTLLqemSOpVdiMPWcg+Qq2K/5NaiGYPVvhdoBlxQAj4P4fNQI6TvJnGXKbquCZgFZVxokbg+pobKuADzAswXKa5uXgDjLhJ0YyXx7VusEdCIZHzyvFMProEYOjnSeeuuk9CE+pOpQ7q5Qw7HQhx3iWiqTKC9OckzGSYn/B/4BhgmpsuPu4+VAAAAAElFTkSuQmCC`,spicy_pickled_garlic_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABEUlEQVRIS91VwQ3CMAxMxQZELMAGLIDon2cWYBBeDMIC6Y9/EQuwAQugsAEqMtJFrpuiJk0+9Gm1d2ffua5U4acqjK/+kEBr3c0dm3POT2YwouIEpN5a29Vn823kfWrV4lgPmlpeOvXa9/W1B6uMMb1i0GQQEDg9IQLOiPduD5dGQGCrzc4rBiDIsxCgC4AR4fN+9d1RPboDeMDHxNWjDj+SPJDz/+VLFMF2rb2PRMKBoVh6kY2Ajw4qSEQSgTRXJocnLIoAixYaR2g3klIkt3gs/+gyqgNu8phivs20F03TTN9kmSIOliVF5AEBYVtD+c8SU5oviHgXvD7LA77JUrH8h082GTch9rLJW0DfFz/6H7rf9hk80F8vAAAAAElFTkSuQmCC`,sun_butter_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DCgWHF/F+p8aFlqG/YabC2eADDdxkqKG+Qxn9j1jgFkyzCwAhQ+lwQQKHhDACCKQYHWM1/8vZw5RFA88JnYMrUu2YUYyzIIIWwGKLFhx+MMAWjBrYtP/wJg0inywfskshrT8OuxBNHwt4PnhijXYvnDsxhAnKYhwGYxuKrJFRFtArOEwy2CWEGUBLsNrA/nA5jWv/4QzyMi2AGY4zGRsloB8QZYF6IbjsoSgBaCyaGgXFZQWeOgFHcg8rJU+KKjIKZCQi2mYfpq3KgAeqqgZelcVKAAAAABJRU5ErkJgggAA`,chocolate_soy_milk_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyUlEQVRIiWNgGJHAysrqP00N/3Bl2X+aWAIzHIaJsYSRFMO3zcrBEPdKm8Jw7NgxnOYwUWJ4Tsc2gnoJWoDP8CkVXpRZQKnhDAwMDCyEDEc3DMZfM7ERKiKM1wKCQTSlwgse1siGt4vfJMYDxEUyzBJkw5me8FPPAhhANrycVYIhJL+euhYwMDCQZDhZFpBiOAMDnlSEDZBiMAyQ7IPhZQGhgo4iC4gxHK8Fx44dY/RKm0KR4XgtwGUJKYYzMBBZ4SDXXKQYThcAAIIOcW1FSq9sAAAAAElFTkSuQmCC`,olive_oil_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgJNZ8dlmB/8hqfz7+QJReohSBDKa5BXpuIv9F+N6APfHmkwjDpV1viHIcUYrApvJz/ndy/Q5m7tvNycDw8TtReolShGw4LB6ItYSwBUguR08QxFhC0ALksEe3gJi4wGsBPsNhlhGyZGAteLCV7T+bnhjevPjr0isGBe9fOB2K1wd0taBjuhCKTyoy34H5VPEByHBdQ0mGt28hhoKAZsZlBtPHItSzQEqOHcUHVLUAZDJNgwhfMqJKHNDMgqGfk7EV0+jBdfSkAAO+6pNgaQqyRM+cG8XcSye/IvgEKh7CFhDbKsChjuYWAAAtPZoZgsyz7QAAAABJRU5ErkJgggAA`,onion_rings_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABMUlEQVRIS+2UsQ0CMRAE/RExISlUQAs0gIQQGWQUQQUQkxKSIYREA7RABcSUAVqktfZPd28nn+EI8fbO3d7aTep5NT3rpz+g6HCVRYtR+qjS7V1vbREA8ct5m573R2bsr6/f7xpQJ8AT104Isj4pOASUxCkKyHg4yIzDcZNW61PuzgV02QIlzzL8h0UrAUYnVQBuhkAE3y0nLaeqASreOyCaC4rQDrSolkWadx7QpFjvddDRPckAiKuoVjSdz1oDtFGN/Me+H0DFtSp70Oad1rAAN0Uqjo3IMFcXQMW9MzlFHoA30esMcCuuN9da3VgR7QIH7UMHADvj3k6ANwN6GrUeRdJqoVM3RaVH3su9N7cWgHS1wAPxXpQSxlmFb1HURSkAGvPwsStZxO9eAPiNhXwBw/0AOoT0r0UAAAAASUVORK5CYIIA`,popcorn_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABgElEQVRIie2VP2vCQBjGn0taDSI4tKBLUYyD+Kdzp27uguAkfoAuLf0UdusH6NhJlCKOQqFbP4AWhxAFF4dKrUopmvPtUA2pNMk1trRDn+W4e3PP7/K8IQf867fFRB5qX++RXS1TGgl5OJob4zwR12k6uCXiujknrpMTXMicGxMirtO81ySiChFViBsTc50bE28Qq/l6tALmvSYZ47xZs4NIbiA+PYfEHgGpCv58DyyLoFkZu7HOe31wB0hV2/07TuY0K0MO3QC4AJZFLJ/SYMF9yKEjLPppyAcnkIPAom/vYQvIlEbQLo+hp1qIP/igpzTkch20Wv7V3I944wrq6Ry9hg+Zs5FzFJ+9QDsbJSISGgF468G2cuzBprovr+gmIgCA9DcdwIygpobJqpoaNiOCTTzCgE1zK8QN8OM9EAIkAwrqq+zXqiciSAYU171uTWaMMWpnoyhoww+QgjZE5zAGxhjg8Ff+UkTJgIKCNhQ6uSeAF4lcFiKf4HaXzp/WG0R0GZSwU81hAAAAAElFTkSuQmCC`,pumpkin_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EG0v1j4P0EnMjAwOPa+xRmXWCVgBitocBBjPsODGz/A6rBZhGIBqQaj247NIrgFIMPxufjTt38o5vFxMeH0HcgimG/AFpBqOMxkYiwhygKQgaT4AKQe5guUIAJJEBuxuMIHPR5QIrmqquq/68+ZcL3EWgYzFKRxN3s6Q1tbG9xcjGQKsqSkLBFsycVmC6KSqX7tCbC6nq75KIaDxLDmA2RLiLIBh+E4LQBJgCwB0TDf4LII5GoQQA4WZLUEi2uYRbgswGUwTD1BC4gNIlzqhr4FAOLAXRkvhyyAAAAAAElFTkSuQmCC`,salt_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3klEQVRIS2NkoDFgpLH5DANqwX8yfYfiaFw++K++6TjJ5t/0s4TpgZuLzQKyDQc5CmoJTgvIDRYGmI8JWlBz4S7JQdNioEyaBVcPKxFtibbtPQaqWLAuB2Jn0BRUu6liAczwR48eMcjJyaFYQrEFMMPRwwzmE4osABkOczXVLcDlcpBFyEFFsQ9gQYHsG+SIpsgCWLCADEdPPTA5qliAL1OQZQHRuQyqkOSMhmyB0R9lDPvOsaAWJ3SzAL2gA7kMvbj+T25hB/UmRvGPtT4gNQ6wOBRuxIDWyWR4BFMLAHg9rRn+GIpBAAAAAElFTkSuQmCC`,summer_salad_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABeUlEQVRIie2VL2/CQByGn9IlBQdJde303ASmAr4BBsMHIJmZQZA0TSZmMCT7AJgZvsACogYxNz1bTQIOKppOHNdey7UlW4biNb1c797nvT+/Fm666a8yake8rpLK95N+pcddnfF82Kv0f+IUoAR03nmh8RnofY0OlAe8rhLVeLO/zLzbLoAUSKPKfP1l0G0LA9nW9alB5sNe7ty0Z7DZC4OPEMZ2E3sZAeAFBnGYPU0Hxp9NeDymc4pqFNPLgV5gYDrQmQnz7cAiDmF3bwHCHKDzHeEF+ZWoq2ig0XSRHY00tJcRpgP2ISIOYdsS/btnAS6TFmA6WWL7IFagmqogCfYCfTloAb6bpBNlOtMR2wECFIcivVTZKrQAmWbbstK9Vtv24bRdyyg1fhnpC14AJn1DFkq3Db2HBN9NssQDK22rSSXUd5PcLVJrQXtN5Y2QqTozI217gYHvJkwXBm+jIz6UXlG4QiVf+Vv0C1CZcT2gACpVzf/g3/UD5wa+Sc12t5MAAAAASUVORK5CYII=`,sweet_potato_fries_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFElEQVRIS+1UMQ7CMAxsRngHG+IlCJ4AY/ukZmyfAE9BbLyDjiAHXXQ1DkklujVTGsd357NTV8283Mz41UKQdXix6L8WXU6rlyAe+6HY2uKLAr7d7ILi++OWJNEiAoEc5lQxAUjgD3ItEQ6HKVVQxGajEpxJriyrwkigVaUALTAm1EKjRczOaiyVINGqtWXyHZus/UMyK84Bc9XoS6wAQV2uRZQbfggRklEPuA+llqXIJF+IAoFWbzXSAtLVWtMVLKrrOpDsh340ahpUA/yaPLx4J+Bt20as63kd9ofu+SUaMQ5Y9xBvmuYzRZok18SSuIB7710cU9gkyVxRCRgrxl7AR++AgZhsCgFAOaf4bzqFiO++AQm8tH22dLVsAAAAAElFTkSuQmCC`,sweet_potato_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4UlEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EF03o39P0EnMjAwGO76iTMusUrADFbz5iLGfIZbW7+B1WGzCMUCUg1Gtx2bRXALQIYT62JC3gJZBPMN2AJqGg6zHGYJfSyA+QJEEwqmV1xcDGLfIJGKDaDHA0okV1VV/Q890wvXR8gy5OCAsVebFDO0tbXBzcVIpiBLstyNwepft0YRik+wvGj1MjA9bedZFMNBYljzAbIlRNmAw3CcFoAkQJaAaJhvcFkEcjUIIAcLslqCxTXMIlwW4DIYpp6gBcQGES51Q98CAC9yVxnnyn4gAAAAAElFTkSuQmCC`,spaghetti_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBElEQVRIie2VIRLCMBBFfxngGhimAtEz9BBgEKgqLkANBgUX4ADY3AfBYLgGFYuAbXfThDSFGQxfZf4k/2W3mynw16+VhDaYEsTrxT6839YwFDwvDrhcb0inExhsKBbkBJgSxMFS7BkcyT7jg7YApgRl+Vp56XRSV8EgALXHUBdk4CtNBnfxsnytvpcTwK2JCZbevDi0IK0K+gT7PECPKdFqrGHLotV/2Xf2sNvq0NO9zmYAnSvCbNTwbFhIr1AAgMhK1BSdq6Z9ySjuTcmzCizW5NsUK749EBjTb8juw8dVyNu7AB9B7HAfoBfEFf4OAOD5IkMgMdrOrC6zGCol+h/xl9IDcxCDNEfiwBwAAAAASUVORK5CYII=`,strawberry_jam_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAVRJREFUSIljYBgFBAAjLon+MGsY8z8h/YWrjuJUwIRLgschgpDhDAwMDP+h6vC7AB0sv/6a4ffJTQxrnv4nZAFDiDQjI6u5H0OkpihWeRZcGtc8/f8//vtJQuYzLHxq/j8ST1DjtCDRxYJx/h6CQcSQ6GLB+AOPPIbNy6+/ZuBhZ2OYvXz1//qMZELmMzTOmMuQGhnK+OXnL6zBhBHJpBjOwMDAUJ+RzDB7+er/POxsWOUxLCDFcHRLsMlhjQMtFyOSLGBgYGBgCMnGKowzH1ALYLWA49w5Bo5z54gygJBanMkUpplSQHQQZe83ZMjeb0gbC2AG9xYzMvwwIi0BEO2D3mJEniTFEqIsmOp4nuz4wBrJMBeiG4rNErhvcOQDvKmI1PDGBjCCqFhKkDEch2twgfCQbIZiKUGsRTbW0lTqxCGG3mfvCRbVyI56ZmGHs9KhKQAAu7Vof/9SQdkAAAAASUVORK5CYII=`,sugar_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUBJREFUSIntlTFrAjEUx/8tdpBIN+lYpAURl3Np4XZHP4F0cG2/TUtcM/kJHN1v6KJbUXToKG5Fs1RIl+a4u7yX9Czi4h/C3Utyv/977wIBzjq1LgLr5r8sn4GZJgmaURQkz2czdOKY5FU4uNY6/biopNtFPJmkcTOKIIXAy25n/tCV1IAcUojcM/tepqUklIvt3EEGVMbF0ZDGNKQhDbh+pf8AAFS9jsFm42xqqyoAYPH0CAC4un53mKyBFIKEUmCrUgZaaydzDuwz4I5pDh4C++StoCy4VAVtVT0o46LYCr6/HpzJSm2ci/fbXi6mKrgMZTBUfQxV34HbtZDYFlk9D0YAgNc3BlAbO5VkxVawXK2D2SHTJm5/sEX4zdJWkpWdo9pn5b0PPqa3uL+78Rrvtz0sV2u0Op8k7+g32tH1Axo+8aH5Pi7fAAAAAElFTkSuQmCC`,tofu_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABLElEQVRIie1UuW3EMBAcmgTYgSAIduASHDhw6ALcgMu4Qq4MN+ACFCpQ4BIcUCYO14EACuvgjtLy0YmJHWnCITmzu7MgsGPHjj+HKLnUdy2VCj6/vAaamwZ919LDfYPRAVql55wfHXA+2cDkrkQcCEUmkvMdz5vBZgtYNeDio7twE0loBUgxBbwZLHyXRQZ8LLzKWFirRZzfAzBnlhjkxsJFOW8Gi6pukvOvj8NsEkyt71qq6gZmsCASECJcHs5VdTNXzrtR35/BmyQWrRA8jLdndICSEvbHgGd0Pi3iT+9H4Lqh2Qx4u0rK4IyH7LEmvmqg1bKKPFjP8QL4WGLx2ID4YymmJFhvptUlgy1xTtA1ebjHt1xTWWyJA5mQ4y3Ywi3x+KD4Q7uh8f/4BeeCk0AHVwhiAAAAAElFTkSuQmCC`,vegetable_oil_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS2NkoDFgpLH5DERbwL71y39kx/z05iFKL1GKQAbT3IKWatH/oT6/wJ5YvYWNoab1NVGOI0oRsuGwYCLWEoIWYDOcFEvwWoDPcGItGbWAYIoa2EgGReTQTkVeNvr/nz18gLc8lJJXYNh25CLOoMYpAQqa4JhDDMfPXIJbkBgTxjB/ySoGZPrGjRsMa5fY4Sw6iLIAm8Ewi4aGBbAwQvcJSNzSRI+8IAJppmkkw/IAMVUqvrqBYE4mxgJ8aoa+BQAVra8Zml1jUgAAAABJRU5ErkJgggAA`,yeast_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS+2Uv0vDQBTHvwc6RAIhOJToZinURYiC+RdchG7FvbropH+HTrpId+mmuPRfiKABFwNSN00dJBSCGRRP7poLaS6/sHQQfVtyl8/nvXe5RzDjIDPm419Q2uG/1SKa6kel6qts4mCntw0aKQgBzPa18BUy8hbjbDcOG+huNpGVfufGxe3JY7IwiZcloNZRA4zoe+/otdbjzAXp5XWEpZrGL1H76g66sQD2YB9z2QQzLeDwwAvxQSmHPw/HsLwQknlCoBqKJEkK6NaZCX8QYOSFuGiZuZmnZexMdi4daIYCva6iv+/ElUwKTk3+rf8U4JNSdK1VqfdJOGvVck1Dx37AHCHQV1S+3D8oEQjI2yDAF7JFLLNd2+UNX6yPwSIqC5IiaSxSGVwqsPaa0NeU0vlStMG/D2Gfu5lnwF7SaSRpuPTPRpn9SJIFzxPwSkQbWEVFEbVDbKl0k9O89JSQrkFRAlWG3VSH/vsF3ysBgRmuWgXeAAAAAElFTkSuQmCC`,wine_green_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/C9ujweYbeC4FUUTpJUoR1NX/z2+DWGDoNVQt2LIkD+wDn5hJtAkimseBR7oU2Ac7Zj6jug/+e6ZLo6To7TOfEmUJMakIw3CYTcRYMuAW4HQ9sb4g5AMUC/4zQEoKRqRMTCiYiLYAZHiQrhvYgnWXd8EtoYoFMMM9bZTBFmw/chduCcUWgNI+yOVetsoM/6FlKSMjA8O2wxBLCOUJgkE0a0oC2HBD41qG82dbGP7//89gYVPLcPJoM9iStJwFePMDURaAgoaRkZHB0LiGgY2DgeHkUYhFoKCiigU09QF6HIDCHwSoFgegMgg5icIyGCypUpyKEIUcrDqGWQHxCqUWgMxANxmlVCVUNxNKReiGkcwHAB32mBlT632HAAAAAElFTkSuQmCC`,wine_purple_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABWUlEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/bB5+sPlTv3wEUUTpJUoR1NXDwAIlCVmwZ+69eEybIIrSdwZbsOzi3qFnwX+Y62HJmlhfEJOKMAwnxZKBt0BAUPC/l6whw39YHgblMCZGBpDAskv7CEY2QR/w8PD8X7ZsGcN/mA2MjAyf/SIZ+DYtZ4iKimL48uULXjMIWsArKPh/+vvfDLybloFd/dk/mkF271qGx85BDJmCbAyf37+nzAJuHp7/2zeuZXjkHMQgu3cd2GDejcsYBHk4GDz9gxm+UsUHn/4zMPByMDB8+Ay25MOXHwwMjIwM0dQIIlApemjvToZH7uEMvOsWgVPo5+A4BgY2FoZMtr+UBxHIgkhdJ3DK+f8PkpTAqYjIIoNgJIMsQM/FQyuj0cUH9or6DNJ8IijV99NPbxgO3r9IeU6GVZc4GgcE45CgAhJbHRjKAc39ixlOVxPLAAAAAElFTkSuQmCC`,apple_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP1JREFUSIljYBhRoM1G5D+peljItUwpRQlu2b059xhxqcMpgQ3AfDBHgw+rPDaLmEixAB/A5Qu8PmgSQQ1zFg0I/ecGA8OCAD6GZ7ufMfx4+AOvGTglm0RE/kfFRTAwMDAwvD56GKua3XefMjAwMDDUvXlDWhwQYzgMiFrbMixbtAKnRRgCpBiOzSJ0S3BGMimGw9RHxUVgxBuKBU0iIv9dlaVJMpiQo7D6gFTX4wNUywcjxIK6N28YYZmHHCBqbYvfAkoBUfmAXF9gcz1WCwhpwAWwuR6nBXVv3jAuW7QCqyXYfIfPMSQV1wwMDAzmPj4MJ7dsweoofGYNXQAAcmlmvV0urLkAAAAASUVORK5CYII=`,apple_fruit_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAEhJREFUaIHt1rEJACAMBEBxIUv3rxxLZ4gYMHDXB1L8h7QGANSw5thrjh2d6znrwEdu2/GKllFCpChCDZSW8Rk4jAAAAAAAmQ7xkRFp1rUPoQAAAABJRU5ErkJggg==`,apple_fruit_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAJ1JREFUaIHt1T0OQEAQhuEhInEOlWZP5HhOpFE5h0RDpfCXmF3DivcpN2Q38/mWCAAAOFS6fCpdPmnfS6wO0xSViIjUQyd9O17eJ7U4UJR8I4Pa26Neff0h7biLV8ssp7ibwLLR2XSsp5htF96IKZg2Ms3z5tPQRvzNX0doq26N7Om76Z+RIRoWUXo3xqp932zZGdoHAAAAAAAAIDYzqQZOI+OkkEgAAAAASUVORK5CYII=`,apple_fruit_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAbpJREFUaIHtljFrg0AUx/+KIaSdHFw6FDKJkCFbln6KjCI4ZM236FfI2qEgjv0UWbKVUpAOpRBolgydEqGF2CFKTj3PO89s7wcOyt3zf3f/994BBEEQBEH0itFnsNC1cT+4QWzus+Lb8m5mvH694/njRyqG1acgAIjNfRaNvPOL7yF4eskecCu9cLNvQSXiRHnKdQV1QPnIQteufWP94Z8cI0iTjH3f4igd35D5CSumzbSysZqwAGA6nmC125RWFbr8QDzTLsczAziLUvk5DxMAVrtNFi3miEYeopFX2gEhcYJoMS8tRpeLhzpkhMo82aOsZVmQJvBPjnTdkBlfeG89PGTFMx1PuGMtVDLDPznG9u/Y6AVuFgnGs4lQ9R6vU3CzTGRM1SwKXRvr4eEiJidIE3y+/dYEWaKAuinchcZK3XTuPJFt5McsNVZYqXUbJfIdDV3AH9S994hvNUFldR3LAiOKXUxTO9G6fqh4rJf7kKhRNvW1ooV0pbWgVWGbaCmdzx5TviFWEe6QUtC8r3UxPku/FzQN4xdoCarWF9U+yENrctXYbX2NIAiCIAiCIAiCIAiCIAji2vwDnIL7S+vEpDgAAAAASUVORK5CYII=`,apple_tree_dead_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAvFJREFUaIHtmG9r00Acx7+XlcLqyorWrtW4MBwiiLQwopThA0F8Pb4UX48KIj4ILCIDwQcykWj8Qy0jrlnRdW18UC+9JmlyubsWB/k+WXc5Lh++vz/3a4FChQoVKlSoUKFCF1ONejVYxXs0nk2NejUw9NpKoLiAePXoSVn6DKVAL56eSZ+hFEiFcgEl5ZHqvOIC6vUHxHG92Poykl0oZMusthLvxl5/QAAEhl6jS4Gh1+C4Hn2mREIOOa4HBiymLAfTnktVWZI7WXmV9Zw7ZEgO20L92xOwwBQmLczK+xBbkawTPDDI61AeKOokdYq3AGIONerVgKessw6POsVbjYkhU93s8rSGWMjWd33iHIWJG4j2GJozeRVzaPxbvsexMHkbZ2LINm/4hDY/NnS37+eDFenisZC5hxPoHQ0tY0AcZxa67btjEgyGOGb2ds3p3y8jDe7hBOAI1c4+weiUhPujSnTIPZygogE3dwahU5/frQXV8npsr2VP97f35tcXuZMGsxCIvoiVodfgn4wTK69rAo2NjUx39I6WCpMKRLXXXkuchaJ6/soPP1N3dpmc29nnS6VUIMsGvBMP7TsBcVwPpLSF7eYfroO7JlAeTV3RO1pmqKgyrw7LBrqmD6AKACClrdiLF+n92wBAvv7KfblSlxqtW+Hax0+zliDaCIWALBvwh/7cGvvya009/Cw7QeYaPx50N4ltH8TWX1u/AtO8F/6fFkZlQJYNfPvhLnze+/4htn+pQKuSNFDjyqzqhsd92ePkgAy9BuvNMMyfn8MSjOunUuOCkpCx+VMqT4TzRxiI7UW8nZtXFz+paS+iLkWvkpUCpfUiFRWWGyhNKioMqnNItsIgChTNI5XKDZR1p8lKKmTRC1WFlObQ+ZkmNXpAJdDVyjmcr5ekfw8QBoqOtJXLdVkWcaCkkVaVLv5dtmwVQFkSAuqa89/FVErYIfpdTHW3Vhay/24eUiXhH84fP2ySZy8PmKuihO3WUHpA+wuNIFwWNqXUngAAAABJRU5ErkJggg==`,apple_tree_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAVdJREFUaIHtlTFLw0AYht+IOBYHoYOUm5NsQob8ASenkD/intGfI538Dx0Kbk1wDMVBcJCOLufQfHraJXf3BYK8z5JScs3T7973AhBCCCGEEEIIIYQQQgghhBAyT+rG2LoxdspnnPku6NoeU0olvgvqxtiu7QEAu7X/+kmQCeUVbFlAdVpR/7AsYA8rYLEHNludaXln6C+3L8vvzxqhjxZyZbq2jw69mlDX9kgzgzQzUVLB+14WAHDMEJzGicjjQz99A+vG2Lz6aVVZwN7nS9Wmjd4yyUiaGbhS2owScmUwbI9IXV1eA8O03PtDMzR6QiIj2ditkUh+hLyCzStEtS36YLy7uMHT5zMOq9Ngy1R9Aq5Se1cGzhR9ZQDgXENosT/9LrT20RN6/3iN/YlfBAsNB6M6wUKb7fEqtddC7V2mxf8RkgzNJtRTMTuh4INxaFmC4k31zf8FX1+FTiIxWQUAAAAASUVORK5CYII=`,apple_tree_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAfJJREFUaIHtljFrwkAUx/8pBaFgBwcDgmQUk0lQMFO3foDgF+nu6MeR7HXrZEEhkwkdD6ngakFwug7h2Ys5jZqobXm/JcmR3P3vvf97F4BhGIZhGIZhGIZhGIZhGIZhmD9Or2/JXt+S11jrXrc43Q8Hwuj1LRmFAk3buoaetCAAiEKRuG/aFoYDYVxDkHYRilIUCsx8/Ts3w/EgHQ+F+ueQJ7UpU6EIkSg1YjTp56vAeJIe16U5y5N3x+zG8SBnPoyZD4OE0cQA0F2bcDvJKEahgC4KWZ486A91N+oEJKppW6jOKyhNF3h/WKaipHpQF2EdmSnT7eZnUiGr5Yr2O/pmV4jjQV6sat1ObPgXx5S7KVPFqJAF9pk600NZPH+YqTGqTF16hgNhHGqyucLmdiC7axObdg1BGGBVj8fzpCR3hIhVPfZJ07b2VthFBbmd+DpqLPH2FeBxHj9npSSLk8K6W8qUMgCpsj+XoyOk9qSij5KTBe22e7Vjb9o17fsX9xCJoeqZ+TCoqggq9ygUZxs7d9m37BZK0wVGjeXWW+rvy6ktoJCyHzWW2yqDEsVz+lHmWXYMT+UWAgSJsZs1xtJ0kXeKBLkbY9GcLWg8ia+bdq3QKBV2lhXF/xFEHipNF9pufXVBl+LXCcp9dKjPRfx+fANh1PjAaOOmbwAAAABJRU5ErkJggg==`,apple_tree_growing_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAwFJREFUaIHtWKuO20AUPa5KNz9QRcaJkUFWMtpl5VZ4eVl5YEBZUb+gNPIfrNSilVowyA62wgoK0g+YAu91ricz4xnPrFRFPigZOzPH5577cIAZM2bMmDFjxowZM24X210qTeuma75440Pm2LRXpGg9FpwJmXBsWqzWKQ77NolDyQNZCQklRLRGCA2fVSHd5mqI6goJJxoavgEhTkC3eV0hsYUoavi2u1RmJWRWQtJnnfRqiMbWg0kRGdM9roSKTWSCtoP5YVxZTubjh1yaSNmMbzQ1mVU96OEuH2xMvuHmth0+ZnwtIXrqukKiOyhf5yg2kId9m6gmLjaQ+TqHaASefyHBi9mJlLfxTYYmUmPhyMrr67qwmvBWt6h7gl6pk9NzDXBsWtQVnBTxrhdZefERDwtYuPg1Cn1WQrqEyruX1RUS0QiAeUm9RzQC52VHnpRZrVPomnMwIReclx1xHiZKgDFoPcRBT8Sl7sIk+vBACdfC4DOXzBoQ4nIe9m3C64wJHQnR/0711djDqbgK2bFpQYUrZrN0nQQGCpEq3bf2pTBeb9Lfw0LDwxeCKw9xNaiQcXPyMIpGOBNxVduYZaSC2tN0G6u1x7Snt6k5mUvTvFTZS38Lmwpt5jYqxFWgXrRap4Ox5N37FL+Xf7QH2l6ZbObWKmSTlrcBW0mgqnzYtwmv2NEyV9f9t7tUfvv6Sdv9+eRJHnyVMVclZSLE7+FETLM6IaiXLU7A56cvVsJqTxtrssHNlY+0nAj3DcdYkx1tri4o7h8hGtFn4JhpvXrZVNDI4Tr3mDA59YoNAECel933xQl9lXbp6lEIUVEjb+hGVl8CKrz/H1KrdWw4EVIHNf6uVtw/au+f6iFnhYgM+aKukJB/CJTuNORNIeWU9iZz8tmZsgzM1LyfuRIKTvvnn9/x468YkCMCU5polML4cJdDQAzWpnbzYIV0pg7Bq7wohiCKh2Li9hSKjZnQGKIQipn6t6lQTEwmxIezmIimkOn/Rl/8dyELmoFVRWLM1P8A+D8tayWwTnoAAAAASUVORK5CYII=`,apple_tree_growing_4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAA59JREFUaIHtWE1rE1EUPRNrUZCAdFHRQgQRTLLQIFOYVXUhrtxEf0DX3XXvsj+nZO+qdhUwi+giaaEIDq2lbqVYsdpxkd545+Z9zZsXtSVn08zMe++euffcjykwwwwzzHAB8Op1LSu6vugeQsXl8J1h6kyK1vvCSsiVBBHeGaaoN2rY3EijEGcr0Wwjk4Y5mWYb4/u0VkXWBUoP6QyrQiE9Mugg4i9QNHwVScDVsHxGIDLNNjKv8JHLye3c/RwyFKpnpv2FQB4iYjqjpmc20t6Qhvnbmt6+DBkumQlRDzqIuHFZg6S+yLODDiKXjJJrjMKnw+la5RHpQelNm4b4Gq5d40ITAQjN6OqSjhBEIhkXmfQhMwkG3diMeetNGpehKmJUVnJdqLS9jMRWb9QAJnY6rN6o5e7ZSO0MU5D4AaDeqKFI09aGsIi7bd5Q2SjUkXmK6ryjSmObJ0tD5SWnzPGFrcCp6pXq2qenRXzT5kYacTGbujQnoFvrskaigvMMoLi7jgyUfXItf8FBBxHpxzWjIn6ITbASPI0hSoV8IbJReLSl+LtowCRuGLRo0qiy23M3y+ZpI0ke0HVx21g7p9vAxxCqzLxyq5Dfm2YydC5jbUV1IDfKvVVv1NDaWhgfbto76CAiT/AwDjqITDqa8JCK/R/hplkLC+CH2/aSV8C+SIJ9tyXxKHxJrB5xJRHTvKTbV4glEen2Jjs/vTEPpanfQVMCJkJmQ6vRAtDPAER3nuczhsjYQmJ65v1t3+3lq3qzjay67zHnhCJE2NxIoyQGqvsj731+Yy4NNhQK2Ug7/Wwctn21Rogkx9KjCg7en1ltlPaQNKyDCxm4Ekpi4NnKDdWj4MOYE6FuDzj+dpy7NwrbGMGIBfkPGgCsra6Pf7uGUQVnQt2e2lC3d/733Vvl/akRYoai/rDvZ80BwUIGANtbu7m24oNShFqNFpIYGemnuniC+GG5d/TaLcPG9TM3f+atH29CHKcn82WPyCGohkKgMKGXL5Zy18uPmyH5FCPU7QGHRwf0O6ejEBkGnwFNh+riCeKbFQBuTVSHoBoqm2HwJSR1FBI+rWOso2ng4qe9CT9/VEqNHghJ6OuX6+h9KJdhCDJTLz8BAKw8fQD+RftXCZVNbRMuj6jLileHy+OhacGLUBIDt29Np314e+jw6CBbW12f+Pz5Z4Qktrd2g5zz32nIa8JLYuDe3fv4+GkvV5lPv1+Jrl77Vapw/gbAXZxH6Oy2KgAAAABJRU5ErkJggg==`,apple_tree_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABwFJREFUaIHtWUFMG0cUfbOwDiHYmBDHEOyA41YtdiowEUioh5Jz1EZC4oAUqa2UU6McqqqnnHPuIUpPOfQQKYdIkXLwOe4JCaSQqAFaNYCJCYS4Sb22Q5ANnh7MH2Znd21jO1Ej5UsIe2Z25s1/b978BeBjfIzGgjVzsuhk+bfvZAfSL/M8EPSy9VQGC/feAyBaXI5A0Iv1VIYDwNT0CO7eeQhfr87Sm8WaQVUFJC9Mk0YngbGwjtnlIqe+M+ETbGX5Hz41PYJ0dlk8k4gbAMBqBaTJC9OP3BYIegGAB4JeU9/scpHfvtKFiQudmJoegRMYX69+KBaYuuPBU61saWMXAODr1ZHeLHJKP2kCOBg/caFTTLa16oU/lDGBOQxdJkAA+O0rXbh0898yGP9Rlt56Kxb0ecIWUARYBbW0uIbe0y62+axgolkOu/aFezYZoskTcQODkX6xYxkUgQUAFcy181ncSpZMGYIieLl98FQrljZ2+VhYZ7PLxQNRRyeB3tMubD4rCFCXBzRcf+CBP5QRdFAGaIzcTmAoSNBkA6SxRNygDHIAkJhhJkAA+MSFTmytegEA/lDGBEpoQ6FT1o5MW9+Aiz1PFoQNqIKXs0vgTYBUTagLSTvDF5+48MfTgmWsKmyVUgp1XqJRHPuFe0B6s4jggJsl4obpYZps4kInNp8VOIG5faULW6teQZe6gcFIv5iHxvhDGTFma9WLRNxAT1+70JQpQyQ8Sq9KFy2YiBu4faXL1OekOShilzfoD2XEQUHZSpg4ZW5PO3LZbYu50SJqmmWKnPrUDKtj6DmfJ4yLx1dx6ea/YLJ2BiP9thzbLaC22y3oBErOmJz1sbDOtLHwgZD9oQzODnULPdAkZ4e6K4KhDeyfFPGd9FULmN7TrrIPRSfLDi3zSym8/sCDs0PdgkKnU6K4s7CO/r4C3Cd68eTxK0sm7U4wAMa+//nAodUFacfU5wRuaXENXm8Hy2TyFnOlDdqBkkMAik4CwQE3UsmcSdCJuIHjvlYGAK/Tu6Y+JyNUDdMuq7SxJ49fmTZOPsTIodXTJaEWGVIntAMlG6UdtXZ3Y3DAzVLJHBbu7ddDsc/cjLxAjsFIv8lpKdLZZZwd6raY3tT0iBAyGaBdhuR5pqZHkErmRKGnuT3tmP8rZ3Jd1aXlyWiH6eyy6dTcfx0SbTJYOdN2obLCopPgapkBG3d18iKnPgK0tLiGvqCbPU/lxDqVCjkNCs9OYNRdUyZ9nrCjAfpDGUxNj+B5Ksf7gm62tLhmyjb5j1xVsi+/1bH2eI93nimBnFo1Lp8nbDnuTteAXT+J106P6ksACwxraGnj2Nth/PK1YQunTtdDpatBvZTtgDsB0tYflbC3U7707955CJ8nbHrYKdQTIwO8lSyZrh9IMpCvFLu3EgYAgWEN+jGO4hsmqLMrIVQayNzUXdtlxa683TdS01uJQCdTd/Gq2zIpXRuVjLGWkkOli4p7QRl1ytTJvqHeYf5QxgIGCoWyOTqNwX5xL7/9mgBRtLRxZqxoSMQNJOIG/KGM6X6jNlr4/o2cZUHVpe3MNhE38PVPBmI9LquG5AgMawDAg3qZ72ywfJcl4gaMlTL+zjMlGCsagnoJLX1tLJks8ItX3VVpo/uO5tGPcVZ8w7D+6EBbtoCOMo63nPGgXkKqqAkAHUc46ypxniqWwQDAdgnsSMiFjae7QntqNmRXNlY0tLRxRvKQwdgCIlDdLSW0a+AAkCpq6OlqYzy3DRcDj0VimF+cF8+nihr6Ahqer5d455mSxQDlzNhlRQ6Lhgh1u3YA+JuhIej5be52HbWMnZkrj9/Z3EVQL2eStCZniDJTCYwjIFpIjlgkhnx2j9uNHR8FTnZ0gMAbKxqMFQ33b+RM4PZ2KoOpCIjC6/GyfXoqRn47z2ORGAAgqJcQ1EtoO1I+sURV1UmqAZqZAzLZDDraO9j84jzGzkVRfOuqZV4AYK6Dl9GqVFG0VhswMweMj+bF97FzUVP/+Kjzs4sPOQBblh2jKmUUlKXxsQm5+XCrNQvQzByQ386b2kgvAHCqJyA+16K3hgFJC7Nff/vF0r7xYp3/8N2PclPdf26uGdDMHLDxYt25fzZhGf9OAb2vaBjQyW6/+Pz7gz8bna4xQLFIDC9fbQn9ePxvsVvQGvr/SVMok/XT6irVrZ+6AcledAjnrik+fFGTF1GW1KvkvQKq5EXNOGGHBlQpmnHC0GwNNXrCUC8gVUfNjEMDqnanNRoNUaZeqM2Ipmpot6BVrCBriaYBym4dRaur1HAFWTcgtaT96vznjWKpH5BdSdus+PDvsncdHwFVi/oKtFHzu1gzo+4M0btYs926aZT97+qhZkVdBdX4KBAe+BTLyb9NV0Vxp4XpbXsN1UT/AbUUA79aGpk9AAAAAElFTkSuQmCC`,apple_sapling_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAA60lEQVR4nO3UPw6CMBTH8R/GODh4A9IZ2EgYiFdwIhyHUW9jnDyEk5swN8TBxMEwutTBFEtMtOS9Sd9nJFC+9A+AEEIIIYQQ/6uslCkrZShjTDhjmlqjqTUoUWxBTa0RxQpRrMhRJEkBkxToX86xbN7KSg1enmcwm2Vq8gxsAd5LZvdIFCu4Udy8gtwYADjtEHyKoiyb9wzZmO1aBzaqC4f32P1EOW3B2AdceQazmqXY34/owmckgD7Ezqr9CB8sx96NAV6zODYGAKYcQYv2/drYEIs8Q9fbmTrEANufmosEffN7QYf5haOj9wCqOWHeZMY0fwAAAABJRU5ErkJggg==`,apple_tree_sapling_planted_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAARlJREFUaIHt1TGKg0AUBuDfsKTYIjeQqdVOsJC9QqrgcSw3twlWe4csCOmi9SBbBFIEy21mi2Si2YXFzDwIhP9rBIXn78y8J0BEREREREREREREREREREQuilKZolTGp0YgGaZtNAAgihU279qp9kwqUNtoRLFCFCu0jYbvSt0tz87XZAWTrHB9ucS2TVaU6ubleQazfktNnsHYgL4mb5k9I1GsMA4lbVKgcRgA2FcI/gvls22TV8iGsd2zrxD04fB8Ww/nqW2088H2avs8g1nOU3x879CH55C4rBBGnXfPCBBp+z4EFt3wcTaAyzx6kQi06P7ee9hgPJ6+fEvccA4kNXd+E/t1SHneQNtapo5zIBvg8/Ugk+TiB9HsZVMDm5FIAAAAAElFTkSuQmCC`,banana_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAARJJREFUSIndlD8OgjAYxR/+mfAELiSayOaOzHIMhw4OToYbeAHj1MGB3d1JVxMXL1AO4Anc0NSFRigt/mlNjG8itLzf1+97BfiyHPGQzPyPTQhlPJn5jvQOANAwKi83n456IJRx1boxQEgHadkwnyw6AID1uLpm7QQ6WQGEnovQc3HYDyttMgIQyvj1simBZFmZQVE8DeAMjlxcgd+dgWhP87z6DuBVWQfstydzQF17ojhD8b/0VopExnXmcvVKgO6nJYwBaAcrV18BEMo4TwMAwK07rxjUJUZVfQlAKOOj/oP3LH6yuap62EhRnTmKJxAb8msO0SoTc6iGLIN2y7bywyjOSvtfBsigKFan6pnx/+gOFz13YOwa2yQAAAAASUVORK5CYII=`,banana_fruit_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAixJREFUaIHtlrFv00AUh3+XOElBwRgbkCIk6FIxoEpdGLylexaGbggpa/6CTgydmJBgZMnAmIkqa5XxaKVKqQJIrVURIUWp2jo4bZHi1uYYwG7cNAlVz0ZI75t8d7rnT3f37h1AEARBEARBEARBEEMw2QHNpTnxs3cedn1thw2NAQB4zUpGyFyaE0ZOi/QddPvI5FPM8318rFuh2DgpqUKl508FANiuE/YZOQ0H3T5yMxnmDs6wvrYzMUZKplAgozCFAWBplma26+Be4TbcwZlgNwTmTR2L5YSEUq1t3PrhM0944DULvvDPx3QBpIEW76FRHR9DkSnE7mbZTOcQn77dx7ypj45np8eQukLi8BSrW0covdDR4r2RcYUpYaYlIgQAi2Xg3ZuNYQlmuw6MnAZPeGLafKlCq1tHkTavWfCEd6UY0lfouJO/1nzpQtdFupDyfTRxg3P0T4Tu3HQj7aueI+lCGScz8SaeRixnqFHFWKnB8UmyQkHqqxsPAACVoopsvw8A2Ld2YRYeoVJUkxMK+PC5E34/OR2IfWsXjbc14OuXiZdjrGlfKap4OPsYAH7L/CHouwypxfUiXUcH2ttieaWK968bAIDllSpevSyLcW8x6U/YYZ4tzGLPMURpwYz015scvL156b9j3bI9x4CRV1m9yf96Tuylwz6JFtx6k8PIq2N3JpFaVtCMyCpdlExMiLc3AQBdxw6lCpoR67klCIIgCIIgCIL4z/gFhUm39sdr3R0AAAAASUVORK5CYII=`,banana_fruit_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAnlJREFUaIHtljFoE1EYx/8vTWwq6XnmGmksiKCpQyNWtIXbkkUIDdYlW5ZzsBAoSqZODgXBSdCtLhkcg4M0IEJDwOWsYAmIQhOHVggJxJNrrNLQpM9Bk+aa5gZ7d4vfb7l379333o/vfXf3AIIgCIIgCIIgCILogVk9oZwI8YPvh9Ou50usZwwAoGbLzgjJiRCXhkVDX726A4/PxVrtNt7lyl2xQVKWCsWTMxwAtKbe7ZOGRdSrOxj2elhzbx/r+ZLpHC4rhToybuZmANgQG2JaU0cgeAbNvX3ekYkqDgm5Pm5i9GebtXgLaraMRq11OObn3XYh45AQGzvFvJVv2F7juCr7MX7OytlPwL37s4Z7ORHi8eQMlxMhPjDoL5bXUFQBnj99/8/xlgudFMuFzAp2e40jqsB02xzJkNdXxkJ6DCv5kBPLmRNVwM+fvcw719WNGDfLki1FvfBo3NC3kg8hvRjDlTtfDKJWr20qdfOWD1EF3YysbsQMbUeF0JOpXoHe9tEsdrD8+NFhfmoCjdkKJqUASlqdpxdjeHD3DS5cP8CkFGAlrW76Rlou0yE5N4JUROCXpl3869uXPBUReHJuZGCsba99KiIgFREQDoQBAIVn2e5YOBBGKiIcG+e2S6iq+/80tjb50nIGL54UAABLyxk8fqjwqu5nQKMvzpYamp+agMvjAQDUdInHp2XDeK6oQjz9g73+3H9Ys2XLXn2qoKZLqOkSJJ/AckW17xn91+ixsbYI3b4mQN36AADQdo3bkiuqkHzCwJ1x5F8WFCVDlrTdRlf4KLZ9h3qRL95AUJRQ1TUeFCVW1bWBQgRBEARBEARBEP8ZvwFFpOQ2GmcYagAAAABJRU5ErkJggg==`,banana_fruit_growing_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAuZJREFUaIHtlj9IG1Ecx78vmsZIvMa7pCQKpdBEBSO19A/cliyFoFQXh4IU0kUICMXJqYNQ6JShTk4OnYoUtAZCwSB0SaXUKtLSxFC0kCYQT86orSHR10HvzHmJ051L32fJy/vde+9z7/d7jwMYDAaDwWAwGAwGg8GogRg9oTjipye759OuJDOkJgYASM1tXo2QOOKngs2p6Svm92B1WEj1+Bif4puqWCMpQ4UGRx9QAJDKston2Jwo5vdga7GS8lEFK8nMpXNYjBRSZJpJMwFAmkgTkcoy3N7rKB9VaIUeok/kEYpckZBlI422w2NSpVWk5jZRKlTPYzxF4audunp26X7OgY52n/lCxHWNtOR2sL1E0Sfy8NwAtpeoGp9Jnhb1788eGnyCujtlqNBCcgfv10sYfMpD+sHTSluWKhK1xT6T9CP/N0vrzWF4DYUiQKvrr7obl8HbOs0XAoD1nxuatx+bcAEAYtMJTIyH1d/UW7tulwwX2s851LayuEJ63qf53z2cNXp5PfcfOdDR7qOhCGgoAqq0F1fDdHE1rLaVmOlCZ/eMRkCR6mj3afr6RF43vtloIVfPLrp8HhKbTtD0vA/dw8px9yOGBIDTYu8ezmrSayqhyGnqatNTL2WX3dimSI299OCCgNo+i+kw/PNDYai3E6WHOXQJbmSkIp0YD+P5sw+4efcEXYKbZKQilmfNWr2OjMLogB3RIEdv91vor4/vaDTI0dEBe8OxplyMABANcogGOQTcAQDA8us5NRZwBxANcnXHGX7KFPLy2ZHeStPJqVm8iS0DACanZvHqRYTmZZ4AJd04U2poqLcTFqsVAFCQBTrYL2ri8bUUnK37JPFd/7FmSsoWvuVQkAUUZAGCgyPxtZTuGflPW92xpgg9vsMhtfUFACAdaNMSX0tBcHANM2NaUdfidQqaXZIOSqrwRUy7h2oRb92D1ykgL0vU6xRIXpYaCjEYDAaDwWAwGAzGf8Y/wKIyp5xRIncAAAAASUVORK5CYII=`,banana_fruit_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAtlJREFUaIHtlj9ME1Ecx7+vVyyYtrR3kNASFGMJJJaIKJqbaBlcIIoDg0mXbqSjcWByYHJycGIw6eBISIxp4gI0cTmJUWtMjPxJAEltFYpHC4ZCy89B7ujZg+nOxfdZ7r3fu/feN9/f7949gMPhcDgcDofD4XA4nBqY1QvKY110tH2y7MLcEqsZAwA0NjOkny3ZL0ge6yLJ5TPENnM7aHA7WKVaxZvUskGYMr1sr6CR2AABQKGs6jHJ5cNmbgeuxgZW3j/Ewpy5MxoOKwVpYpzMyQAwgQmsUFbRGmhGef+QDmkPvbKIaPwfCXJ8WoRnr8oqVIEyvYxivnIyJhLyH5qopWebSlk3gv6Q/YJYyznWmN3C+iyhVxbRfbGI9VnSx7P5VQDAt7dtdH/8u6lTlgqirQO8/FjEg4c/Ufgi0pbzB2kiaos9m1/F+3yJzNawvIaicWAmI+pCzqJLbLJ6e3NB0TiIygJpTyoLNBIboL/jQX+oziXLHSpl3Xp7fkrA0HhV7y++CBn63aMrVm9fz43bbgT9IYrGQdE4SGtrTtW6ZOaQ5RyfMwYBmqigP2SI9cpi3XzLU9bSs43BfsaGxqtob7sEHH9V81OCIUXdoytweQ6s3r6eO1e9iMb/pM6suGtjtp9DGukk4Gnf1Z3Siru2PdjPTP+jll8/NO5eaUfxZhZyhxPKRoXmpwSEbhEuXDuC3OFkykYF6aRdu59BbLgJiYiXLvc56OvrGUpEvBQbPv1AtCVlGomIF+HWMAAg/XRaj4dbw0hEvKZznHYKyqkisLZIE5NJPH+SBgBMTCbx+FGccqrIgGLdHNtqCADu9XUir0o00icb4qmMAt/5Env1uf6yZmvK8qoEye1lqYxSN6b+8pjOsVUQABR2jWlJZRRIbu+pmbFdEAAEfJLBpcJuEcraO9N3ba0hDbnzOgI+CTm1QAGfxHJq4VRBHA6Hw+FwOBwOh/Of8RuWiD5UfcCbswAAAABJRU5ErkJggg==`,banana_tree_dead_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABndJREFUaIHtms1vE0cYxp8xdpINiRM7K/ERmqaUhKwgTWXA2K2QiIRyQkWqlFtVFSmX9i/opfce+wdEoofefAL1hJBAimAdk0RaDHKFqZpCAmllNs6axCSh3h7s2c7Ozq6z/qoq9ZEs2buzs7993nfedzYK8L/+YyLJ2TEclgNYWzBN9sSJS4RsFypQU/mOAgUpTDyWsJ3ILKTNYwlCkrNjANAxMDJxdtwBY0GtpAGfbtEHYOXnYSygcrlsOyFJkg2sHhQF6RkgeJWGFX6/oSdXvj6NtQXTnFSmbBAUkB7zguLzkD6gJEnIrKQRUUyipvJC9xxAydkxRKNh/Hq/ZAKACMwLioWhoeeviSgmEbnH68QlQggYu/v7e/E8Uxa65QaVnB3DZo44YMrlMrI5DUcvgADAxkNY7rkps5KuDmatp26xUCwQDwXAAuLB30uGyAt1vy4ITY9sTkOAPaGm8tB1Ax9+2k+yOc2WR2zSx2MJK196Bgh40bEv1H0zHks4YMrlsu0jSZL1IAF+Mgo1EpdINqdZx3koAAj1VnOCdyeb03DiYshBygOwIFQOIApVKu3YnpZXPJbAn8vVvOBDCgBri/u2+sY7wYPSNAjCpZgBqIbuvmblE3VJNCk7ObiccbuGJj69l14wEHTrZccSILpuYPhcD8kua67VnE/+bE7zhGEhAGAkLpFSaQe6bkBN5RGUwkTcy9JpEyDYxC6GPwHJPEib8VjC1SURjJsjFAIASqUdW6ENvlyEOalM2XJFkiTbxJkHaddiRiWC4WsSaGhqbogUoADsh64GKq+nhkvi8zDD57pJRDGJrhtALW9FuStcZSKweCxhdX9+bDanYVKZ8oT5K7CLzRwx2c9hOeCAsporPcC3DQhaBz+GPcbDeFVrUW8MbBcqiCgmiSgmocVQtBVhnXIbw4rmDF+tedfXFkybU669jHfLzSWRY/yK4xcMuO0N65Swl4ncOohL9OkpjKhVsGB0TrY3OjujwC0+P6gyK2nbZoyH4ceyEuVTRDGrrUMkutcZifeSbEbzLIp8WPjwolb5325V107PAKkV3n9UDZkJVyAWCiA2692g6PKnecGCvN2CbZcZUezR2S6YUFN595BR1QsdTWpw+2/WEQpy9YsL+Pmnh573qwvEQ0GwiWeB6r2hTCajkCd03L3RBBAErzmsW1TZnGaDOR45hZebzxxznZ/pw8uHR4XnDgzEgnUfJthYgu19LpvTcPQ8yO62id/vmMKb8Zq+DodTwl7mJTWVx+52NTccTXWjDDWVx9Uvo36nbRyI6uQHb2x7bgDoLr3F9HWgVxZve3ndvQEcj5xqHkhN5RF8/sZxvPvNLgDgh++yB55raEJvHshLpfU+X+OzapuBmlXLgYKbnsXfoZbkEKsjR47Yfkd6d31dz5eHpoEMw7D9DhVDmL7e+HwtCVn3oUO233dvoGEofwGvo6G+HujFEK6d6QcyALDue46WJXU8lkDu0PvWHufmE/8wLQWi+mPouAkA31wO4/uvLnQeKBwOW9/jH120vr8qRvHtj957n7YAUQ2Gw8g8WsT5yG++dxAtBSoWCrbfL5514+aTdWwUhzoHdO3MMEZOis9FByr4bCoMdXUZydFznQECgKXXp82ZyzMAgEFZhl4oYHxUgWr0294mPv94pv1AJtkHAGQeLXqOU1eX8ar42hdYYw6RdyjqWwCAqCzXhQJggbUHKPAOADA+qiDzaNFK7MreXl2w9gAxGh9VMMi5NNQfwmdTYddr2grEuxKPJaAWh+r+CbBtQKhtQfhcGurrwbUzw/8OkMglttF2HChaq0OotZCnq7mG5/IN5FWlUatN46MKwNSrtgKBqdJ8qNg8KupbAHnXGSDUnKAAeqGAqCxb7liggQ4A0TDQosiKwiw9XsH0sNHQNsS/Q0zbgEfrWN/YwS3NEJ5rLRATBtalSm2FBbq6gCaqdVtepZup1k0BVfb2rCXeKh34vWxubg4AYKwuARs7NijU2sdg2B6iW5qBubk5zM/PW9dTzc/PC+9TdyXQidgJ6L9nUJhAVxcqe3sYlGUEABQNA5mVNH55/FQ4vxdckB9IT4pAWJhmxM7JwwXcTrhZ6qVWrJAAPNzwggqHnUu6wny/cnkGE2fHfa+0IBumRsX2NAp1595t1xxixd/b918/ajcxUXOB7qcHZRl37t3mx/kW4XNHRO0mPiSNQrD6G0LRP+c+tRWxAAAAAElFTkSuQmCC`,banana_tree_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAiNJREFUaIHtls9u00AQh3+blDjulsrgWkIGJPvEDSKO5OIcECdQy6PwYiBegFx6Dy+Q5IBycROstE5cQ70c6nUc/4tbBw5oPikHJ+vZb2bs2QAEQRAEQRAEQRAEQRAEQRAEQRAEQRBlsDqL+mcWuNGG794I+V1Xa7HAiwAA55+nexNq1V3ouzfCdjjkJ/AiAUAYpo7+mfXvhbjRZpOhj8nQBwDYDsfgtA93Nt+rVK2WIW4bbluFwIuE7XAAgKX18O3LOQxTZ+5s3rh9lUJlWXeOWgiv8lIAWFOhgyoZw9ThzuYi+1t4FUF7wtlk6Avb4Zh6o8pNyhIrki8USssMTvu5DeOKiMfPN1JVAtrJMbyL5VZiXa3F5Lq0WK5lu2QyUpAy8cPOygSyseTLkW1zrkLcaOdkUjdvcEaJzHU8jw4fqlhdroV3scwJZBOzHS7jinRhckJy3ky9USKSHoLxNSZDP6mA2VMBAKvLdZJIUWWziWXjllWIyc3kDYEXbfU57r3MKhGraEuhQDYuyp6hNFWv8eCtifCoI8yeCkXbzNiyyu6KVyh0F969OYHih0L5+BTKbRtzInedS6VzqA6KH25d6+MFVo9UtoZ674ld+yzbhaX1AACHP9eNjo97C314dQz+TAcAvLBey6OjMY0q5P+Yi5ef3u9NprHQ3+D/E5Lt0scL/OoeNBojexFK8yD4ja/fl41iNJpD17zD9PEi93+pCX8ACFAUE3a7dgUAAAAASUVORK5CYII=`,banana_tree_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAA9tJREFUaIHtll2L41QYx/8nbaczZqZkbYNSFVr0TofdK13ITYt4I7I0Lrigt/kQ+xH8DDLeCF7sytJhWBC8mV5Y0EVkRhlF2bVFpOimdUO62Wb6kuPF5Jw9maSvznZvzg8KTXLa/PJ/nucQQCKRSCQSiUQikUgkEolEIpFIJJLnB2FfDLMEvZiH3elRrZAjTtcFADTr7bUKKeKB3enRas2A03UpAKoVcjDMEgyztH6hTe3sa9s5Qrmi4nmJiSWj5YoaW1DSruBwvwkAWEcplXkLkhLTi/lnllai0KkT8E+SmN3p0WdiAyCddDKrPfVkUlmhxxD2nGGWFirdtDSTfsuFVD1FWg0v1kdMRBQrV1S0Gh4Ve3CWhFbIsXKL5whbI4rxKDx7wqTQanixG2Q1BVlNiZSRpZQkoxfzAEABUKfr0mrNQLmizu1Hcv6P2I18J0icOpZWVlPQanhQ9RTx7Al/SnGDrdYMXmIklF+YYMJ+H2nqZr2NZr0N3wl4WkmwpMoVFZ49iTW4KCMOiJjyqRNE+pGROGXNentuCZMwzFJkgxUlxEERxcoVFb4T8Iea2pRIKCE7z0p56gToHA2wsa2Q4eOAl6pcUbnMLNiDqnqKfPPZg/lC58WQ0F9Mqlh6iXTa/9BqzcBv7R9nyjCRTU0hfthXrIcS96FZ+E6AjW0lskVUawYO95uxJj4vIDwU8Z0AvhPE9qK5CYlTI57XXlaJ87fHy9M5GkAslSghJsGYtqHOTGjaCIfjSl98TY0kJcpspSdk/NBHyh9BaY2RezIEAHz9+3BmAFOFkmTe/eEkvHoC1D7B4X6TyxSvbHGZbe8x0fpP4PbGkVSv7hICbMyUShQyzBJUPRWTqf+U42tMfIl25U2eDMJeyZ10AIC6AD565+zG180z6Rs3R3SeVGIPhVNFyxU1IlJQx6TrpVFQx+h6aQoA2Q9fAQB0jgbInXRw69MM/5879WgzXzdV3Lg5AgCytJCqp+DZE5r/418uAgAHxy6uXT4TJFoG1BlRJvX57p8xidvfb0SOr+4S8t3PdLmEmNTWowEA4IVHAxwcu7E1oRgXev/+rzEJfScgdj+6Jy3dQ1jhFfW9v4ZcRJSw+8rcyVpIaBUyW5uYjMbE7o+XkhCZ+069CB93n1Y+lUmvLHNhQhfJykLXLueQ38kssHI5VhKyLAvZS6+i1x/RD97WI9cyOzosy1qPkHijrxq/RK69/lYBAHDn2wcYug9hWdZKYitN2d7eXuQ498YO3Pt9hGnRL24fLPSelcSFNbXtn+LuPRsHxy6XWUtClmXxhMKbU9yzxeP/xX92wDVIcXKaVAAAAABJRU5ErkJggg==`,banana_tree_growing_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAA9hJREFUaIHtl09r20gYxp+RnFpFtarGETQpCzZd6KWQ0EMvutiH3VMJTo97NvuhFsN+g00wOS2U+OJDcwj2oYdCW5tSnAXZWa28InITe/aQjBjLI6tS5KQseiAw0d/fPM8778hApkyZMmXKlClTpkyZMmXKxImwgblXgrFVhDUYUX1DI/bQAQC09/u3CiTx/1iDEa3WTNhDhwKg+oYGc68Ec690+0CKfjXs2x2UKyruCoyPjJYr6sIFJX0HRwdtAMBtRClFXSByzNgqrsytnOjgxJ7543wgymvHKO8uEw+Z1MHIyBgcAwOAXsuFokvEs2f+i829EhRdhmdPqaLLxLOnc+dEEkH7QD//+hSuNRVCicB6LRcASHu/PweztXMfg8753LP1DY3FDe6YsB79abvWFKohk17LZS+bU16XkNeluTgVXVqAYSroKgBQANQeOrRaM1GuqJH1OFcH7ISiS/Ds2VK38rqEXstFYTNHxqeXPsygc46Hhkr+sVxarZno251Ql7kVTJhLC4XJwFRDjoyQQZUrKib2DIPOOXIKIZce9WFEC4QHY/X45vdPQNiyb+/3IyMM1fUUGQyLml8UfPzligrPntHA7WIFI2THmWvMFQDgitl3jIcQiU1UNWTy528fo4GCYBDUFw8FANWaiff9k6UwDIS1DnArTdgYl8mzZ7j3QCK9lutDVWsmjg7aCBZxEICbFPHsGfg+xhTpEP9Zwh/XH6vE/usKirnER8VD8E4whXXypQ7xMPzs2fax/oM65xQPw0OInAhTqENBmPf9k7nzz0ovcHTQhghGNWTiWtNE+1lkH/qWImV9ZdA5h7p2SdyLXOLNNTQy1hTDYFiN8B1aezfA9JGK9tu/E8EsBQIXA0JWSm7oYfLHGc2/foKtnfuYfFIgu18Tw0QC8asluFI8e4bi538X7pFkeTVA19sGXdYzdrc1f/zTl684vBHKEiD2jQOAxFmyaSjUoTgQvwwJrJSAIj/yb1uJgXa3NRQLa+nS3NSh0fiCvnppAAAMJX/3QEzaj4U0HgP8r2poVUoExDfEtBUbaHdbw+Z6Hte/ue4eCABOzyb+6mKyvMndAW2u58nhsYUgFNPutpY41thAza6D07MJioU1cngs3DDoTeJM5FCz62A0vhCeC3NtpUAiLYswjlIDYjCHxxaKhbVv+gG6UiBeo/EFml0n0b2pAX1Xm2uaigVUr9f9cdEIL+Bm10G9Xvf/VgIUfPDIsuirlwaePt8QXt9oNNBoNGLBxAJiLxHJ+TCO/eIwpVZDljdJpbAT9wtc7VkLW0Sz6xAEIo4T3X8sUS1ZmPdudgAAAABJRU5ErkJggg==`,banana_tree_growing_4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABJBJREFUaIHtmM2LIkcYxp/yY9T0apo4DRsTgrILuQRm2MNehOAektMyrDnmFpD8VfM3ZIbBS8hhJGAOnpx7iLIkZqF16Wg6o+tq5bBdNa9ld9t215DJsA8IQzv99s/n/SoF3ut/JqYzWL1ZBQCYhyU44ykX161KmdmjCbpnw50xUjphrEoZALgznvJnL+qoNQw8e1GHPZpwq1KWwLcOJGDs0USCDJ0+Fs4aQ6cvoaLEytCgVFHspRIwAgQAcua7z3t53pVp2yUmQPJmCnNnzfGuBpgznkYCqzersmZqDQMLZy1BAGDQcZE3U2zurKPVkGGlAYDPnTUXOfcKkpuHJdSb1Z25FzUTpKgwAJBx7RWvNQx5Yej0UWsYqJrHuDzvSscEVFBgkaogd6JK3r1w1vJFwcIcE+kK0z7ubADlzJR87QKjLRyULuFOZBJP7OvvH8G1VxwAaOrguUZTAECkEmSoBhYzALZvt2ZcewUALG+mMOi4G/Uk3AJp4aHTB2660jeoWjtBTeEHKy2tN6swrHRkt4QDfg6R9wCfVYKQ0SKf0D0bgrjFvKC+bgllCswXFgCKpgEAXF0lYfWIoOUa5paPE6gcFzaumQ8N5rxy5eSm94Kkn9ajcMl3l4W5RZ1S0zrouMh+wLZgRNeqXUzrUShwuXbPhuieDTF31jCsdCCUKu5VCoURIPR+EaPWMOTKAl2uVGpXuPYKnlMyhUFQb6+57FS/2qIa9a8BAIaVlqWz9d/0XENfWRQAgB08uElhzkyhclzAqH8t60kMyTCYQcelg5N55QGoRa2ea4TtpPhw8CDF+Jpj+Q+X7f559Qkuz7tQ60YtfiE6o9RZtDGHVBiakqDgAmrUv0ZQqtS55AcilAFpcxWGBhVwlePCFuCusWBYaebaq0hLluGmiCMXo9//qDNGXR+Rz0O7HuSXIpDW99t3g467lyu+QN6skS4JEPopxQKmcAJG1FASGIQtVz+76XwSZ/Dyb6+R++YTCbXP+TkUSH0gduS93qyiNJoiO3/LKdDB32/Y5U+jWDBbQPvq5KgEABJo8cMfWBgH7MdfxrFjavvmKpRz3yS6XztQUr0H2qX7C/TtWM9PTffToa9+T9bqVPfTIZ2KDXRyVMLDD3N6aYK+dUTVq78W/LsvPwUA2POFFqDEKfMD8ZZuLN1GDUX6tTVIWoGeP7USx9AK1O7ZKBeziUa29pRNZktcXE1j3x8LSC3a0uNibABVSRxKVLxBSpQyHUWsKjZQuZhl7Z6tlyYu0MXVFJPZUjsMdHaZldez17S3fbmYvTur4/lTC5PZ8u6sDh3SMhh1am+gk6MSPv4ohzs1GP98veDqULwTB7SwSR03rbGAgqY0uRY7nXsD7ZrSSfebtrZv9+z/5sR4clRCuZjdui5g2j0bn1n52KfGWA5NZsutLqNgL+357dZQq9WSf6vH00dfHAI+y/XiaopWq7Vxb2IgEez09HSvoEJx7rv1XSagojoVp6hl/dA02fOFljORFoemv850hAF0p6z0uIh2z8bF1TR22+/964f3sJu2/pm8mRAGAP4FlBPshc8G1hUAAAAASUVORK5CYII=`,banana_tree_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABuNJREFUaIHtmF9oW1Ucx7/nkibXpEnb/BHp2iKm1dFGWhAjKZ1YGMJo6UCoTyIW86JP80V98V2GD/N9WB8EHwrCxmQvk8IMBq5MN5Zl2DbSdW03aZuluU2aZDXXh+TcnXtybpKbtBHBL1zI/Xfu535/v/P7nRvgf/3HRCLzI3D5JeR2yxp7wuWXSG63jPjSakeBbBQmOGU3nEjFSprcQ0hkfgQAOgZGIvMjNTAMFGDRLfoCrKy8jER/FDNlwwYAwSk7glN25HbLmssvCR/GgkTmRyD3EADQ6NboPl42l18iqVhJC4dHsWdf009QKEevhOCUHalYSXP5JRKZH6l5YzYPC/saglN2FDNlOHolpGIlDQCBiXu8SGR+BF6vB+l0VgMAEZijt2JkKlaqCR8LQ0PP30OB5B6Cwr6m1WJU5PJLxEDudjuhqnmhW2ZQ1XtrYHylYShKEo7uyjOKBxUQs3ylYxPeeuoWC8UC8VBVaWyY6DXdvXZykCk1BKHpsZk4epbUqM6GdDoLr9dDFCUJX2kYqOYRvYkOTutWNYkNovcdZEoanRg8ALs5eiX9RSR+MArldjuJoiT14zwUAHQ5KznBu6MoSbg89hpSHoAFoaoBolCqmje8La/glB1P85W84EMKALlsyVDfeCdY+UrDehrYUGc6VkOn5xN1STSoYXAkIYIRXasoSaSQhNfrIendrHkvk3sIKexrcDpl5PMF0yk9ELLp+/QB9WDoNVRut5PQaMSXVmF7zkNMexkA5PMFOPsIScUqITBzSQRj5ggLoap5Q6G1HWY1bSBkMyQsrc48XD2JYPiapIcmnTXtbxIFYDe2n6FBDYFJ4vMwTqdMAJB0OgswvU8IxEsEVu1nwmsVJYmBkK0uzN9SEWzTNWu85OxHrxgSmm8baJDI/DEepl61FvVGqVr+CQBCiyEfArYoBqfs2Ewc1RRJPsnpTOKrNe86v7Qx7WW8W2YuiRzjZxw/YcAtb1inhL1M5JbIJd7JYqZsgBG1ChaMjsn2xtrOKHCLOiXq+mwfK2bK2Ewcge9tYJbDVKJ8AkBMgSgUXSOZVWr68H7ny9jOr2AzcWQIIQWhlR8mCzVhyHiJmqyo61OxMKlYCalYCXIPIQBIYV9DfGkV8aVVVMEIu9GZVtchNBG6VKyEcHgUAPQJQEGoI3RKz773Oq5992vd5zUE4qFQjT+ziEc4PIrt/ErNjBG1h1cjXvhPp7G8KH5W3ZBRsbNP7iGETVAKA0Gh6++rbSl342moW93Cc2jWIVaR+RE4XATFXGWl6CsN68nscBFSzGl4cEPD9pO1hmNNL6DGqaYcYhVfWkUxV8mNYqYM9/Pdz04+PkR8aRWz73utDts6EFVfIUeKP2wBALZvHyKw8hccagHTC4DTf9jUGMuLqAldS0DxpVXYNg5qjjsOigCAS1/cbXos3+l0+0Cs/lj/zbCvbnWbXivS3fgxAx232gY6vH/fsG97YjO9VqRjySFWHwZG0edY1/f7nEVL9/PloW2gnYIRoCvThemF1sc7lhz6JPKGYX95ES1DWQt4A/m6ZaQzXTg/5gYUANiyPMaxzbLZcADpTJe+xrlyzzrMsQIx0gDg47c8+PKD1zsPFJAd+u9PL23rvx9lvPj82/prnxMBopo+dxYXL/RjcLhoeQVxrECeYXd1pArHwzUHrtzbwuOMr3NA58dOYegl8TlvTxlz4x7E128h8uJrnQECgIcrbu2zr1QAQHZNxcaD3zEzKWMvlzN8Tbwz8fbJA2nkKQDg4oX+utfF12/hUWbPElhrDpEjaLaKO/Ko0hAKgA52MkDSEQBgZlLGxQv9emIHQ/6GYCcDxGhmUkZ2TTUc87m7MDfuaWm8toF4V2bDAeypTxv+BXhiQKguQYYGJwzHfN0yzo+d+neARC6xjbbjQEODE9h4eBsAMPbun/jxl0LLY1kGqlelUa1NM5MywNSrEwUCU6X5ULE1SbOpADnqDBCqTlCAjYe3MTQ4obujg0odAKJhoEWRFYX5+pv7OPWCs6VliHWHmLYBNkyS8flbj/O4eifbASAmDKxLiZ9uYvrcWaQSu0Ab1fpEPqXbqdZtfQYFQ37MYLedIWrUtEPRaBTRaBRywFiE6Iziv2ABoMsdMNzPjmOmhjMhGo3i8uXLhmNz4x5tNhzQYVKJXQRDfmTXVISmz2D5+g1cU3bg6h8j31+PN35bRoaQseQ8BA/TjKzCGIBETlhVaPpMW/eD5lC9mJpBsh+IVInln/XfC28OYG7cU3emifKJ0APNukNDFpAdz77JqqIrx51CEdeUHVy9k7VcrW1WYADQh2gAsIABHSq7pmLx5iZ/nWVZdogVH5JWIVj9A/RCJ8Szd97YAAAAAElFTkSuQmCC`,banana_sapling_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAABZElEQVR4nO2WvW6DMBSFP0Na0VJVLCztkrxB9yx5hTxpXiFL9r5BsrQLC6pKS3/AHRrQhQAywdl8JCQwxvp8fK4NODk5OTk5OTk5OQ1JmXRarueEsU+WFLpqCyJP5WkJwG5zsAbkmXbMkkIvViHVlaelBnQY+yzXc2tAM9OOYeyr/TbTQA0FcGwzctpERg7tNgeypABQQeSp/TZrvA8iz5pLo2cm8yRcIox9lSXF5DyNApIuXN95fL+XDShASaA+14agjYG6Ku3+cabeXn71YhXWQPKbIPKq8Mu2weo0CnXXMsF/oOUz0IDO05L2+6ow2vCjgCRMFWhZaV/HGV/dqhPotsQYndVpBNSGARr3D083APx86E6Yjqqsl+0sILkHcTqrOiOtgPcC5GnZG2xThxog1WCyiqSDYwDOAjIZTLiixgC0ZXyWGUrBtMPWNtDkndoK0Ovzp41hgAs4NFU2gaz8gvwB9BbCFUm9pKAAAAAASUVORK5CYII=`,banana_tree_sapling_planted_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAXRJREFUaIHtlj1Sg1AUhc+D6KA4Dg2NNskO7NNkC1lptpAmvTtIGm1oGEcUf+BZCHhByFzCS3e+mRQB8uZ7h3MhACGEEEIIIYQQQgghhBBCCCGEEHIujOai5XqOMPaRJYWtjwWRZ/K0BADsNgdnQp72wiwp7GIVov7kaWkB2DD2sVzPnQnNtBeGsW/228wCaKQAoDqmSlqDKqHd5oAsKQDABJFn9tusdT6IPGcpjd6Z7JNICWHsmywpJvdplJBM4fLGw+dr2ZICYKTQUGrHpNVCfZN2ez8zL0/fdrEKGyH5myDy6vLLY0enU1XqvtuEqtDyO37L30jnaYnu+XowhsJQCUmZutBy0j6qHV9cm3/SXcQavdOpEurK4K8zAIC7hysAwNeb7ZXpmcrmtp0kJJ9BPbtqOtIp+KBAnpaDxdYm1BKpF5NTJBMcI3CSkGYxkYoZI9BF/S5TYjDxZetaaPKT2onQ8+O7i2WAcyQ0FZdCTv6C/AAIicIVov1ikAAAAABJRU5ErkJggg==`,asparagus_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAV9JREFUSInFVTuOgzAUHKJttlmlJF2UFIgr0EUpkNiaC3AGjsEZuAA1kVKg7SjpIkSRgg4phyBF8pCxn8GglTJVHL/PvBk/AXwCjmf3/5Wz4QKd7WlRk6kcSw703WA4X+sLmrKz5KQlORsxEAB+fm1T4iM8Djf2/5FEYRwNwY/DDWEcTUrleHYfxtFQnGsyNGjKzsqSFPe6AAAc3bMR8yxJR2eZlGIy4V4XSjIHZ3tClbdaUl8mBeD99bLZorn7XYBrfgFQoMpbvcnkAQBUeQvfDbDffcN3g1W7MWpA4MbUvRB6DLr7UQPZZLEAoJonI4wjRR52AuAljyjX3Iuaule2lFhSA5pIZEd+idNy7NkJmrKzOLk4iUx2RbsHU4U4AjrM7gHwkkknARE4ukCWpMq+sBPIO6G7FyfLktTMA5kZB5KIMCUV28DUZBMPVpm8BKtNfv/upbOC2c/hXIGP4wnebtncsEc6vwAAAABJRU5ErkJggg==`,asparagus_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIljYBgFIxOoW0n8p5ZaJmwa1AUcibKEGLWM6BrcNb3g/J3XtzHcPPaCEUMXCWpZ0AV2Xt9GyOFkqR2hgJiEgJGKSDGcmNSGNYUQYzixqQ0jFRELXitdRXCu41ZHtgXntj4kVysqULeS+E9K0YEO8MYBLCIZGBgYbn7YjzOc8QGcQYQekTc/kGo0AQsYGEaLguECAF6gPZZVZb3GAAAAAElFTkSuQmCC`,asparagus_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQdJREFUSIljYBgF5AB1K4n/1FLLhE2DuoAjUZYQo5YRXYO7phecv/P6Noabx14wYugiQS2GD14rXSXkcJLUwy1Qt5L4H1qSBNdEjEUwNfjUYvhAWdOZ4dzWhwzntj5kCC1Jwhq+MMfA1J3b+pCgY8gCxCQEDB+QYjgxqQ1rCiHGcGJTGws5FjAwoEXsddzqyA4iYgFBC9StJP4TCmdcqY2gBfCIxBOZyprOeB2IMw7QI/LmB4R4aEkSw+qeeQwMDAwM57ZCaIoi+bXSVXhE3jz2grElqI0YbQwMDASCCLnIwBfOJFuAXC4xMBAOZ5ItQDf47vW9DKt75uEMZ3wApwb04CDH8OEBAFoqeOiVTrE/AAAAAElFTkSuQmCC`,asparagus_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUBJREFUSInFUz3KwkAQnYgHsIyVosVia5lGxELQwsoLeAaPkTPkAqks8oFFCpuU6WRJkSJdwMYbxMZdxv2b1U/wQSAhM/Pe/DyAX4BFYfet2J4pgQ2WXiQ+sYGasJ5t5PeZ/0FVtIGW9Uas1sFtcqWEvxUvCVgUdvvjQSb5EIkYV6zWwXS2ku/748E4XyyGgiSoijZI4wRqnmtENpRZQ4rROhCoeQ5pnBgXJ8SwwRLKrHGK6ZMyDcAXNB5uII0TSfwVAgBlsdxcXCN4BnX4W8zVVoCCtoOqaAPxSKcSbrUtWOsAQ3VqdTfHUddmvSIMPG/VA65rIwmwo9UxYOW7aGEdkZFAVYmLqYak4OxAFKbGcCou1n/W02NR2M23oxcyTIJH4jphL6OZLsXXF14ENc+hzJqPzOZ1pv+BU5HvnH+KB+Rns9NcWsNEAAAAAElFTkSuQmCC`,asparagus_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVRIie1VwQ2AIAw8jJMYV2CRDuoirkBYRT9CxJS2Up9ewsNiubO9IvBDQWBih7LvIjjWZakPKWc3yT25OfwrkpkLEkUAwLbtUq6plBMXVA4Grq8t60HWYKQH9R2iWMX0SjniokZEIXlDoOGVGUbdYbazx+MmF2kE7qmWkqxlEEX0CKyNVEWwg1ZQJtoqghs6kcAKotgV0yMIKefmypCsKF0tXhepPXD/UAwifsg4AawtUVA+F49vAAAAAElFTkSuQmCC`,carrot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UMQ7DIAxFTVUJZcnIBTggU0+RKQfMBTJmQUx0aEDY2FSkdMvbwMn//o4VgJshrFOEdYr/N+m57xalKYaloqKd4o9uk4TzqnrmcqJW5+lOEH92m3BnmqZALJyU86+rDeFEK0E8Fp0Ps/PYyHklzrwwbnWADAAA5lfAJkSMQ9qiLL7tIV9Sw9OsuTmSO+p+2wNYU4zrk0QhAyEJl6Dq3hqNkiCS8JU1TcLWaJRANGGgBdQ9Fc0f+ft6Z8QEzMy7hLkX4rFo1PkvwokqgTV6iLBEhPL3cAMAb8x5cUBYehurAAAAAElFTkSuQmCC`,carrot_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFFJREFUSIljYBgFo2AUjAIagYmc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIH+JSQElKId7Ro2B4AAAM7CorC4ZVKwAAAABJRU5ErkJggg==`,carrot_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAG1JREFUSIljYBgFo2AUkAcmcv6nnYFUM3wi53+sBqOLoasj2xJcNAHAhFc2/zsjyQ4hCyC7Gt1XBAwmzoXIliADInxIvAXolhAZfMRagC8Y8JpBjAX/P3Wz45TkK/2J1xxcEpRkJtKCfRQMfQAAPQYyLlPDfzcAAAAASUVORK5CYII=`,carrot_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHNJREFUSIljYBgFo2CYgomc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIHxJvAbolRAYfsRbgCwa8ZhBjwf9P3ew4JflKf+I1h5AFeA0nxhJcFlCSW0mL11Ew9AEAw2E2LwiWHwcAAAAASUVORK5CYII=`,carrot_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAp0lEQVRIie2U3Q2AMAiErXEZGcShHeQcpz4YkipQ8CdqjN8bacvBlbZpfj4HEWUiyhx3VycfenCUASRVgCsAkGrrtT2MENCqsNf1PaaAPLyPRWjdvXkH40Rq+2WSMpEVC7ZTcAtnRN0x9S7doz1S1W0CEetci7TR4+QR60Jfhef7IqSLCIuiEwMgjRO5xVVesj8xln2mQEmtbSlis7Io2vZpHvkuXssMLP56RC4nRRUAAAAASUVORK5CYII=`,garlic_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS82VvQ3CQAyFnRUoGIGWgoYSMQUVJQswBwtQUjEFoqShoGUEClYAOZLRi3P+OaRISRUS8z4/2+c0NPDVDKxP4wIsF5PP7f6uSiodzOLn4542uwPVQMYH4KGocZFyIOXBictC0oDL9UGv54mms23LWa/mqV6EAM6exflCQBbiAlC8BMhATIDUXUoi2WsX/NvrRxFgiUuTayA9gBYvlUYDJKbkpAPIiFsuLMgPgLMudbcaGz1HJy2gVjxygae9A8DMvSw9gC6V6yAqhU5I4nsO/imTNUl6GfamiAN470eNts4C/x+/F+ZBExBuUDzVerNqYXkf7iIUsu69L1y4TTMAL+YLkFzsGSkFyYQAAAAASUVORK5CYIIA`,garlic_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAADtJREFUSIljYBgFo2AUjIJRMNxA6nS1/6TqYSLFcB19LZItIdoCcsEIsyBWZxrJFjASoQZfpBKjf4gDABs7CRP3VfqlAAAAAElFTkSuQmCC`,garlic_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJ1JREFUSIljYBgFo2AUDDPg2WH+37PD/D8+eXz6sMkzYdOMTaFnh/l/Gf73GHLI/O0VJxnR9bHAFKFLwjRi04QOiFGDE8As8uww/586Xe0/IZ+iAyZCCrZXnGTEFWTEuJxor8Hi4MlHQbjFxOgj6ANsgJQwJ9oCGf735LiFdB+QahFJFujoa5FkOMkWxOpMI9kCYiILX1onP4MNGQAAbEJDfI/EtV8AAAAASUVORK5CYII=`,garlic_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALxJREFUSIljYBgqwLPD/D/NDSfJEs8O8//oGrAZQIwaol2XOl0NxVJiDGPBZ/v2ipOM2ytOMuJy+faKk4wkuxSXGLIPsAULXt/gk8QXRNgcQZRvsFlCbBygizGRZSMD7jhAFyM6kjw7zP/L8L9nePJREKtBuADOVITPAHQ5ovQRShnERDI2Pm5BNDlSMhpZuRndAkKGwORpHslkJVNSigiy88HQtEBHX4u2FsTqTCPZAmIiC19yJL4+GLIAAIDwnt7DsMsUAAAAAElFTkSuQmCC`,garlic_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAsElEQVRIS2NkoDFgpLH5DKMWEAzh0SCibRBZGAv9P3H2Hd5gJjsOQIbvO3CRwclBnwGfJWRZADMcFj74LCHZApDhK2YVM4ipxcHDnyoWgAwGmQgKFnRAsQXYXA2z5NWtRQwRab0444FgEIEMz80JZQgMqcGaJKkSyeiRSqzrQeoI+gBmGLIloGABAXxBA9NHtAUgDbCIhmkmlMlI8gHBMgGHApJ8QI4loxYQDDWaBxEAZwZJGciZbVQAAAAASUVORK5CYIIA`,grape_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAdUlEQVRIDWNgGAWjITC8QiDTTPk/zEcbwrXhbJgYWTSyoSADkPk0s4Qsl6JrwuU6mDiyT9D1Es2HGQbTAOOjGw4Th6kjmUY3ENkAmhmOz1JkBxDNRjYQmU2RD9A1IxsMchm6PNGuRVZIFUOQDRxlj4bA4AsBAEAiL1mYqo82AAAAAElFTkSuQmCC`,grape_green_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA`,grape_purple_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA`,grape_green_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DKMWEAzhwRFEQtm8/3E59d3Uz3gdiVcSZvAPxW9w8zn5OFHs+n+RkQGfJTgtABmOz2BkW/BZgtUCdMNBhqG4nAspxL5BjMBlCYYFJBnOwMDAEizM8GfxOypZgOTyim3/GUo/qDIIR91hYMDjC9J8gGRB1aqv4KBpC+OGRMc3Rqy+INsCjGQ7aCwAuQxvRCOnIGjQkJSKYF4nmJqQwojkfIBsCYyNLdOBDAYBsnIyeiRiK48IlUMgMwZHaUqw0MejYNQHBEMPACcseBmTrgJTAAAAAElFTkSuQmCC`,grape_purple_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2ElEQVRIS2NkoDFgpLH5DKMWEAzhwRFEOpx2/3E59cr3Q3gdiVcSZrD4H1G4+eyMHCh2PWJ+zIDPEpwWgAzHZzCyLfgswWoBuuEgw5BdLsAmBDf/w693YDYuSzAsIMXwTc1HGLgz3jIY89tSxwJklxv6zWUo/aDKwOPKxGBXroXTFyT5ANkCY6fJYEPP7ssF06CgwhZMZFuAnmwHjwUgl+GLaORgggUNSakI5nVCqYmifIBsCYyNnulAEQoDZOVk9EhEL48IlUEw/YOjNCVY6ONRMOoDgqEHAPCIbxlb63vgAAAAAElFTkSuQmCC`,jalapeno_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7klEQVRIS2NkoDFgJMH8/1C1pOhhIFbxf6cwUbD5+1a9BlHE6iNeIQMDA1mWEO0SkAV+adIMXz78IskXxFoANxwWZ8QGFdEWwOIAOVEQYwlBC9w5WP+nSUviTGyznj5n2PnjN05z8FqAbLitrgrD4ct3sFqEzxKiLMBnOMhGsiwg1vUwL+GyBKcPYBYQcj1dLPgkyMyw4soTrJFNFR9QFAeEggif6/EWWoTSPyzsybYAZAAxllAto2HLYYRcT7Bcx+cDYgwnaAGuYCLWcLIsIMVwoixA9gWphhNtAcwSEI2vaMaWEAjWByS0OrAqBQDXPaUZstITfAAAAABJRU5ErkJgggAA`,jalapeno_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAwUlEQVRIS2NkoDFgpLH5DKMWEAzh0SAiP4hswh3+w3QfWXkAZ1DC1OFSg1UjSJO27Ue4664e5mf4/ekOnH9y+xOwPmR1IDXYLMGwAJvhMI3mnjJwX7HyqTAgOwJkITZLSLIAOTjQHUKWBcguwhYcMAthPiHKB7CwBdGwoMEXbNjUIyctojIaIQvwpVWSLcCVWnBZQpQFyMEASq6wZEowlzEwkFZcw5LpqAWgoIXnWGLCGU0NSrwSHclkWATWMvQtAAA9on8Z/HlQTAAAAABJRU5ErkJgggAA`,jalapeno_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/klEQVRIS+VUMQoCQQzcK2z1A5Z2PsBGwdYX+EZfcK2gjQ+ws/QD2lqczMHAXMwtWeREMc3BksxMMrlUaeCoBsZP30Ww2Eyb0XjmNn3c7V2x2Q6W23VDtMf9kgA+X93S+TBpvxp480h6CQCuIBY0SuISWHAoBSDCkvLtrQ5YTA9IwncIKvKAHVA15q/hGR0m8GYPcACgA0uk3TBPc1488AiojgSn+trW5XJJkiVQ47iyXFdVaT3JdkBl2q4q9daVgEX/AYv6PLHrGjbZ3oGPEmA88AAm6xnpUw+xoWuqBqOIWxQ59SECAtk1/W+CzkmIjEJyOmMv8qCQqE3/fYInGwy8GfZ6sOcAAAAASUVORK5CYIIA`,jalapeno_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABH0lEQVRIS2NkoDFgpLH5DIPLAnNPmf+sfCoonj6y8gBeR+KVtAl3+A8z7fenOwwgw7VtPzJcPcwPpkEAxMZnCU4LQIbDDIEZhI1PlgXohsMsANHoloDEKPYBzJWwOEAOHlgQ4rIEbxChawZZABJDjmhCcYHVAmzhD4pkGDi5/QkjrmBE9wmGBdgMh2mC+QDmC+T4wJWiiLYAOcmCDOPmvM/w9bsi2FP4ggmvBbDIhfkKPf2DLNm54CE4uHClJpxxANOAHGToFrx/eJXh6onX5OdkkCXIrkfPzSALwGGPxxKiCjuQJaCIRk6mIL62hSg4aCi2AJY8YRaAkikxhoP0EeUDbBYQW48MXwvg9QCxQYGkDiVUSAoiMiwjLZIHpQUAD3LJGUbvuUIAAAAASUVORK5CYIIA`,jalapeno_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAhElEQVRIiWNgGAVDDtzebPH/9maL/zQz/P+zS///P7v0/9zUDKIsYSLFcBXjWSQ7imgLyAWMpCi+vdni/+dHBgwMDAwMRtkzSNI7CoYwoFvGw2UJ2fkAPePBki/VLKAawBe+tzdb/D83NYPocgmrAaQUbGQZTmrpiQ4GtrAbLdwYGBgYAFTPX5fT1wXtAAAAAElFTkSuQmCC`,pea_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbVJREFUSIntlMtKw0AUhr/YokRqkSAGurAUgiLSraZvkT5BnsGlO3d5jj5B8wKum7qTrlqE0o0QkFm0xWys40InTm3Sm7gQ/GFIzgx855x/LvAXZNdMAFmtlwD4/KbxVlIQNfzAkYA8udhHj40fFC79wJmb6HcFUSjwA4fWzSPVesnYOkG1XmLUm0oAP3Dod0W6FoWC08uyMbgf85MOMA8KJJOZVLHrWZxdWQBpBzvbgMtHRQCZTGbS9SyuW+e4nkUUfnXhBw6j3lQWNwErW8bPr7jeR6WNpk3ldJ9G004TqL2wa+b6HSi4Hzi4nkWjadNo2nTaMU+DFzrtGPiwRtkUDxPW6kCH97sirVp10GnHRKHAPCgYyWQm9Q1f2cF3uK6nwctcnExmWJVdIwoFVmXXAJafoqzKATrteO4/CgXlo6Ixfn5dYOQmWGaL7vnZlUXr5jGXlWnRurYoeLVeyi00b2GlLTp81Jvm8RcT2DWTeJhIdRSX2bIKDhkWxcNk4RHLs2UVPDMBkFqjLhFsZouuzIumX/9tbNFVyJi7hTcOj/dSeBQKHu7ExvA8ye/j8/X81+/oHfIfC2frtx3xAAAAAElFTkSuQmCC`,pea_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAelJREFUSIntlDFoE2EUx3+f3hESUbQXKFypQyg1iFNU6C0B41K7ZJIuSiI4NIJKFx0Es7YIWTK0QwsRBDchGDsUCprBG1pKx6pBkEiG4nWpJLWJfi7ekbP5rqkIXfqfvseD//+9/3vvg2McNURQMluM+uIz5yJUtuoS4NGlWyKTyhPWRgIFTgSR61qIatuR2kkdgMpWXeasBGkjTiaVl/10oAUlV1oNmTbilJ1NH1nZ2SRanhKj5pV/E8gWo0ROh2AbzNEIORIAzNnrAKSNOItfVmSysRFoMShm8ODFec8OlxSgO74WGhQ/f3UAKN3/phToOYNu8vEBUyR1Y18hobBGte3IsQs3aHVqSoGeFj21smLy6hOp70yLjQ+2L5ezPLtk17CVVvUUOMUgxcpDMf95SU4MDIul7bo3ZNcit8Ozr+6Ki8Njh+vgzdoC1bbjbZBbdS88//pOXnc+Ha4D8A5JmquTvqoBJowhMWevy5yVoPGx6a7xgRvlQ6tTo2TfIVYQ8l5piKlFk1hByGf2ZRkrCOnGrU5Nzi/fVvIoLzmsjfB27TVJ3RDNnR/sNvd8+d3mHrPWY1FZXRCZVF4pEHjJ3fv9978EcNOa+fOa2Zdzoezgf6FvgfcvvwfGKgRNvq/fsk+uYxwhfgNZt7hllq/TVQAAAABJRU5ErkJggg==`,pea_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQFJREFUSIntlD0KwkAQhV/EI/jTpYt2CjYBFYSQRhSsxSOJeIxcQlIG0gS0U7t0MbnD2iQhGXaXWbX0gxTDvjA782YH+GOC77kAIKpvs14ptZOp3dIulo5UZ5FYJFGAXn8IALAdT6aptcfTAaPxAACw256l2o7szyLPlDenPO4v7bk0wa+T1FAPylgK9aCMzeGaqUJlYBOWmSqUHlB0fdaNd5ebQJfkEsZ0vAW4VTLNFEkUiCQKRPoMKy0ARgW3a4rmbcpYicl4s2GPt8ku+pS6j7SXFabvQupBkWf1RFBu15S+C+3EfLyLuPunVYHvudZsvhfN+BLGXycx4mdL7k/FG2sdid9DA0ygAAAAAElFTkSuQmCC`,pumpkin_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAu0lEQVRIie1UuxGDMAyVOUomYA52yRzpU9IzR3bJHExArzQg54S+puIur0On97GFBXB3lAYOZvhZA5wfE3283h9Xo2sVj6JPM4CSAwRuIHMCjtD1SidAoaaJub3cAPEpMBZRyOolk+IRWlCWqi3OYN3yohrnMKD06wYwDj6Z18ah1nYt/DUwk3FDLmjhym8awt/guoE2TG34HOJDi5I1Q/ehZcUtDl9i6rrYU9VGu0/cRcSVqecwwb6b4wsIwjy5qWuN/wAAAABJRU5ErkJggg==`,pumpkin_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAgklEQVRIS2NkoDFgpLH5DKMWEAzh0SAaDSLsIVC1zu7/lYtPGTY13iWYSHAq8KtX/q+jLw22oS3oEFwdzHCQOMUWwNwPsghkCchSmBgxhoPUEvQisqGkGk6UBTBDYRYR63KYPoI+GLUAPYjgqYRgGYBfAdxcouOAXAtHLSAYcjQPIgAOZi8ZT91aaQAAAABJRU5ErkJgggAA`,pumpkin_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLkQUwg1+9+4PiEzEhFgaYJWRZgMtgZFtglpBsAchwdBeDDP786jvcfF4xTgayLMBmOMxgkKEU+QCX4egGgywhKg5g4QyLLGQL8LkaZAHBVIRsGMg1IAALd5DhyK6GyaMbDAsujEiGGY5uEHqOghmM7FpsuQ7FAnTDkcPSIlcenJmINRivD2CSyK6DWXBi8kOSkjbRioeMBSiFFsGiErcC6hR2xDiA6DggxjCCyZRcQ/DpG/o+AACfiHQZOpMMxAAAAABJRU5ErkJgggAA`,pumpkin_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA20lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYUk1H4AMwuZKqllAcx/ASkdQWYPsE2r5AKXYpaC2o7y4JtZykjINsYaSlZPJMRxvTibXQHR9AG+ifxnYavyUAAAAAElFTkSuQmCC`,pumpkin_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA90lEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLtgXIhr569wfFJ2JCLAwwS8iyAGQ4uqHoYQWzhGQL0A3//Oo73GxeMU44mywLkA2HGYxsKLIvyLLAIlceHJkgw7EZDDIUBkiOA5jr0Q2HGYqccpB9QnQcwFwP0kzIUIosODH5IdGOAlmEUzEsSGCRBfMBVSyAGQ4yDDloQC6i2AJkw5HDkmo+ABmEzZWyfEwo5c3jT/+IigsMRdh8ADL8YrYeSmmgP/USAzGWYHUFckFmcEscbHCBwjeqWIASDAQLe9wKKC+uibWcqIgi1jBs6mhuAQBXJIAZAYF9rQAAAABJRU5ErkJgggAA`,pumpkin_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/0lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYQmz6OnCxyh56vGnf3iDDEMSZBA2V4LEQYZfzNZDsUB/6iUGfJZgWIDLB7J8TP/RDYfZhM8SrN5DLsgMbonDXVyg8A1r/USMBSjFLRVrOUaS0jQ5Fo9aQDDUALfWiRlPIsF9AAAAAElFTkSuQmCC`,pumpkin_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIid1UwQ3EIAxzK/7dI2MwCaMxScfIHkzAPSoQnJKS0uvj6h8SOI7jALwWRJSJKN+957RHPqTjECkz8zJ7bx0p9CHB0okGsQAzL3vcZjntsMzBOqv/RZ1626aWmhm4Ql7jBoiRKwKuFhf34BvWvZCEuHqINot8SGoRSUjt4Iy0COhsNMJkUVtkJOZxDBfv15vZWXQlLe0bQLfNPAON/PZ3bSI/QdfBbFL2uD2TrPd/1QDwAfx6iTTKaBYOAAAAAElFTkSuQmCC`,spinach_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7klEQVRIie1VXQqDMAz+OkfBu3gtnz1Ln3et3kUYSPegwTRNjNsYbLAPSjUmX/6aCvzxqyjbchEOCCzdgtSvT9PscmnCgjECQ1dLiYzI87LupLd+b/gumlcM3U5ASD0wRp08L+S4yVx63NO3iHgQGkQmV13LIeFyGYSA3QOLzMomL8Dt3nD6TdYiPIr6VIm4oVUmz9EGeYrqJksyWRaZpXJU9WPKjTw5OXpqDngz+bsWNe3GHEgHAdNcT6eVCc/gQMe7iwK0vmjNNUpkDZrumJeqvuhMG7vJ3LAl46S03kbBGAtSf/pf8JqTD5J/Jx5qr2HmmdxT5AAAAABJRU5ErkJggg==`,spinach_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdklEQVRIie2S0QnAIAxEzwpO41pO5VpOI4j9UmyrMelfSx4ICnrPgwCKonwfI7odXO37mFlvDzKsrRFvn7JXgllYOwuYC4KrPWz1Y29ZLegG90AASOXaZCOZC2I2SIUvFQsoibdgybcCStJgiFazzBpBYabyV07e8yJJjGp+5wAAAABJRU5ErkJggg==`,spinach_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAW0AE3Rtv+dDBT/D7Q7BhA0RdtSzftM2AQPXH1CkiE0jw9q+pi2gC4upUp40yUTDcqIczJQ/D8oHTawgKySFVc4Ui18sblohJf/QxoAANEqIe1OcIVOAAAAAElFTkSuQmCC`,strawberry_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAR1JREFUSInlVbENwjAQPCNIhSjp0oUGJohYgClIxRCZgDnYgg0yAGXS0aVOQ5AwTWzZzv8TU8JJkWznfee/s2TgH6GdT6oBAKhY8uKc2cmlbAyHIVSmxvybRQqoYSMAYBDTxTmz49GGCPLRZqIbu2Y6mCKgAaBP89GP5F55IoGYAoBPFuk+zS153XZYHGaTyb2BJMAhuVd2zIQvdiCS120HfdrDdOiG74LrwCOv2w7b4wrP64sspuyKuqab9ZIlJ0g9UAK6T3MvUAnGqkvZkFaxDNypQ2FTx+UVZiAGy8HNyLlZKhT4itzFQO4dWjQ5tEOaU+Thgg1XupJTT84KxCD0m8I8ijGCmCsgbarbDrvHTdo3WQDgn8LY1+9H8AYaOaFdHXkaZAAAAABJRU5ErkJggg==`,strawberry_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZpJREFUSIntVDFPwkAYfWdQoAYMgdiIcSHK0ASHslgGBiTGGBLZXJmMHXCE0ZmasGDSVf8BA4MhTiyd7OhiogMBAhEMDmrCcA7mCpUWMDI48KZe79173/u+ywELLPDvQWYhZUoBeH0cKp06Ta1vkbfXd1xnX/5mkCkFTOvaoEtlSYSq6WAmo7AzXJpUcW3QpZzHCRe3YuzJkohKp04BGByvj7NN4LATr3TqrGLKhFVNBwAcrG0QAD85lt2wTMAOMjy0c8b3kX+TVPstWu23DM7o/tQEnMcJ9ABV0zFqki0ngTSgarohrGr6RHHLBLe9pklAlkQIvAKBV0w8VdNxyu8SgVfwGGzbXpaxBFeOFEmUBYr0UGi0/8yc9V6WRBxrN7YzGDNINAQA3y0ReAUXnjg5Ke+ZDBlkSUS2nMRhMEIiuLZMYDlkAOTe/UyUjyTZbvCGIUN82U/OV6OE/dtp8jYyFglchYJp/ZnPo+LVSc59R2UMh372tA/M+BJMRTjmQqhI6KUWpaEioeGYa+azkyqgv6xjPmkWmDu+ABYSnXTgyhitAAAAAElFTkSuQmCC`,strawberry_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAmJJREFUSIntlL9P1GAYxz/vtbw5rw1X7gwOhKRAIrtMjCYmJCbEyb+BBRddWJxcWHTBxb/BRUNiojExrsawuAgJeAlBPQ/uCrRHeend63Bt0/uJTjrwTG369vs83x/vA1f1r0v8yaHXj+4A6Gl3jmOvLtyFRVRL6byZF2bOZGpp9e8bHLx9nj5/3/1K48c+Z81AjzsTwl1YRBpSx9+Ef1QFoOiUuPXgRRdO7pLhNaCvu7OcNQMAceI1kIZMhhNCtznxGrrolPQgAHMUetSORBiFWhqSe0/f9zEDOK3XmHbnaAa+KFj26AYfntwHOlSnllbZ3lwHEKqlBjFDtZQoOiWs8qSwypPY5RujG5x4DT3tzkHszfzyGgBbGytsbaz0MePsPEYxsYtlHbWjPk+7GmSpZqXY+fSRolPSzcAX1Z0vWO4Mh5U9YQJjCN1S58JXPra0NT3B6TVZFCwby50hakepFAD7lV0Klq0TZoeVPX5W9jTAxXmINKRQLTWaQRKx7c11wijUtrQT6Rh3JsSxV6folNLzU7M3RRuwrlnM3H3Yi92ZOPuS6DzmOKlh0pCp4XE8kYbEVz55M4+ZMzUghl22LomagQ+gLzwPacgUMCnVUjq5YABhFGqA8PS4LwgDGxzVqunPcTR11I5Sw/NmvotxonujegCg4wGHN4h1TkF85ScSML+8hpkzIZbVlnbK8rRe6wpBtobuoqzmymsQHP0COkH49uYZGanE53evGHcmALj9+GUXztBVkb1kzcCnYNm6l12yTZM1MqguW3YAFCxb71d20/fYHxFG4chVfVX/R/0G94oNtjdxwCgAAAAASUVORK5CYII=`,sugarcane_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAaZJREFUSIntVT1PwlAUPSVNXNgMTdwaZCWmG+pqIouGONGNyYE/0N8APwEWtzoZI0ubsArdCHFwqcQNxfADSAh1sO/xPm4BcfUsXN4995x377sEAwpcr5ioZ35rYuzCo/hSoesVE6dU1QpGcSAVZfEovlZkFZaYfZmczL6zIpEXDvua+OXphcQ3xSRZFP8UOagCXiCJU12Ew0A65wZ+a2LA65Oth8OAm6jiVmGZcmhDcq5iJ2LLTqnKP1WemNPegBJn30dxIJmwmOKxNxIXIqePow+/NTFGccBvJt6SLQAlDmKlJQORuHg9AuYz8BiAnV/Bzq+kM8xn65hAjrmqu86RmjBhKU5zDO1uU/vx8Q6YeLvbTCjivf9Cxqq4Wqvd+O7xNmFzjnpjfl53y1xYjAGgcnUCpAvSqHUkTX0kokk6gmgwRd0tax1VztLZH1qkOKgtAoBGrWOIt9+GqDcmxTMNKGx7gyyYm5LvbwseU28g5vcysI8PAAAfn2uTTXkKO49oX2R28PD0bADnmf9afzZYmwA317RRNJhKPAqZCRWqySbRf/wK36wQGKXFDcrEAAAAAElFTkSuQmCC`,sugarcane_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALJJREFUSIljYBgFo4DuICvV9z9NDX/6bOZ/mliSler7//adOf9v35lDkiVMpFjy4MFDBgYGBoZv35gZXrx8R5QeoizISvX9X93owzB90j64JcQCoix48fIdw7dvzAyTZ8SRbAlJQYRsCU0sYGBgYGit30KSepIs6O/cyBAYbsBQXBFAfQtghnNx8ZHiJuItIMdwkiwgFxBtATmuJ8kCcgEjsQqD/KxRyp51m44SrXcU4AUAXQNE1DhUevgAAAAASUVORK5CYII=`,sugarcane_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAVtJREFUSIntVCFvg0AYfSzVcyCWrElNp3BzJPUYBArSZEk9Fl1VhRyi/wDUxNKEX4CrQw1DQpOJzU2TMNOPHNe7K5TJPXXhfXnve/d9hwYFgtBuASCOMk3GyXiClAhCu50vFwCAuqx6Iiwn4q8asAKG3uDre9aJEGfoDY75aVoCOj9bj50JKy5LOCoBCZAJL84n5LXuZOJ1WaEuKxh6g/ly0V0HL37MT10Nm1powIrHUabFUaaxApSEFacaAEIT4frxUYPQbj8/fnp1D0/3ws3ir0o6ZBauY7Web/a+pUmBt/f8ohG+uYsZTMGgIfNwHavFuWMCeyZeBqWB61jt6/4FAOD5JtKkQJoUoOsiXmUyGyJO4OfA86MT/AWUBrvtoTvLZsDWjDZYb1adgGgGu+0B683qdgMyIXi+2ZvDNfFBBlMh3aLzK1Xu+BBM+lVwzdxuAMGLVYn+YxR+Ad5z26tYeOTaAAAAAElFTkSuQmCC`,sugarcane_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAK5JREFUSIljYBgFo2AUDD6Qler7n6aGP3028z8pljCTYnhguAEDN7cgg7ObKsOPT4wNp8/daiSkj4lYw6sbfRimT9rH8ODBQ4Zv35gZXrx8R5TDiLLgxct3DN++MTNMnhEHt4RYQJQFMPDtGzODhLgQw/RJ+2hjQX/nRobAcAOG4ooA6lsAM5yLi48UNxFvATmGk2QBOYaTZAG5gJFYhUF+1ii5d92mo0TrHQV4AQCQmDoaSzRzBAAAAABJRU5ErkJggg==`,compost_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIljYBgFo2AUjAKCgJFYhSbafP8NlP8xXLjLxMDAwMBw5uonovQSpchEm+8/Pnl8lrFQariB8j8GBgaIGmwWMWHTlOLH899Em+8/suEQg0h3DIYFJtp8/2HhjAyQxXwc5LGKYwN4ZZENQgZbDjzEKl6cZIThC7wWIBtUnGSETymDj4M8Q++8cwwMDKhBhREphCKVWACLcPwBiOQ6YsSQAcyhTNgE0cGTx/cxxHDFAzrA6gP0JImcUgjFBbp+eBxgcz1y0cDAQHzxQFcAAE2zRkug2a02AAAAAElFTkSuQmCC`,corn_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbRJREFUSInVlDFrwkAYhh+lKB2CToVupW5C6VgQOrl07OoiCrp37WKhS/5CQUERxNVR/0CgowhxUtwEJyWDxKHpkNxpktNYLYV+S+AueZ/3e7/cwX+v2C9oOIf04ueKr6cVlsMc62klCDsb4CyHOWzLhLmBbZlKyKkAZzGrA7BJleE6txdycZLzPrBqwtwg4UE0LYttmW5HO/VTgLOeVrAtk6SWxQaSWhZWTWwPlFg1fR/Iqd89u22Nenv/LGcxq4cEAJgbbkxA+t7w6caFeKmYoavXJEjlPLFquo6Fc7YzSGrZkLgEiBqMOyqIs+wjY7HiD248XtYJbxaXt42QeAiggDjraUU6tC0T7etTwkQn6SeU4hAxZOEcAs+5IYeavqnuFVd24CvPuXAqn976VYS4BIx6xFrtSWhzN2vbMtmkyrKDfZkH62BEu4PNv1QBA8/QUeKRAJF1/q1BV69t13UovL47B87McYDHDwCDrl5jMO749rp6jQLREN9JLhUzcqPVniiFg9VqTw6dfnUHrfaEUjGjFA/+DFEdHH3ZCeFjct8t38viighGdYqwEhAEnSP8Z/UN/uTZrzroGIUAAAAASUVORK5CYII=`,corn_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFJJREFUSIljYBgFo2AUjALaAZdGhv8ujQz/CaljItfwPZfZiFJLsgWkGE4eCGH7zxDCRlTwkG0B7QxngAQRKerJiuRBZQEjDnFKwhiXmaNggAAALTwUmwa1nZEAAAAASUVORK5CYII=`,corn_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIhJREFUSIntlMENgCAMRb/GdBu36AjsY9jHEboF23DBExyMUijhxjvDf9A2BRaL6bBHYo9kvb9r4QAggWCVVAU5fFTShqMER93lUn9QuOPW/aguwYekZQD6BK9wCaT2xiTI4QDAZ6yePSwCCVSC5UK1NyYBn1ENNjNvTI1MF/zVcWQlzOnNwswDkWwuFghkVfgAAAAASUVORK5CYII=`,corn_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3UlEQVRIS9WVsQ3CMBREnQFoGQBqiqxCBkIMxCwU1JkiA4Au0kUfy/Y/W7EQaVLY/u/f3XcyhM7P0Ll++C1gup3fVPi4z8lmuCe3XlSAw8/XsjLGyyHYIiycW2djkkWn63FVQohaHGckADZaCLtOKYuHRgYQAhUAxJblptEFxCF6oVYpsF5b/3MTk1IhTxH9xns3ADsqjav3JXAziCFquFX3wEKsRUrgsgILQQaqbU0AwOwnohR8E4AXTZmoJoBSuClkHIL3u98DO+t/A9j+ZN5NTax/5Vodci2wO+ADXJmJGbhBn08AAAAASUVORK5CYIIA`,corn_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAvRIJBSpJMUBckTCXAwSw5ViKEpFsPAG0VSzAOYibMmVUNjD5AnGAbolxEYuyRZgy7XERDjRPkD2CSgOiA02sixAz8X4Ip4sC2AZjZgURZYFxBhMViTDIprq+QA5zVM1J2PLTNSyAF6TEZtjkdShxCvJkUyqhTS3AADroZQZ0g/6xwAAAABJRU5ErkJgggAA`,corn_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABBklEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAlhYJ4poMoAimFCkkhQHyBEJcjG7KB/Dz9efwJFNyOUweaJTESy8QTTVLIC5AltypYoPkA2BWUJs5BIVROiuRI5gUK6e/+Y6WAm+ICM6spCDCxbZVM1oyBag52J8viDLB7CMRih4SCoq0H1AbFIlywfEGk62D4aEBfCajNgci6QOJdhJjgNSLaS5BQCfTpUZV5cHzQAAAABJRU5ErkJgggAA`,corn_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA2UlEQVRYhWNgGAWjYBQMRuCtxfDfW4vhPz3sYsFmuYetHpR36f/WawyM+AxAdygh9QQdAAPn774nqBnZsTD13gyPCToaGTCRazkl6pEBVpfCgpUYn1AaBXQB+BI1zjRATcvxJWqsaYAWAFc6oYsDKEmkVAH0LNhIBjizDL2yF85yAJFyIXH48tljmjgCbzYkN/GQUpBhdQBE4yWyooDUygxnCFAjuMWlZAlWTlQvCWGhJy4lS22jSQPE5n2SghnZQGrlCKINQW98UCtbklwXULtcH/AoGAUDDgAvcmw2gDIKjQAAAABJRU5ErkJggg==`,potato_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArUlEQVRIie2UsRWAIAxET58jULuJm1m6mZtQuwMWyhNjOAgWNl6FIP8IpwF+fa2ucV+oZVkNAgCsy/HgN2B0x3iadZ7FIERwVGqQM+mtcL9dkyk8p5oKHidnklWUKqiCp1VJMYOwLvfNcszAJQP15KPTM2BZaBmY7jzVm6+oWdRA3jG789yPZq5ACz0HB4CBwWR4WpgMzhaKQZ9gCi8tqo2tFmx5Sbbm1hb/6yPtXRM6Z/YOWwgAAAAASUVORK5CYII=`,potato_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIntlDEKwzAMRb+Tdg3oAJm9detBfFIfJFs2zT2AIWtI3KGkQ6gixR0KxW8y2H5PYDBQqfwMHyj7QFk7dymVd7fltQZljslJZ8WNvRAAOCbnA2Wm+b137xtMYwsp0linZZqxlwPA8FgP76sBTeLTVZzeHNhEZ+WmAMfkPoksclNgi5TIzYFvqAEV6aHUP6bAWflXnpbpO+4f7cK2AAAAAElFTkSuQmCC`,potato_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP1JREFUSIntlD0OwjAMhV8L3VAlH4DZWzcOkitwwR6EjS0zB4jEGpUwFAc3JJS/CfVNUWP7s1+SAot+ITYU2FD4JLd+pXjbDbDkkUI0uNTEOlcQAGzvKjYULHnglAdb8thtazDGnLYbwKBge1dJXJUmtd2Aw+kCdk2ElKaz5MGuiWsA2G1rnI8rCCRapIvHZJngNpF8t+THbqV47ypZS75ocgZ6k12DthsmMB17Pq7uIDPaIpAsQAeUutF7uqkUos9gMkEuIJX4XrIlzX24ptHrZKIctGTLW9Les6GA/ebhvj+7abMP7Zldr8TMAr7VAphV6XA++jXP1Fz0r7oCqWWiCeEH+pYAAAAASUVORK5CYII=`,potato_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQ0lEQVRIS+WULQ7CQBSEtwLBj6nClIQEj+Ai3AKJ5R5IBHfgIgg8CQEMCsOPQJS8pdPMvnbbpoAg1PRnu/O9mX27gfnyFXxZ3/wJYDSOYolyvTpax/q9KObSiESsO2yb3eFmmmfLMfcwMP1ey5w211QbcA3LALg6eRYxXAyQb/LOMIFodw5AV8sTdGUiDICMsSNxLO5kfgpgca6Yf4YjOMEYYIgP7jIAHQeyxwQIcOUshgYA0AHoQa4mD6Cr1RFi0Z2ImFy0wOKA1wfOsQ7cUWlfcytyv+dBAUDVXIweSwGoIm+yD8ixcAPkOuBKfTvTJ8JO9IZz1sC3G3UU2uVbR0WVGD4FsAfRaBxJB0Gz9Cwr/SFRihfTgX08Xx4m7DTsfbbcy6dCjSoAKw5hHcdkvi2E+ACvc7ne5WhWcVAPk8z6fcATQYkRKFHnkOsAAAAASUVORK5CYIIA`,potato_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdElEQVRIiWNgGAUjD+R5MfwnR9+UVIb/2PQyoSsi12G3nmIXZ8IujAmI8dmkbQyMxDsJiwXkBh/RgJIgHAWDDFAzMrHmg1tPqWcJzoyGK2cOGMCVCalaVBAs7HABYuJj0jYGRjVpTHGifUAMyJlNQWE3cgEAMasir1+5WT8AAAAASUVORK5CYII=`,sweet_potato_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWMEQZ8P5HD+ZlFz7DQ4asIEI2tDlIE2z+1TuXGbRVdMHs2nXXGWCWkGQBzGCYobgSCMkWEGswzEKSLAAZjsvFoGCBAVjwkBRE2AzHZShycBHlA1yGI7uUojhAtwA5lRDK/QR9QIzhyBbiSqIgh2AkU2IMx+cDZNdjWAAzHFdwEAomdMNRLAAZ3lmQxvDr0WFCQYxVHpvhFFmA7huSLEDXjC9oQAaDAHIBh+xFlEjGl2uxhQsuV+O0ACSBraREz6UwPi5X47UAWZJQWU9MaiCpuCbGQHQ1Q98CAPnipBlXIGtSAAAAAElFTkSuQmCC`,sweet_potato_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABE0lEQVRIS+1VIQ7CQBC8fgNXQ4KrxRE0CoWo4g1oBJo3oCpQKDTBYetIMHV8o2SaTLPd7vXO1DScau72ZmZn97aJG3klI+O7P0HQ4QlblO3SmvmX16qXqTxHnBWDfdMiXN6fV+5dfhuOV/HpAOB8mc9b/xfZzF0OT5PEVCbBiSJJNAFifCQdAuviEAFIsZCNzpL3gt4ycLtJ3TF/NPGnYl3f7lUDTOW+OnhrQI+hjOAABokkoIAoixCsbfIRgIidRDEWSa8GVvdI5czAssvquJZAt6YO1iS0hvvMRr+HDoH03SoawLAv1fPbN5R6Fg29SqplJ4XAvS/ZUkP1PIsBjyVoZ9LAbPZO5QmP6+CvKjJgdIt+t2zOGYhEhSEAAAAASUVORK5CYIIA`,sweet_potato_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS+WVoQ7CQBBEj9/AYUhwtTiCRqEQVXwDGoHmG1AIFApNcFgcCQbHb5RMk2m22927MxWEc727zuvOTu8Goecx6Fk//CGgWI0q2Po4vbOqdzdRiD2CIOam5ThMimE4bG5ZEBMAofV+Fp6PT5OB+/EVIM5BiA6JrqwDsMQhogGxOQlpAWiBFV0AMGQVFlTb1wBS4vwq7rOA2j6806nA+vrlYhS25bXeuzvOq/Pl3VTigTDfAUBAVsJNFAZEA7CmGw4bTYC2yQMAxBizJ9J7rNHSVg9kNCGurWEFMbvMmHq5lwBpE/sEu2Q11t9dV6B951FAAS3oPVsBaVlknTESkgJGAd694AE0zHs/60S0IL8FYIKkDYxq6srNsai+YBLD1ckBpMSj670Dvl62CygLcuKEAAAAAElFTkSuQmCC`,sweet_potato_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABSUlEQVRIS+WVoW4CURBFZ38Dh2lSh8WR6qqqChTfgK5A8w1VK6qqqpu6WhwJBsdv0NxN7ubu7Oy8Lckq1gDz3jt35s7so7KJn2pivt2hwOJ1fqWth49z0YHBDQoCEDDEluuHhv+4mNn79qeJZ30MFwHa7Fd2PFzas7/1yQhnkCIq4AV7AhEcgEjAx6KqOgJqgS8bMDxaRVYVK2kFSnCCCY0EvXUQ6VUQNUyzpg2IaQ98f5BATwBwrUSzzazxzcbeUMDblAmw0mhswQl7oKOpDaTfbLJf0/6EY5rNPWAvz3N7W39Xu/rp+vl17rx0ak/00jVN9r4jBihhAFNAhbLMaWFnTHkl4JNQ/Y4YfkOEiemZaALTe8SLKNwnMXQfFW/DqBLCdO1mgcwuWvXv2zQ6QP+5NgaOvUWLzKz9g0kyHeSMEcgcKK5NLvAHBzcHKPX7AFMAAAAASUVORK5CYIIA`,sweet_potato_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQElEQVRIS92ULQ7CQBCFt9fA1ZDganEEjUIhqjgDGoHmDKgKFApNcNg6Ekwd1yiZJm8znZ3ubCA1rIHuz3z73sxs5kYe2cjx3Z8Cik3ewrr63PykMjhMwbfHhXvW747xqF6OQzic1q0L9ABacK6E1ufl1NfFrJi40+4ehXiAPEw358HkNyg0z4dUFCjAZm4TrOJAbU5TpOZABkIw+rVUSUigYCg4zeMw/efWDJ0hu3o5IFsoaXJoicUch/JzqL4OIKtH+mslHBBuYQCIeasBcFtNHe8PrwAbtXKUfmOPZo9szB6AFrXylJ3NrZAQFRDLgwyOQrCsgYVfdXKKNQEAKnip8bysV7m7XBvfaNYToQJk/ePlpIY5VMtWAqyXlOKZbz0F3pe3bh8gKc90kgJsosBcHYBByysTpoKUILE9owM+Bp4PKJgW4PEAAAAASUVORK5CYIIA`,sweet_potato_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABUElEQVRIS2NkoDFgpLH5DMPIguRM+f+w4Jo7/SGGz2Dy2OTwBTPYIJDmyAR9uLrlCy4yIBsEkq8tTgbLN/fORZEjFIeMyJrvvD2DYQmyPEwS3RJ8vkexAGYAzCKQT2Au//tEhoFZ5gncATBLCPkeHkQwg5C9DDIEBG5v/8Iwf0E3Q2JCKYOqJw9YDBSE6L5DdhgsiOGRCfMmsotBBh568JbRTkH4P8gCEEAWA/FB4jCfYQtirPkAZiDMMJBByGIgvpevF0NosCPY0raVjRhxjeEDdBXoloD4IEO3bd4GNhxEwwDIl7hSE04JXBaADAIZjs9QZMvwFhXYgoUUw0EWEbQAFBwwV8OChljXE7QAFrkwS0gNHqIsgFkCSzlUDaK//5/+Z2aUBgcjciqiahCBLMGVBGGW45InOohgPsFFU2QBcjDhYlNkAT7NxMgN/ToZAJfI8RlnygRTAAAAAElFTkSuQmCC`,olive_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABdklEQVRIS2NkoDFgpLH5DKMWEAxhioMor0rvP8yWSW2XMMyjyAKQ4bpGInBfXD73hgHdErItgBn+9s1HuAVaGVcY/Bh+opiJ0wJkr4NMQHYZSE5KjhUj/Im2YCMDx//rM7TBBgiL8INpkPdhFuGy4Nmj38QFEbIFMGciW4TN9dgMB+nFGkS4XAizDGQYyBIQjQ0gByfeOMDmUpCBYIMZ/zJIyXKhmC8swgvmP77/laGp9CTYbAwL0CMXYsI/Bik5djDr2aM/DAwM8KQPFf8HNwoUlOIhR+CpCcWCvCrd/xCDYML/IZH8n4Xh8vnnYHGIrxgZYK4FRT5ED8hSkL5/DMipCcUCSOTqYgSrsLAQkgVsDFoZl8BqXq6xYbh87jXUgr8MDAzMcF9OajuPGUS4LIAEzU+oDxAWXJuhA44PkA+ePfwDjhf0PEMgiBCegVjwH+pahDZQnMBciy1FERnJiJyML4cTZQHWhE2BINmFHbF2jlpAMKQAvHOcGReApVIAAAAASUVORK5CYIIA`,olive_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS2NkoDFgRDZf20LqP4h/9cQzFHFK3AA3CGS4e4Aq2KydG27DLaHUUqwWwCwB0dgsJcVHGEGEbCCMje4rfBag+xgjrEEKqqN1GVqXXkZxPXrcYAs6bMGM1QIZJQ6wI5/c+wGmkfmgBAAyCJsYNh9jBBFMI8jgeEtVhoXHb8NDBGYhsqUwh4B8feYrxEHIiQQlktFdi42PHEcwx4AcAjIcZDB6UIItQA87mCJYOINct+fwc4aTj97A4wWkxoSbAyWusCUGDAtwJVFclsBcjSs5Y80HIJfBwhNmobmcCIOLrSTYJyAalMqQgwNXhsRaVMAMg4UrKOUkhen9BxkMAiDD0VMRrryBtcxBToagCAS5GgRgPgDFBXJqA6UuXOUX3nyAnARhLgRZNm/VJax5AZsvCGY0WPAg+wBkASz1oSdLdEtwBhG6RlgcwHyAK8yJsgCb5lELCAbpkA8icGMADRDVMCBKEcHww6MAAJp4MShPAj9kAAAAAElFTkSuQmCC`,olive_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6UlEQVRIS2NkoDFgpLH5DKMWEAzhgQ2i+BCL/wvXnMDrCJAaZG+gq8epGaSxLESfoWvNRQZslsAMBqmRMTFheHLmDNgedPVYLQBpntSRjFMTujzIYJglRFuA7DJkTTCfIRsKY+dVzMXwLYYPcLkOphlZHl/QwOIFqwXIrsfmdfSIBRmGKzHgtAA9geOKbEIZgWAQ4Yo8QgbjDCKQBHpEYos8qlhAafiDHIE3o8FcCYtAXEkUX/wQXRbBDIf5CjmJgti4gpFoC9DjBl/uRY4fkiyAWYIewfgKRJItIDb14E2mpBqCT/3Q9wEAeMK+GRpnxQAAAAAASUVORK5CYIIA`,onion_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAOxJREFUSInVVCsWgzAQnPCIqeUc2MqaCu5QhazkAlW9QGUlqndA1FRie45aTHhQ0/RBPpvl8ehnVFiWmZ0su8C3sVrL3nV2PbsQhRKaWgkO0Sy4XHBFgw7mYpLAsPqmVoLzDStJk+53WwDA+XIFV2DxKwpWEUfoAeB02IzixfEGAGg7moN8GUfoVZWTBcisJEW8VzQif9zthFdMVfnbJVvAIk9SixhJyhKZ1mQt5nLkgSXgrd50ArBc/NYk/4dA20HIrJxM5JsH2sHwj9HnUOMNeCeQnAUjRk3z4quCvexMId2nWcvOJaQRIv4YnrKKcGJDnEswAAAAAElFTkSuQmCC`,onion_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAExJREFUSIljYBgFo2AUjIJRgAm4zFj/c5mx/qeZ4a1LY/63Lo0h2hIWUgyvzg9nePv6DUmOYiJFMamGk2wBOYARixg1IhCbuaNguAIAavoTMVykVcgAAAAASUVORK5CYII=`,onion_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAl0lEQVRIS2NkoDFgpLH5DKMWEAxhkoJIwpT3/4vTn+F60PnYbCNoAbIhQ9MCkLdx+YIqQUQXC5AtgbmaGNeD9BGMZFjKQDd4aFqAnM6R8wO+3EZSEJXkhYPN6pm0EkwTYwlJFiREuoANFhEVBltCMwtAlixYvmfUAtS0AUr3sDigNIj+EyzkCSuAJx6iUxFhM7GrGPoWAABQhIsZroeW7AAAAABJRU5ErkJgggAA`,onion_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA70lEQVRIS2NkoDFgpLH5DIPDAglT3v8vTn8GOwYXG1dI4PQBMYbC1CCrRbdocFiAHDTYXE2WD3CFN1UtwOdyYiObYDJFdzGID7IYW6rClpIosgDdMoosIBTRJOcDZA3YggkURPhSD0w/wSBCdzlMI1UtgFlSkhcONr9n0kowDYtofAUmUT6AWZAQ6QI2S0RUGGwJzSwAWbJg+R6qWgBO+zgA3lAgFERggz+v9mNgElJk+PfuPgbNG7oJb4LBZ8H/r3vzMQyFmYZuGbfzRJAUhnnYLMAXHPgSDLIc3FxCQUSsgeRFEMWmYwszahiKbAYAYw7wGetnhO0AAAAASUVORK5CYIIA`,onion_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAQklEQVRIiWNgGAVIQEFB4f9AuwECiHXJ4HExtQBFPhpawTG0XEspGPy+RXfh4HcxTcEI9z4UUCUUhk5QDh2X0hIAAFsvEdRqfNUJAAAAAElFTkSuQmCC`,soybean_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVRIie2VPQ6DMAyFX3+Wbp27IuVuHXsajsCdkHqHbkyVO4RExDiOQ9NOPAkJiPO+h2MJYNcfRfOV6NDKvOv9zfOe+h4bAbJqAYjpfwGg20Mv+AZAXQ9cHDCN7QFJWzTIFoDac67aMSU3AO+XvMhHFKj7gpj8dLVvsgLitIT0HCKlF19I5iH5NPoD5cqZWwCrA+UQzRzQW1SclpJ5bpEAwA3+QZqY2bhoLhUkqcNBLiGW1EudtUXBuMo8V7z6aWwx3mXWB53sOFv+9drCAAAAAElFTkSuQmCC`,soybean_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAApUlEQVRIie2TwQ2AIAxFq/HCCg7Afk7ifgzgChzxYBp+qq0VboZ3Eoz/t/2VaDDoZWr5aN2o4PnYdZ3ZI4aC/BzidQ7xbug2WDcqLIQiIRLlVE0s1NZkpTnVdyickz2ixXLnSp+q5ntLnMiRQYj3UWDVMiOJ6S7njgZ4Z3XjXlMMHOGxaVl8+g/YRAZuBf2agQYLdm2R18SiuQMvWgXq2nVoDv7KCeIgQHNazaXdAAAAAElFTkSuQmCC`,soybean_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAr0lEQVRIiWNgGAWkgt97Ov+fm5rxn1rmMaIbDmNfvnmfwSh7BiOmFtwOu3zzPgMDAwOKPiYqOBLuMF11RQw5FAtYXcoZL9+8zwBzCTUA0UGADyDHGSnBOjQASd7BlVLwAaJTEb6UQhULKAbE5OBzUzNIzuXwcIQFAak5mBCgeRDBLYDl4kEP0OOSqtkaW2lMUj4glIKwBTFRPiClnoA5AqaGhRgLSAFkJ3FyMhldAADK8WmxC7dL5gAAAABJRU5ErkJggg==`,sunflower_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABTUlEQVRIS7WVPQrCQBCFJzFdOlsVb2AnKIinEDyj4ClEULDzBqK2duliIhN4YXZ2N9kYTZM1bt43b342Ef35in6hX+Zp+T5nNFikFCWZodkbAPHhOqbXobAgTkBTRNKxFMdzDbEAbRFJQH6kkiPnazaN6XorqjVDkhVV2gYgJKJeDkIi0k3R5riXA8A6dVFTRC6h8ZxKBm22I9rvnvS4mGkP7iIXeLLMamEJYChABgB/8F2+0FR8QNgFO9BuaoAU1Zvaii/f1amyHGAD7gy7n1LiowA9j17H0QAAXMg6WDXQmwGSEDmtXxXZZ1l2EedeprJTF2kXLMS2XWBAXOmxjgoMjq/gPjHddXLaW9sUm13FRzGDAL6oZTfxGqnQgxVUA51jnVdfOwY50Pl3Fc0n1AnAwl2FMAvoNm+RpQus5VQ2CenvBH73/uj7hPH8Azk1pyhepQfHAAAAAElFTkSuQmCC`,sunflower_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGlJREFUSInt0MEJwCAMBdBv19A13ERwRsFNXEPnsCchxKQg7aWQdwyJ3wQwxhjzVyFihoh5OiPVL6kxZY+UvTqkzUj9W0BvcLUMADgK0WwBVC0DvcHx334WwD2dYm3NOalIH6AbaHXzyg1mdiJmJYRz+AAAAABJRU5ErkJggg==`,sunflower_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHFJREFUSIljYBgFo2AUjIKRDGRMGf5TwxwmXIaHhEuTZAkutVgtIBXgcxCGBciKiPEFzHBcAMUCdMVrVj5leHKagRGXAxgYGBienGZgXLPyKXEWwBTjchE5cYMRRIRchAvg0sOITRDZhchBhEt8FFAEAPyuLmpSKFsiAAAAAElFTkSuQmCC`,sunflower_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKlJREFUSIntkdENwyAMRI+qW5A1sgkSMyKxCWvAHMmXI5ecSVH/Kt4XAdt3FwOLxeJP2XYc245jtofdv1hhiB4herPJ6mH1N4Fa4HJqADAlYnET0OTUUAvctyLM0FAAGMeX996QKcCGhOg/kkiNnEP0Q4OXAHPaD9fLl8E5NYxELgFZri7Wkfvly5u+Z7z1Ry1wGe0xNvvXjwn6JLNYPdSF3oN2at0vfuIEQtBnyE8BEcQAAAAASUVORK5CYII=`,sunflower_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIntUkEKwyAQHKW/0EM/4U8C+UYLeUY/EvAZOQT8hv6iYE+mG7ubWNqjA0Gi4+6Ms0BHR8cO1iH/u6amxYfRwDrk5/L+WkQ1861Dvj1MpuuRK44vOgCAGKD8nDCMZtsrrrgGHL/maulSKe7nhBigJBeUzwn6aEBRireGzwk6bADsw5fOa0H0XEtkThWdljIA9P05sGPKFbcOeVoNptXgescWbB2y2ICbCGpZCr8OucaF/sQA5ZFObZ9NFuugdvItpDusCpoDVSrtd/yEF231okoU8YDYAAAAAElFTkSuQmCC`,sunflower_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPNJREFUSIntVDEOgzAMPBC/SIZ+IluXjt2R+EYr8Yx+BIm9YxcGJL4Bv0BKhyrEuE5CRUdOQkBy9p1jK8CBA3uRSYtzB+u+i7PM2covJPLruf6PiaT4OSVr4538HdrA3h7KagM7d/7ZEreZT0XcO1aVxOec1RGNA7K2mVBWalkrKxU8OonPuXkoyCVvmwnjEG4y5UuGvgQoXHIXkDpryVBUAPiUTF3RkXT73BDdT44pd3W5eq4Tj2ER4E55cm1g616h7hVOdyyN5U0OCkgTQZ2Hms+bzLG6KsYBWYspWXZqssQKeCW/IhQjuqB9oE5D6wd24Q0PlLoJNXPrzwAAAABJRU5ErkJggg==`,sunflower_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA40lEQVRIS81UwQkCQQzMVSFiURbhQxAswPPtWYAg3MMiLErEKpR5LOztTTYxsOh+j5vJZCbTSePXNcaX3xActut3qew83kPDzH4C+HDqJ/jPx0su15tESCYECRyA5dMIcrVsAKpgv9u4CHK1mkq6V48HTC1TGTLOC441/C9B7lMtYWEFicCKr2mylv0UBOs2zEPrj0PowFLOVQLkerlaSFMCTGHt2GrjqoJmBJ4IsmvHQKXpZhexFbHGBTjrIzWmUFFrUFQ6a91yreqhYcraDbDGZZ6FLhlAYQ+s2H37PazAS/QBL7jGGVi1//gAAAAASUVORK5CYIIA`,watermelon_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAW5JREFUSIntVbFuglAUPS81rTTwQpcmNowMGAddXDv1D/oVTv0WJ7/CP3By7SKDKQOjCUkXyYOITnTQ+/qA56MmDh08CQkh3HPuudzzAG7417h7uQeA0nSd3jkLpnv44D/iEO9KAOCTnpFAzBKqYYd4ZxawX5+QL7clAHjTvpawO7Dl/X6dy/vNxxdxsHy5bQpYIwfFKiv9xVgWiig1dk/ggSuF47dPWCOHFaus4aD0pv0K6fO7VyFSO1ah1vDAJTcMADoAYA0dFGEGEaXggdtKSKCuuwO74fr0HaWD0l+MG8SXjEgV3K9z6aJDL33PN62F9QYI1IiuISmgjqaOtlHpagWSqoBOXVdYdwPo3RMqDuo7rhM1NaLWUwAZ8JtcPukZR/UXiCiFmCWwhg4rwuzogCLOA7ex0wTdaHTbxgMXAgmKsBY0SrJ6RFy6psDxyDiXZCkCALpc1KHZ+wp5Q0AKHZN9ldPUiGv8D25oxQ++q8nB7rJdfQAAAABJRU5ErkJggg==`,watermelon_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAWNJREFUSIntkj9Lw0AYxp+T1jYxViPFYtFJFMSl3CBE3Lp0cHR0yGhAt34FwcGthawufgOHog5SLBWEIl0LBf+QgjS1rdUMVc7pwiVpqTg45Qc33MvzPs+9xwuEhISETISMKuqFJLI0hX2qMq4j0m1AI3J21J4cIDaVhzYzNIp8RsJ9s0+2NusejTwbQ6ljMQDYXVwh/bfPkSFT4iVLUygPbRaLR93aqlnB3YsDvZCEXkgiocooD21W6ljM0CgMjeLi9ZklVDkwVWAC5uyw0wcHZrXm1gyNwqzWkFtIEwDgxgCQz0gAAN6jOMvkqfWNbtEaH8Ab/PBQHggAneYSlLU5VzNo9BBRoqR98jg2AFeNdxxc15lY5y8WOT5veczFkG7Rcn0DW+T/x7g8jctey/0W8fUAAhMA8ARE/AH+TVjfjgN7Xo10M0MiHwN8bSiMmwqMXH0/7C9HzqmYP0z/xj/kH/kBY5CYjlZ/xP0AAAAASUVORK5CYII=`,watermelon_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAN9JREFUSIntVNsRgzAMU3odTKN4lIySUTwKm7gfJTkIsSHQz+qHOzvIL9nAH18YSajqwZFmWESkfUk2cgCVPG3sAIDXTIBSiomIqeow25FtBLfcNVtTVavVVBuArc0nrwRBNiMy8x6/PUcQIAFAKeVgG2E4A5JYlsX75zFauSICEbk8vFvBgnlEYmiIZOoOrvpyztGb0wBY9R4u4+32nfTf0771m/wEfXvaDm2NU6eiw9Qd22XiqeNq20JynEhTVS3nHAXZwW2Rpw6SIGndqag4tG32VKTqf4LT5fnjp/gAHB6L7zj2AgcAAAAASUVORK5CYII=`,wheat_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABIElEQVRIib1VuxGEIBBd6MAxsZwLDC3DMggtgzIMDSzHxLEDuQSY3XVB/Nxtgp/Hvo8gAImyRrvUuyul32hSRMAUOzZmHeXeRYJ+2JUHumWqAQDAj84a7fphV1fVEwJPAtbQ1KzR0A97TnGZW6TeWaPJGFyc4SXcgWSZajIpXAvwg5BAikEaq+k+FYzzRrqM8wbdp4oNcQQBj0ceUfxw1mgXANKkcd4Af2gJL+HwKorqE81J9qVucURwMgnCcg0rLRNRdHE3ImeNhkxEsffdiIrcEoKSSV7IpYh4JTcax53smYgX/6ZcUQ6TcysRqKZdyQN/z+2qpl3FiDhechBJEs1FJym3Tw6cIrdPT7RTt/87MlkpvBt/QfBK8zcreYp9ARnARYgSAH7PAAAAAElFTkSuQmCC`,wheat_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAf0lEQVRIiWNgGAWjABfYsIb1PzHqmMg1XEVZlihLiLLgynklolxLFrhyXun/hjWs/9EtoWkQUQUguxib65F9gM83WH1w5bzS/zt3H+O1JCDkNyPMcHwRTlQQ6RjeYyRGHUkA3cXIfHTXkhxE1ASjFhAE2FIHpcUC9VPcKBjcAAAkzD98KD5/RAAAAABJRU5ErkJggg==`,wheat_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAWo4D+6ABM1Db8xA7slRLmEWEuIUjQjm+E/BZZQzSW0dcCNGQPnS9paOuDxR3WbkTMavoxCNYuxGj7g4UpzyweDD4choJqXsVU4/2dk47WEKpbjNHwgS9GBAQB1RDSsD2ft+gAAAABJRU5ErkJggg==`,tomato_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPlJREFUSInlVbENgzAQPCJLVJ6ABtGlSpMJWIANskeKVBTZIxt4ASagSUUXpWECqkhIThHkfJwHbBAoUk5y43/u/t7mDfwdolRqn/zNkuTeAlMQuCT1VV4XjdP3Q9AduVlRKs0eifWirwINAFEqoe7NRyCLJQCY/SyWqAuT88XHnYEuE56cElOUyWuBcWML6C6RJaKgTnaHoxGyRaiAIR+DLX69nHtFJl/TIRGKVf8D5xaNYX97cy/uYPVRMbtNtD0A40CFYp6CBW5U6NNWIHu03mR29QB/BkFetV5OVChYcnaDQAPAkBsVCuSVibFcLvN87BWb/Sb8Np74sVisxYmO1AAAAABJRU5ErkJggg==`,tomato_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGZJREFUSIljYBgFo2AUjHAQWqHxP7RC4z/VDLEpEv1vUyT6nxTDGYm1hIGBgeH5r7cMDAwMDJJswgwMDAwMqztuENTPRIwF2AwixnCSAXIQEQuI8gElYOhbgC2iKEvXRKbMUTCMAAAvbR7j6+Sr/gAAAABJRU5ErkJggg==`,tomato_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJFJREFUSIljYBgF5ILQCo3/oRUa/+lqiU2R6H+bIlEMSylyDLJmdAuIMZiRWEsYGBgYnv96y8DAwMAgySYMl1vdcQOvGURZALME2QJCBsMAE7EWEGsg2RaQaxlZFsAAMZFM0AJchsDEqBLJuFIRMUFFVBBhM4jcSMcLcOVkfICiSB4ZFmCLKEqLaOpH/igY3AAAKrlIKa6/Bn8AAAAASUVORK5CYII=`,tomato_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DIPLAs8Ctf8gH2+fcItoh6EojC0zARsAA4u7zqDI47MAl164ASAFyAbCNCCL4bIAXS/IgTAxsAXYFMDEQTTMEmwW4NILCwWCYYnsE3QLCBkOsoSgBcg+efPrE9hhImx8YBo9jrAleaIsgFmCbAExhhPtA5jLYEEE8gFFFmBLQSBL8KUiXEGGEUTIEYduEbZIRjYYW6QTjANcqQiXL9EjmqAFwzMVkV3YEaobKC5Nh40FKHUCIV9hkUdJmUQlUzIsgWsZ+hYAAF7KnRnkpkjpAAAAAElFTkSuQmCC`,tomato_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABC0lEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+HYNGPzATafgsyE6ScYychxgm4BNoehp0qCFsB8CKLf/PoE1i/Cxgem0eMIW5InaAFyUCFbgC2VkWUBsiZYEIF8gM0C5BQH04fVB7jyAq5kii/vYFiAHHEwjYr6WgygjINsASzfIKd7bJGOYgG6F9ENQbYAl6vRzSAYyYRSEaHCkigLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLh74FACQg3hnrDTBLAAAAAElFTkSuQmCC`,tomato_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABGElEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+EPrwf+l9dcz4gsh80HMHmYepgDYZYTjGTkOEG3AJvD0FMlQQtgPgTRb359AusXYeMD0+hxhC3JE7QAOZyRLcCWysiyAFkTLIhAPsBmAXKKg+nD6gNceQFXMsWXdzAsQI44mEZFfS0GUMZBtgCUamrmP4bHBa7UiGIBuhfRDUG2AJer0c0gGMmEUhGhwpIoC2CWoKcibJFKVj6AaSK2sEO2hGgfgDSNWgALOnClQgFACXaS4oAcS4e+BQAsoN4Zr8Q2BQAAAABJRU5ErkJgggAA`,tomato_growing6_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABIElEQVRIS2NkoDFgpLH5DMPQgtgyk/+gYFvcdQbDd54FamC57RNu4fV53dK4/03Ri8Bq4ApBgvcvXoMbDLIIZAmyYnwWwByG7ji4BTADkSMdXQzdApjl6OqQ+WALsBn+IsDjv8SGHYzIcth8AJOHqYc5EGY5wVSEHCfoFmBzGHqyJ2gBzIcg+s2vT2D9Imx8YBo9jrDlKYIWIIczsgXYUhlZFiBrggURyAfYLEBOcTB9WH2AKy/gSqb48g6GBcgRB9OoqK/FAMo4yBY8vB74v2b+Y3hc4EqNKBagexGU9ErV3sANQbYAl6vRzSAYyYRSEaHSmCgLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLaW4BAFsM3RnfTMpLAAAAAElFTkSuQmCC`,tomato_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAWUgorEwP+UyNPfkorEwP/4NFDFxQNiOCmOGBQOoVpwMFHDEKoCXGFMlI/JDRaaGk4RoKmPKLGELuUTVQDZlpCT3anmI1wGDZ1wH3kAAGHuPqjrva2eAAAAAElFTkSuQmCC`,fertilizer_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArElEQVRIiWNgGOqAEYf4f2qZh82C/0EzfMgyfV3GFgwzWQgoJhrgchROCxgYGBim5JoSZXjO5NM45fBagAyyd6AaMtWDOMuJtoAUQ5EBEymKs3ecxvAJITC4fEAOINoCclzPwEAgiPAlP4otIDc3E20BAwPxuRmfYwimov9nHfDKMxofwCtPdDI9f/YrCt/QmJsofURbQKyBJFtAKAgosoAaKYnmOZnmVebQBwBEGSTr3HTDzQAAAABJRU5ErkJggg==`,rainbow_fertilizer_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA9UlEQVRIidWVOwrCQBCGv4gIor0n0CaVSHqxyhG8gJV6ABsbG7uAj8LK1iNYib0Ee8+hWK5FDMlCspn4wvywZHYnmW9m2CFQdFkp5+pT8ZIASnl2YA0aAExqTQDmLILzaQWA6uwCwJYWAP0gXFrSGkARVCFeO1RoayqbSKuxk5UMAKPlKdVnBMQ13EdB1q4MDFASv/kMvHYdDZYlcQUQVfFXFeQCvCIxIN6WPC1K0m/mQHl27klOkvEWWfXD0wqfG81/j9J5DQCg/K7Rb3WORr94Ds7+Tdu3OzXRd2KANGBuQFYL3gKoaw/IvkUmfX2Sv/7LLL4egFJcIh1wkL8AAAAASUVORK5CYII=`,mulch_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAWBJREFUSInNlaFvwkAUh78tk7UkU03aNHU0QUyMhIoqUgECi5ucmJiYwC2ZRPAH4LCITRBURZd0ArGk+IoqEmw9U9dQ6O5asib7qff6cr/v3t01DxrWlaR2+Auv3wAH7f6WScfD1DUWyxXdOxegkJu6RpJmvH0HZF+7Ur9r2Zb6Xjs363vtszxJM0xdk7Z1I60C45EPwDrYnuWmrmFbhnS9tIPedIZtGflOxfGI3LYMetPZ5QAB6XttbMvg4f2jcDwqc1SXXEcXXfKxHLeF47ZqQSsDHLdFHO6Jw31tiBIgzIVOISqg9JmempdByurHavySlT8aQBzt8tjp1gMrAXG0K5gKmPh2Wq8FKFt8bEyFjv7HjzbpeMyHg9JYJSVgPhwQbUKSNDuLq6hSB68vj7nxeOTnsWoWKAGfz08slivWwZbxyC8dOKpOpK9IGAMkaUaSbgsDJ9qEgCsFND70G9cPCX+r1Lc361oAAAAASUVORK5CYII=`,rainbow_mulch_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQFJREFUSIljYBjqgBGP3H9qmMWEy3AeSwmGD1NdGf5+SWOY86eaofT3Dwaz6m8MHAwXGGbJfWUo/f2DYc6faoa/X9IYeCwlcDoIlwVUAwNrgcySywQN4HfdhFceVyT/h4Yr0eDL8RdYzSM6iPTsRBn07ERJspRoC/TsRBkuHXrNcOnQa5ItIWgBzHAYQLeEkIUspBiOzRJs8siA5pGM1wcwcOnYCzhbz4o0iwlacOnYCxRDYZbBxNDlSbIAm2ZkgxmI8NHgyGgTDiczZB56wKDldI/hz/EdDH1P7zJkHnpAlMUELfi42w+vxRRZ8CRGl6AB+BxA0AJqAJpbQPM6meYAAHXOYpMBqH4dAAAAAElFTkSuQmCC`,wood_chips_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAdtJREFUSIntlSFPw0AYhh8IgYTM7BRqycYys0wgMJAgqhrsJib4A/sBm5yH6WUJGoEAS2qoIAGDmFgwC4xkqqo1CwkzRXR3XK9lKwgSEj61fum9z3fPtSv8158sIUQohAiz3Lv+k/B20+ZwdzsTaOM7wQCDToNKubjo3nGwf0Tv0gkBfN9fM9clGsumLhVyTKYzAPXbtmqMn1+ZTGf0Lh1M0EpFQohw0GkAUCkXsa0aABfXN5QKORx3BIBt1Wg3bQadBrq2LwHS7+15m8l0RqmQo3vax3FHlAo5ACbTGQ+Pd1TKRdVvnV2tViSECA93tzmpH6vJu6d9DvaPsK2aCpPgi+sbeRZY1S3cp3elKQGQSqTrh8foIM2pAU7qx1TKRcbPr7TOrrCqWwAxwIYZ3m7ascODKFzuItrVZ89xR2pyADbzgJdUJIQI5fZYPI76tFKPVCV3d//yFoVv5qOgeZCuSAJkmSDdOaAOU4XPg9jaVEX6FBImg/T3IKFEC1+pyASZO4pNrd+zuHaH3pIXTV80D6LrRU/CY0r08HmQCI8p8n1/zR0SWns7cYgOxktV4g49lYFRsTOQEIBUUAYlSwH6FKkgXaXxOGYGLAd5K5WYlenvGu17kDX41+oDGp4mCPU5SPMAAAAASUVORK5CYII=`,scarecrow_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4UlEQVRIieWUvQ3CMBCF3yHEIEhsEadKQUHLEkgpvECWyBi0FBRUeIV0bEJjChzkOP45WyBF4kmWT9a9+86OY2Bh0mawRTnFn9d3sNnzvVzAp/goLmTFBBQr1EHWOcfqhXZA1oC+HDHOduzL5QK+JjbA6ngSp8S+RW5ROpxZ/qz/oMTLPSJd9wqDBAYJ1L3yAYsBepDzRbOWhKQAnC6jOeuAgez5tFW47QQaKACwYgE3F8638e3Am9g8lDeOeUIAuxsAoHsrZklmjQKeCZmromuapa6C7qq8h3A5b9H/An6uF4WMRHW3ug60AAAAAElFTkSuQmCC`,sprinkler_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlklEQVRIie1VQQqAMAzLxO/5AP+y4/7iA3zgPDikbG1XrYKIAWFsWRLSgcCPNyOXz8UL0qWUEgAgxujiDb14RYBLeIhrkJI1AlVC7cxsIAnBKm4xaEwoeuKAYQZenKqIg6eipv913tfTYp+DVBE7XAq6pzzl/gyUdIEzbkjKWa44mVZE9zWt8aK5mff4M/0Nbof1J/QhbIFgQxZVKNMbAAAAAElFTkSuQmCC`,cow_feed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABaUlEQVRIie1VO46DMBAdom18idRQEMk3oKfbK1ClQZyFxhXHoPcNkOKCPpdw6S3Qc8aOnZBNmpV2GpBt3m8YIPqvT9U6Sfeb5w57gM/fpSMiUkPpXiV6SqCNpb4VRETU1CIgfptgnaRrakHjbImI/FUNm6M9JFmCdZJOGxuswQlKG/uUJEmwTtKNs/WR9O3NhTbbOt+Ho90EyH2cLcEF1F+uNzcg5b2Jq8g5SJFyIO6kbwVV3ZLEunOA7Hn+2livHHsgOx3zou4IkGVTCw+ArHlETS28AP6WpUi+uHK+Mc6WTsctayjOzQRcgIhXwcEBmmsaokKDc2d5PzxB3EQA8BjiOYjJ4RI4VbcUBw6ujfU2+1YEvQA4sscV5y9XCmbDO1BD6WA7pQjKeTzxmUf3QQ/imF5Z4875Od8M/hal1OaaytdTLoLpU0PpUtOaUl91S/HoQ5ebbO8kfnidpMMPJ/dxU0OZ3fu79QOnNyLrGvOANgAAAABJRU5ErkJggg==`,hugging_machine_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAgUlEQVRYhe2W0QrAIAhFbexT/Sz/tb2skKYPw+kGuwd6CemeJEgiAP5Oc/Z7VZ4l0Jk5JV1ELpmrwAw/ix9jOXfmblaxLlLdaJE970KmQCUQgAAEIAABCLz+HWuBzswkIpQ5kIyMkb17hVWYb8AYLqLL7eqnHqE1CXtT810yzwYxDkKWK8nSGBQGAAAAAElFTkSuQmCC`,milk_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlElEQVRIie2UwRGAMAgEL45F2IIV0IB2bQNUoCXYBf70YYBkIuND+cLckoMABEcqqJEWDQ8gzGwWEJGp0zmA5gi3qC/pQiTPSMnv71WLBNC7PwWuV2S1NIB4wgrophdukTrkeQsGAMAylmwxMK26ne6aCg9mPtFu5sNn8AM+AHDX1FvDJoD1gUoj/Ni557qGUVn/TByjTiCJ3SiEogAAAABJRU5ErkJggg==`,milk_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIicWUwREDIQhFv5ktwhZSAQ0kHVimJaQBKkhKsAty2s0hKrCGyT8q8x8CAgQrGWJkxUMDCDNPA4ho6nNRAMsKL9FmyUKkz0hJz++vJRJgnP1h8HlF12sEEM14APryCy/RsMn3VzAAAB5XyxQDt+e4nOqYCufpfaI2vQ/vgQtQqaEqGZ8GVGoonFE4uyAmwG6+ywMxAUqn0b2z04AVqWOqjeESYPaBrApfduq69jCc8b/RG+oJMonZquS9AAAAAElFTkSuQmCC`,milk_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwUlEQVRIicWUwRECMQhFfxwryCktWAENaNc2QAVaQk5pAS9GHU0CbDYjp50J8x98WIDFEQw5MqOhAYSZhwlENNQ5KIDpWG7R0VKFSJsRgl7fXy0SoF/9S+DdRVOrBxBNuAP60VtuUXfIl/tiAABcT5YtBs63vp3qmgqn4XugPHx3zaBQRlEENwMKZUROiJxcEBOgitcOPBDTqaiC8TmPz28tXB18A3cDtKq1dqBapK3hFGD0A1lj+bFTz7WH4czfJx6xwUOYVCI2qwAAAABJRU5ErkJggg==`,rainbow_milk_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3UlEQVRIie2UQQrCMBBFX0WE4gH0AtKFB8i+p/AC0ivUhW7cuBM8hVfJEfQEHqBQXI2LgCg2k5ZYCuKHbDKT/yeTn4GekbTIkRiOkIBYa9UEY4zKMwoIRKP3FrW6gVQ5pRSUUoDc3dqGdDsIxEATEECkyv0Z7haC0saxj1yOy3B5QMoFgJpMaHiPwVwk56B53rFyVB98vha9HgpCK0YVABA7V+OJuanxQW36F/gRgaBNQzaMEuj6m5vgHRXPYbeeAbCZLgA4cHL7uwkA6f4KQE3WyKfNgq7lt5sr38YDiBMyusgc/RoAAAAASUVORK5CYII=`,rainbow_milk_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABAElEQVRIicWUsY0CMRBFHwidhCiAbeBEQAHOqWEDGjhtC1zAJZeQIVEFwTbiEqCCLQAJXTQEq0WH8M7YGMSXnNiz/43HswMv1iAiRnI8LIB479UA55zqMzQA2Xp5iaJuIKcFK6lYSQXy1661xU0A5EgDCCByWvRHtLcQlDKO+sxlO7fTA8YcADgzEwLv8bYukr3ZPLdatlZ3fn0l+v+RKS0ZFQAgvlDPB65Rz9/apneqXUNtZPwwoHYNpS8ofZEEiQJ05p1SIFGAMvDQob2HATky29RqwyxA6t8cUu+ouA67rykA35NPADbs2v2fDwDGv0cAzsyCftosSE0/bq48WxfOzkS6fPRuuQAAAABJRU5ErkJggg==`,rainbow_milk_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABB0lEQVRIicWUOwrCQBCGP0UEsUtjLiAWHmB7T+EFxCtooY2NneApvMoeQU+QKpUgVmMRFR/JzK5R/CEQdjf/N4/NwI/VCDgjdTwsgHjv1QPOOdWnaQBq6+clCspAjiNmMmUmU5Bz8SwsbgSgjjSAACLHUfWJIgtBKWOrylw2Qzs8oMMegBMDoaQff7tFsjMvz7PGhdWbX1WJHj8ypQWjAgDEp+p+w2XqflQPcpeRG4YfA3KXkfiUxKdRkCDAzfyWQQzE7AFwN0yu/Xh8txSVwSvwa4CyaEMzMEtkXcNagNi/uUyVo+I+7CY9AObdPgBrtsX6sg1AZ3UA4MSg1E+bBbHhh82Vb+sCloZVyeeaHwgAAAAASUVORK5CYII=`,chocolate_milk_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAo0lEQVRIiWNgoDFgJELNf0rMIGTB/5MnT+JVYG5ujtccJgIWUAxoHkQsxLhiS7wGVnGfhTcI6h3QIPrPwIDb9TCA5AusZuGy4D8hg3FYhGEezYMIZyRP/XGdRKOwBwbeVLR9JTGpmIHBMxx3SiaYTP+flMArz2j+Aq88zeNg1IIRYAHBZEooGVJkAb4MRLEF2RyaJBm0HYc4weKaBEBcuUJtAAAZkx6s4XKlkgAAAABJRU5ErkJggg==`,weed_yellow_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJVJREFUSIljYBgFAw0YiVX44aHBfxhbQP4C0fqYSHHNyTM/SFFOugXmJhwkW4ABPjw0+A/D6HLSSboYYoQAVh9gCwpshuNzDF4LsAXF03mX4RErnaT7H2YhOfECB+iuRjaYgYE4H5BkCTlxQJIl6D6guiU0MxzZElL1EMxouAylqm+Q44BUw4kutJANRc4To2AU0B4AAKGOTyVh8wmJAAAAAElFTkSuQmCC`,weed_orange_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKRJREFUSIljYBgFAw0YiVX4YZ3BfxhbIOgC0fqYSHHNyf8/SFFOugXmjBwkW0ASkE7S/U9YFSpgocRwYuIFpwXomp/Ou8wIswTZspP/f+ANOrxxgC1SpZN0/z+dd5nx6bzLjAwMhOMFbxDBNMMMZWBgYIDRDAykJVe8ADloyIlooi2hmeHIlpCqh2BGw2UoVX2DnjxJMZzoVIBsKHJKGgWjgPYAAKhMQnagnSlUAAAAAElFTkSuQmCC`,weed_pink_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJNJREFUSIljYBgFAw0YiVV4w+DDfxhb44IA0fqYSHHNw1oLUpQzMDDQwQdYDYJhdDnpJF0MMUIAaxBhCwpshuNzDF4L5JtPYIg9nXcZa7CQEy9wgO5qZL50ku5/YnxAkiUwNjlxQZQl0km6/6luOLIlNDMc2RJS9RDMybgMpapv0COXFMOJzvLIhuLKE6NgFNAGAACdX07JsB31AgAAAABJRU5ErkJggg==`,inventory_box_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAUEACMeuf/UMAuXBf8v9/GTZLpu0Ues5mGzgGTD8VmCbgHZhuOyBNkCig3HZgnMAlIjlFjAyAJj/TsUQlWTmezWQGiqmorNolELRi0YtWAYWEDzwo5G5tIRAAC2nxYih/81pwAAAABJRU5ErkJggg==`,scarecrow_animated_default=``+new URL(`scarecrow-animated-Bwzq1lj5.gif`,import.meta.url).href,tumbleweed_default=``+new URL(`tumbleweed-bTBlbTRd.gif`,import.meta.url).href,axe_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMhJREFUSIljZCATKCsp/Iex7957wIhLHU4JQgY3NDYzXLt6lYGBgYFh1aoVOC1hIdVwmMEwwwkBon2AbDg2gMsXTMRaQAiEhUWgxAvJFty994Cxob6WGKUolpDkg7v3HjCuWrWCYdWqFQy3r1/HJs8wL0sdxRKSIpkBNUn+P3/5IoOhrj6DqqYmQ3tHB8O8LHWGV6/fkmokfgAN9//zstT/d4SK/GdgYPiPLS4oARiGU9MCFMOpZeio4aOGjxo+ajgtDYdbQk3DAf7opSv4aVYzAAAAAElFTkSuQmCC`,axe_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMBJREFUSIljZCATKCsp/Iex7957wIhLHQu5Bl+u02b49O4VAwMDA4P1FIb/uCwhyQJlJYX/MINhhhMCOL2Gz3BswHrKa6xBxUSsBYTA0RxRlHgh2YK79x4w6jZdJUYpiiUk+eDuvQeM1lNeM1hPec1w5M4nbPIM87LUMSwhCygrKfxXVlL4vyZL/f+LPtP/DAwM/+dlqf/vCBX5TxULkC1CNxxbXFACMAynpgW0CZZRw0cNHzV81HAaGg63hJqGAwAUOabJn4ZdhgAAAABJRU5ErkJggg==`,axe_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALlJREFUSIljZCATKCsp/Iex7957wIhLHU4JQgY3NDYzfPjwgYGBgYFhQn8vTktYSDUcZjDMcEKAaB8gG44N4PIFE7EWEAIFhcUo8UKyBXfvPWBsqK8lRimKJWRHsqGuPoO9iwuKXG5uLsO8LHWGpGk34WaTFMkMqEny//nLF+EWwQx/9fotqUbiB1Af/Z+Xpf6/I1TkPwMDw39scUEJwDCcmhagGE4tQ0cNHzV81PBRw2lpONwSahoOALJMnzT9kEEcAAAAAElFTkSuQmCC`,axe_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALlJREFUSIljZCATKCsp/Iex7957wIhLHU4JQgYvn7+Q4eWnTwwMDAwMBfm5OC1hIdVwmMEwwwkBon2AbDg2gMsXTMRaQAhMmDgZJV5ItuDuvQeMkYnxxChFsYQkH9y994CxID+XoSA/l+HWtWvY5BnmZaljWEIWUFZS+K+spPC/t7Pz/+bNm/8zMDD8n5el/r8jVOQ/VSxAtgjdcGxxQQnAMJyaFtAmWEYNHzV81PBRw2loONwSahoOADMdpw7laSIwAAAAAElFTkSuQmCC`,axe_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMJJREFUSIljZCATKCsp/Iex7957wIhLHQu5Bt9YF8LA8vEYAwMDA4NKIsN/XJaQZIGyksJ/uMFQwwkBnF7DazgWoJL4DGtQMRFrASFwZ74USryQbMHdew8YNYLWEKMUxRKSfHD33gNGlcRnDCqJzxhuXMIMqrv3HjDMy1LHsIQsoKyk8F9ZSeH/9ckM//8ftPrPwMDwf16W+v+OUJH/VLEA2SJ0w7HFBSUAw3BqWkCbYBk1fNTwUcNHDaeh4XBLqGk4AGtcorcNDPQ+AAAAAElFTkSuQmCC`,hoe_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAuklEQVRIic2UwQ3DIAxFPx2ALNSJOPRMJmjOnal7pReIHGMIGFfKl5CsyP/9YBDAjbWnxeuTHhNwl+s1RoQQ8vfpAArHGiMAYPFebB4NKP6cStqFdkSiFu+LkJkA9942MYRqNMChcluo0uj2bNCoeRZpZw5Q3qLv6wgB2Kgo/FQMwvH8FP4jkBpGAlrwqnoDVPDeRjW8p3kKfmWYhrdMJvCa0QwumU3hHGAOp5C/wAH2FlnDuS6f4VvqB7TESLgVFsd2AAAAAElFTkSuQmCC`,hoe_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVRIic2Uuw3DMAxETxnAdQYwkAncaaIUKTKIi8yRMdJlEW/hNJJBUx9LJAP4AAGEwXtnUYKAE2sNi9c7XRRwF+tlnvC+3+J3dQCFY5knAIAfh2xzb0Dy51S5XUhHlJUfhyREE+Cuz282hKo3wKFwW6jC6NZokKh6FmFnDhDeos9jCwHYqCh8V3TC4V+Jfwukhp6AGryo1gARvLVRDG9pVsGPDGp4zWQCLxnN4DmzKZwDzOEU8hc4wN4iazjX4TN8Sv0AN2RJwOjZLUAAAAAASUVORK5CYII=`,hoe_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAtUlEQVRIic2Uyw3EIAxEhy3DtaQl9k4bcUvpK3uByDGfgGGljIRkRZ43wSCAF+uMS9c3fSbgLtXMjBBC+j4dIOFgZgAAERWbRwOyP5cq7cI6oqKIKAuZCXDe+2KI1GiAQ+W2SMXRnclgUfMs4s4cYLxFx/cKAdSoJPxWDMKx7Zn/CpSGkYAWvKreABO8t9EM72megj8ZpuEt0xJ4zbgMXjIvhWvAcriE/AUOqLdoNVzr8Rl+pX42rEn4TvbkRQAAAABJRU5ErkJggg==`,hoe_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIic2U/QnEIAzFnzdIJukKrnLDFJwkK3Sv3j9aUr+qMQd9IISS93s1isCLdcaV1zd9FuAu1cyMEEL6vhwg4WBmAAARVZtnA4o/l6rtQjuiqoioCFkJcN77aojUbIBD47ZIxdGdyaBR9yzizhygvEXH9woBslFJ+K2YhGPbC/8VKA0zAT14U6MBKvhooxo+0rwEfzIsw3smE3jLaAavmU3hOcAcLiF/gQPZW2QNz/X4DL9SP/ScS3hB0In3AAAAAElFTkSuQmCC`,hoe_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvUlEQVRIic2UUQrDIBBE35Ycpl89QCnkRj1Me6JCyRV6HPvRROKqia4WMiCIum+cTRAOLDcPPQ90aoDLMnevK5+nXw8kesEC97Bxipi1CbJwIJnC2qKkzpe4VbUtWieARAoIW1WbQMj8LcEtfqbOuxi0+S1aEgC4992bAMgMjOAAgxGuJTJO3jDYsMBvj/LaUgMTvPSgGV5yuAm+V9AM3yrqAs8VdoOnirvCNaA7fA35CxzUW9QbrrX7DB9SX0XaUBQX3euqAAAAAElFTkSuQmCC`,scythe_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS+2V2w3DIAxFnb06S9QF6DBlgSqz9C/qTES2SoQcbjCPfFQq3+QcfGU7E118pov59BdwwoEIJ9EbUbjPM72WhUVZVo8geO+lRz7rCiWtgvB+EN2eRCVJi0DgfFjAJ0qcc4eoagUaHr+XuHJR1QgQXDoJVWEVnMHjMhCJjskisMBhFSWBFQ6rOBPUwvcq0piQoAW+V5FOdU7QAz9sfy0YCtdTNxyeFXzHv9Rd5h9hCuK9DteumaguDnspesDvCzbc3VkZpaP6uQAAAABJRU5ErkJgggAA`,scythe_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMBhriPw/e+MNzpCgKIhAhrd6ijNUb3/JgMsSsi0AGb41TRGcRi48/obTEnIt+H8kj4Ehf5cIAyFLyLEAbDgI2ExiAMUB3BLvWfcxgopUC1AMZ2CAJHNYcGELKlIswGo4sgUgNroviLUAp+GwkgDmC3IsIGg4Pl8Q8gFRhuPzBT4LSDIc2RfIwYTLApINR/YFcq7GZgHZhmMr+tEtoKrhIAuRLaC64VgtAGV/NIspqvRQfAA1iVDSJclCqhpGTCST5DpiFNPcBwAgan0Z4Vp7jQAAAABJRU5ErkJgggAA`,scythe_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2klEQVRIS2NkoDFgpLH5DKMWMORlRP2fNGMZzpCgKIhAhqsqyzHcvvuIAZclZFsAMtzY1AqcRj69e4LTEnIt+H8kj4Fh1a8oBkKWkGMB2HAQsJnEAIoDuCVnTx/DCCpSLUAxnIEBksxhwYUtqEixAKvhyBaA2Oi+INYCnIbDSgKYL8ixgKDh+HxByAdEGY7PF/gsIMlwZF8gBxMuC0g2HNkXyLkamwVkG46t6Ee3gKqGgyxEtoDqhmO1AJT90SymqNJD8QHUJEJJlyQLqWoYMZFMkuuIUUxzHwAAb2p9GTK1pfkAAAAASUVORK5CYIIA`,scythe_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAz0lEQVRIS+2VuxHDIBBEV305oAyqcKQyiDwugjIIHFKJm5DnZOM5YX6HIDORAs172uVACyavZTIffwG01pu1NtvEqYoIrpSCcw45SbeA4Ou67jPivc9KegXb4wrcnxo1SY9gh9O63EB78JUYY36qkgoOcOA95qGuVFUSQRLOBfQcp2gVZOHhJggpegRVeClFLUETvJSiJBDBeQpeU04ghvMU/FSnBN3w1NUfC4bCScgFw+FJAR3/SHzqp3dI8CHVRlckHApr2WTR17W8PD3BC4S6fRnQ192VAAAAAElFTkSuQmCC`,scythe_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMDQW2/2v7z2EMyQoCiKQ4YZa/Aznr31kwGUJ2RaADC9MVAGnkQMnX+O0hFwL/h/JY2DYy2rHQMgSciwAGw4CNpMYQHEAt6R//h2MoCLVAhTDGRggyRwWXNiCihQLsBqObAGIje4LYi3AaTisJID5ghwLCBqOzxeEfECU4fh8gc8CkgxH9gVyMOGygGTDkX2BnKuxWUC24diKfnQLqGo4yEJkC6huOFYLQNkfzWKKKj0UH0BNIpR0SbKQqoYRE8kkuY4YxTT3AQBP8HwZfM9pkQAAAABJRU5ErkJgggAA`,shovel_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALJJREFUSInV1cENgzAMBdDfqovQOToT5zBBOXeL7MEcMIp7akWM3Vi2OdRHK37fKAKAk+uS5JDmRgMIAKZSmuZznr/2LYJzeN023Ieh6V0zcak8ASrOt/cGmHHAf8k0lSLi+wsGAk/Q2zwSQMsI1FoPON/eE0DLeABVXGxY8Mermf28xaJlDdDwblkOunHL4RDeGwjjv4ZScG0wDZeGU3EOpON75BQcYJ+KbJwX/3H/R70B5PVOSsiwgM8AAAAASUVORK5CYII=`,shovel_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS7WVoQ7CMBCGbxa9BIXAVZLsIQjhPfBYPBrPexDCQ5Ag5xDYaWzJLbnmVjp69G7Vzfe1/+3vKph4VRb8xtWec+5tF7gqAYEvu+XgnNvzE0hSLEB4DH683rBazEAtGIPjNdSCHBwlqhvEAoyFTk6DUAkQQpIcHPeWDtk3robjZt5nzhc/fanA3/auZx6uHfAvKYaXCAJ8fWoxqiBIwf8VDOAUL5WNt5dHJp1BEi55ZiSCYrgkIhU8J1DDfwlM4GMCM3hKYAqPBeZwLpgE/iXA+isewGTveNHwxy0pnqTAYY85MLZ/AKAsiRkhT8wtAAAAAElFTkSuQmCC`,shovel_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7UlEQVRIS2NkoDFgpIb5eRlR/5HNmTRjGdxciiyAGWxsaoXizrOnjzHALCHbApDh6AZ/eveEgU9IhoFiC3AZDvIGxRYQMhxkCUU+QLcAFCwwl8MigiILQIbALCFkOEgtuZH8Py8jikFVWQ4c5sgA2fXkWvB/Z6EG2Myt340YkFMSuuHkWAA33L3/Biio4BZgM5xUC1AMhwUvLLMh517kICM2DrAaTkwxQ4wFZBtOTBBRZDghCyg2HJ8FVDEclwVUMxybBVQ1HN0CqhuObAFNDMewAJT9KSgAseY75IwGqriJyXjEZGC4GqobiG47AJ1ZiBlTJ5acAAAAAElFTkSuQmCC`,shovel_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS7WVwQ3DIAxFnW167IEBuHUF1qjEGEgdoVdW6A4M0A06BpUjGTmUFIIdzug9+M4nC5y8Fg2+cy5zToyxcEUCAnvvN+cMIQBJpgUIr8EpJTDGgFiwB8driAU9OEpEN6gFGAudnAYhEiCEJD047p0dcnbOgbV2zZwvfvpZQX7dLyvz+bkC/5Jq+IygwG+PN0ZVBC34UcEGTvFS2Xh7eWSjM2jCR56ZEcE0fCQiEbwnEMP/CVTgewI1eEugCq8F6nAuOAX+I8D6Cx7AZu940fDHPVK8kQKXPerA2v4F7oGIGVytZc4AAAAASUVORK5CYIIA`,shovel_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7ElEQVRIS7WVsQ3CMBBFLyxABRNQIDoquoiOORghygAoA6CMwBx0iAo2oGADhnB0kc66GAcfvotr6z37X75TwMSrsOA3dek453S+e65KQODquBqcs728gSTZAoSH4NvzA/vdAtSCMTheQy1IwVGiukEowFjo5DQIlQAhJEnBcW/ukF1Tl7DdzPvM+eKnzxW4a7XumY/ZEviXFMJzBB5+aF8YlRfE4P8KBnCKl8rG28sjk84gCpc8MxJBNlwSkQqeEqjhvwQm8DGBGTwmMIWHAnM4F0wC/xJg/RUPYLR3vGj445YUT1Jgv8ccGNo7Yi6HGb8waRoAAAAASUVORK5CYIIA`,picker_pole_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMNJREFUSInt07ENwjAQBdAfhNJdmwVc0KbKAl6EiiL70LigzRRZ4FfeJQMcDY4CmCDsuIjEl2I5zTvd2QZ2EH180RxycZIgid6YaJFjLg4A3lq0GdAnXEmqE1GSCgBO5K2LrBF5a9GOIwJ+mabKiehyXCkFlOQTHvahk/MwIBx8Ugcx/HWf0wF806ziXdcBQDUvCVEn8hVPjd76kwLQ3pjlLVp9cD/j4X8rOIZvmrL4ta53iu935v8DjeIlxzIXKYkXyx3NFIrQtrXu7gAAAABJRU5ErkJggg==`,picker_pole_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMVJREFUSInt07ENgzAQBdBPFNFdywJegCYs4EVSpWCYdGm8AFOwwK8YIz0DXJoYEeIQxcYFUr6EZZp3urMN7CD6/II5pOIkQRKtMcEix1QcAAZrUSdAn3AlqU5ESSoAOJG3LpJGNFiLuu/h8cs4Fk5E5+OKKaAkX3C/952cuw7+4KM6COHLfUoHGKpqFW+aBgCKaYmIOpGveGz0fj0pAG2Nmd+i1Qf3M+7/t4JD+KbJi9/Kcqf4fmf+P9AgnnMsU5GceLY8ANzvjrB3K5O7AAAAAElFTkSuQmCC`,picker_pole_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMJJREFUSInt07ENgzAQBdBPFNFdywJegIoFvEiqFKyD0ngBpmCBX7ELA1yaGJHEIYqNC0v5EpZp3unONlBA9PEFc0rFSYIkemOCRc6pOADM1qJNgD7hSlKdiJJUAHAib10kjWi2Fu00wePXZamciG7HFVNAST7hfu87uYwj/MFHdRDCX/cpHWBuml286zoAqNYlIupEvuKx0WEYFID2xmxv0e6D+xn3/0fBIfzQ5MVvdV0oXu7M/wcaxHOOZS2SE8+WO1CxjyD9waCMAAAAAElFTkSuQmCC`,picker_pole_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMNJREFUSInt07ENgzAQBdBPFNFdywJegIoFvEiqFOyTxgswADUL/IpdGODSxIgkDlFsXFjKl7BM8053toECoo8vmFMqThIk0RsTLHJOxQFgthZtAvQJV5LqRJSkAoATeesiaUSztWinCR6/LkvlRHQ7rpgCSvIJ93vfyWUY4A8+qoMQ/rpP6QBz0+ziXdcBQLUuEVEn8hWPjY7jqAC0N2Z7i3Yf3M+4/z8KDuGHJi9+q+tC8XJn/j/QIJ5zLGuRnHi23AFsB5Igc4ovIAAAAABJRU5ErkJggg==`,picker_pole_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMNJREFUSInt07ENwjAQBdAfhNJdmwW8QCoXtF6EiiL70HiBTJGC9lfZJQMcDY4CmCDsuIjEl2I5zTvd2QZ2EH180RxycZIgic6YaJFjLg4Ao3NoM6BPuJJUL6IkFQC8yFsXWSManUM7DAj4ZZoqL6LLcaUUUJJPeNiHTs59j3DwSR3E8Nd9TgcYm2YVt9YCQDUvCVEv8hVPjertpAC0M2Z5i1Yf3M94+N8KjuGbpix+reud4vud+f9Ao3jJscxFSuLFcgcutJEoVhTynQAAAABJRU5ErkJggg==`,watering_can_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA0klEQVRIie1UwRGEMAgkV8JVYAOWRjWUZgNWYAvxYzJkDwg697vbGWeMJLuyQIj+mKAEsZrc90igikhfMPNjkVdEfhHTta7G3inwr5C8WILOWROYQQGSASLSH0pmZFnUyQhqYcVnAqkiNxzLSu99G77NGiBsUy1yLGt/vyPiWoTQpFqMKLbLEzAtikQ8hHNgoYmgTVmBkBxFGpjZtSldAw+KXIt0IavyqSwaOcG0Y+zWHDjkH2d0zLMovDKivsfY7MJyU/f2YyxzI5qpfxtDZ/wWThNOcCnuawEeAAAAAElFTkSuQmCC`,applewood_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP9JREFUSIntkzEOgkAQRT+JV1ALiYnG2FsQ72BCZesNPIAdhR0H4CQk3oFQ0BMiicECOAQWZCfLLCAghQW/2iW778+fYYFJk36VNgbENPRC3rt+QtzZGND5cgEA2K5X4lMhTHol4FAJWNHz9UaeZnD9ROuUQIDboAIMlEnyNAPQ0iK52qNxaITJqjMnAz4oDuXALknIwDT04n67Vg5ZtkPD+wbk0MYWhVEMANjvNq3QtvZ4fkADBgBNVB9GMYHF2rIdahWvUJbnB7SW34CSQIaLNPKf0RWqGHBoXfQ+0IpBefBRXM4npUUc3BWqJABQScDhQ8BCdJG/A2BYxZP+Tx/oyoY1054VqwAAAABJRU5ErkJggg==`,coal_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAThJREFUSIntlK9zg0AQhb/WrEecw8cwCE4wmHj+zriaKDyGqSAiLh53vuJiiOjsFQYSYCJqeIqf39t9t3ew67/18ca//RrWVoMAPRwOOOcwxiAiXK/XWd4Wgz6KIowxWGtp2xYRoes6AOI4njVZa9CnaYr3PjxwzgWw9x7n3KzJ59rKFSIiIRqFiwjGmFEBaw36NE0xxuCcoyxLvPfhPkkSRIQ8y0ZdDbUUUchdAXp9LAq+LxfyLKNumvDudruNuK86CNVrLHEccywKRIS6acizjJ/7PcCttZs66IejeCwK6qYBCLF8nc/A30IDkw5eGkRRRFmWYSSTJKGqqvDBEGyt5XQ6TZiLHcB08XQddD88y3/JYGSiMPiNSMdWs5+rfo0BDI4H3Ww6shrds2NircGs2ZucXbs26AE1fqYGir1jrgAAAABJRU5ErkJggg==`,stone_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA8ElEQVRIidWVwRnDIAhGSb9ukyUYwxFcIqcs4Tgu4Tz2In6EIGjaS/+zvgeGKMC/Z1tcX1cZnuACTCndFsQYTdZIUEdAnpwzIKIp0gR1BgwAHc7TRJ371uC8slmw5JCEd3CpXMJGUlnAvu9wHEdnUwe3Y+HgmaoJLvPyNiEiIGIXrcBdAQ9JpMiCmwLtzGU3I/h5ngBt1Kc7kCKCl1LMtY8EPJ5EFXgj6Z27K1iN1QX9B1uMsYYQTBB93NnqueC2UZt7C0xdyDXyLjJhGkALvyrkbVrbDA/jSThcE3wlkfCR4JFEg1sCAP39tbL6vv8mH84SiYSmpt3xAAAAAElFTkSuQmCC`,salt_rock_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS+2VMQ6DMAxFzUm6s1XiCsz0OpyA65SZKyCxsfckqRzJlXE+sauKrVkq1OQ/5zmBhi4ezcX59Ae4hr9RlExaaG1oEhGltK6H/Kbr+Nld707g8Oc00dD3hY4IxAPkyudlOQD4mQdDPUgNcNAiEAvLniq6zgCFc121dfUzAFUdhaAd5KaK40g4z3mMIzxVECBHMhp+b1u6DUMIABt7dl25AA7f9j3/IojdAWyuvQPScA6VwRCkSQOKcFmsVUnVaFcIEgJwmK5alCCI1eQCkA4OPoPUALyuaLL2bCtGEA/wgdRca5CGRE6RrE2veXY/JlpV9B7oUPuB8YDwvea9rr1Q9/83lhuWGQG9q4IAAAAASUVORK5CYIIA`,bronze_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAYlJREFUSIntlDFPwkAYhh8bE2JhgM2pTCasEP0dMjKSsNCJRB0c3WAAYzccSBgZ+R+akjgRnCAOTopJIXFpHeAu17uCja68C+1x97xv7/vu4KCD/qujlPOivzJ+M4gAOt0e+VwWgGWwom6NABiGNW5vrvfy9hlEnW4vBhPPAN6iYixoPzwazF0GUafb4+ttJgdajh+bMLYbAFTXg1iA06unGNfal7zl+BRLZYqlsgEXYKG6NWIY1gyYbhC931/IRMOwJkEisfhV/xMSdVKlbpGEC6mJ9MXLYEU+l5Umak3UWhzrji8fJwD4+UsJrq4HeFOzqF8AzuariqXNWHU9oK3MiRmM7QbYMJ9OIJhJiEdFFlkvrnge2w2WwcrY9JjBfDoB4h2jF1TtGnXbxPnQu0hv06jf7xuFFQn15Hev5wAUMqEc089CUptKmP6uwr1FhUImpJAJaTk+n9+WcVaSvgC210PTdWPJ1MUiuXw/ewYwtmeXgTRquq4BSoJvwYm8VJddCqW9lQ8y9QNiZaVNTKTieAAAAABJRU5ErkJggg==`,bronze_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DKMWEAzh0SD6jxZGGCFCahChGFjnwsXgaakJtmP78esMTXu+gZgoZhKyAKeBuGLXsvksiiXYLIAbiuxCgskFSQGyJegW/CfXUGQHIAcXsgVgw0EAFq6kuBoWD5rS/AwKclIMMF+gWHC81hhs5oNHz8CKCAGQS0EGwgCyHrwW4LIEn4HojsFqAXr4k2IgMXEAUoMSyaQEFTQPINsDDn6syRTmE1wWIKUSDAPRgwpXRkPxCSkGEmsBOLgIlTOEUhmuICJGH9FqCJVFRBuES+HQtwAAGJ1YGe/MnNkAAAAASUVORK5CYIIA`,iron_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZZJREFUSIntlLFKA0EQhr+onHfYHCG6RXIKFj5AykCeSgufQCyUFNZWwSqQlwikkqusUgjxkmKjSBpJDISz2mF3cwlJJYJ/d8fONzP/zg7867dV2vF8vitz2wQ5QLfTBqDXTwFoNurOocFwwvXVpcM92Ab81H4kCgOB2+DZfAFApqeFgHUd5AAPrRvKFUWmp1ycnThwAzaJB8MJejxCVWtOF0Ud5N1Om8FwQrkSA3C0/02vn3J+eixwGwwI/OLsxIHtrYMnKpbWX9/eaTbqlCuK2XzB54cuhBfJTpA/tR8FHoUBnx9agk3VURhQrSVikR6PxDa/evHJrzwKA5kUVa3JP1u25z7cnibnDowtxu+v5eEKfDZfkOnpWrj/vWcHRmHAc/qyMt8+fJMGw4ncjZPABDYbdcajrLB6I7/6Xj8VsN/N2oeWqJhMT8U2uwgDNlLVmiT1k5gOStdXl1LF1/KwEK7HI2dqjCXmXKJiJwZWX7Iss9u7+0Jb7Or8NZGomOf0BYBWqwVQ2rTsttmcm7Trpv7XX9UPRxDlZCE0bRgAAAAASUVORK5CYII=`,iron_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwklEQVRIiWNgGAWjYNADRgr1/ydkHqkWoBiYmxHNYGxqxcDAwMBw9vQxhskzlmKYScgCnAbiAgnJ2SjmYrMAbigxBhKyBN2C/+QaigyQg4sJ3XBVZXmyDf707inD2dPHUBzIgqwAOcKI8cWnd08Zbt99iKLfWEgaRQ0LuiaYQmyWEGMgOkCxANlQY1MrsgyEmQMDeCOZ2KBCilRkwIjhAwYGBsbJM5b+z2VgwGswPgOJEmTA4hNiDSRFEcFyZhQMDQAAaMBZ6FnVQEEAAAAASUVORK5CYII=`,silver_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQhJREFUSIntlD1uhDAQhb9EuUOK5BBbeGsoOARHoF8XOUIKp+cCvgWFqTNFbkQajIgZbHaVkichIWZ4PzOW4cSJE0cwzc9DeCqR930PQNd1R/o3eD7aKCLwQJqco2kmTUVimiMc+QSpAIAxBhGhbVs+3RcUEhVHpImsv5VE9gSW5UbH6/cQAhdzBaCpq6zBbAJjzK7zSD6EMZviJUeeEoYQALiYa9F5hHYCJhHBObcp7I1lCCMAH/a24UwFpjnuQhJ/buoK5xzWWtXpEEZVQN2BRg5grcV7v9RiPULbhTqidYpUBMB7z+vb+5+epq7iociOKCuyxo98LzsBff45Abj/Br37IvwX/AKZJHqzxczScgAAAABJRU5ErkJggg==`,silver_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAs0lEQVRIie2Uyw3DIBBEJ1HOThFTgSN6oUY3E1ewRZgGnEuIWAPmk0si8SQuCN7sAgIYDH6ey5f795KvNUAJl2UBSQCAiMBaGzlLAVlhDmOM8qYCPtIaYSnkGLD3SkPC47oe5Y957hbfpwkiogoMA0ASm3MQkSahH5tzUfe31EaSUSVe+FxXta50nCoglJLsEnqP5/SSU13khO9LDUm+IhWSCzgTVk0i0UmtsGVR8Z8Z/AcvcvFbDaU3IKgAAAAASUVORK5CYII=`,gold_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAXZJREFUSIntlC1vwkAYx38s+wALroIvQBAVbfAkJJVIbB0OAQLRTE1MbAIz2+BQaBIS0hAMLwJBENgKXFNXycS45ijXg5GphX/SNL3r83+5J/fAAw/8CxxPz114uka8n7k0m827hQp55MnWIYwMprsqALXygumuSqvVulZ7BlWCY7J1LhZLxQO18oL9zOW0f1OirIuUPIwMSsWDsiiMDEbLCpv1iuFwqOLRJmAwb5y9sygVD2zWK0zLZj9zQZNE1+RcEXlttKxoRWSBY7J1GMwbaUNVhIN5gyAIMC0bgLYz4fUryTX4fC2BSkSg7Uzoj+uYFqIXeoEwMqiVF7kiQRAAYFo2bWdykzG5+8f3j8/Umfv2cvGzfCwy+uM6AL1uJ8upbnJ/XMf3YnwvxrRsTMvG92I265XSuS6NLFA4OUgLhDPx7XsxYWSke2Jfh2yCQq/bSYuzQvBzB4SInDgvRe4skvuhcioumoDq/HUC8PvJedPw+3N8A0QSnZsj1HFJAAAAAElFTkSuQmCC`,gold_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA00lEQVRIie2UKxLDIBRFL52YYLqRLiAKURNkVVeQZbGCKmRjKqKyADZSE+SrIgMpBYaadiZnBsW8c3n8gJ2dn4d9WU8536FCuA6tBKyRsEZCKxELzHYQFGgl0Hc8WdCe7oE3FrBKS4S5kG0A1Up9xnnBZZgAgDVb+XNpq8W3B+HIbbBAP2CdGOelqAsndFzPHEBY1yBC3/FoSIlwSxDgS/uOVwmdx5E85NKt8g7Vh711AIBdhil7k1LCUkgrQdZIskaSViJ4wYi82E+kUrP/zM5/8ALJtmHuganBugAAAABJRU5ErkJggg==`,rainbow_cow_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACNUlEQVRoge2YPW7CMBTH/w+hIgTXQB1yCy6R3oA5GwzpwsIWqVtvUE7QjVtk4B4smV6HxE7i70BIK9U/yRLE9vuwn99zAkQikUgkEolEIr8FTaCDR9BplfGoA6rgUIRe33zyjKGhDvSE7XmnDTjhoxG98Au7bQEAh9VGnx8mg2ZeLY0u3L/aZoGN8U5yv0qfA1bDgwywCS0S0PoimwYt6nYklxMEAHOXnrstBACuWmO6j4sElJVgbsUTURuOtND6kHPtjOHM2nbAafyg1edKriIXSa+LHEfQ1dfF5MB4xk+A6sAkxnORyBXuhQ8AcNXr8x3k7hkYx3g19Ymz4JB30DqbOe8vXnXCAYalaKhx6+JEn/rDgHrwCNYsNMRwwGL8BGiHmItksPGhUFaOLjO0Ev9ZXIVsMvrh1/ktMpCliAG6A0RZyc8KIaAOIyFfXCP4fDaPTf3FbA6A+bYFrS8iEz2XnEEZAVkpDac0BQDvfxMzAKDV98N2ma7WPXLuFSXbqptoxhrrVB1CtPC9OASx5119n1dzv6eaqs4McW6GNmy08KGsvC/1cdVvHkwh4gqbLt4sxOdzLSwrx7vI5QxKSa601KHoFTR9QVnIiFCgvnzseWOZYeHY2rDEFZS+SvmmsOk4NSi5MBcJc5GItzHZOs/k2IFNzlviyktcQ8dbCdkBaoy39Y0BAeCvxuY32AuXyv+5SjzjIqbydseGmmaYvoKN8XXtKTpCd2CKT5BT6IhEIpGR+QG4Bej6ikQYYQAAAABJRU5ErkJggg==`,cow_variation_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB8ElEQVRoge1YS3bDMAiEvN7RN0BnUm7gU9JFioMIWNhR0uZVs2j1oTADSLYLMDExMTExMTHxv8Hm90fhAgBARB9JHgDg6w0xbHJwpA9UBiMcZ6Hj9uz2bPBoBRpnRBQaXq/Xrh/5+1prs1lKER/dBGUFNAFHIOOLiHqJ6AoYTlz8WWJShVJKs7cjArcf4J8BHkHcBhdCzPfuQMRtrscyVyIezukliDuEvBAWX6MrCdAK2B5orwjkAREB8ZZUObh2vQcRsLXSO8gTUUNQx9RjaZ896EPcu3OHwhLTV+mRJEZn4DDsXX4Guo2yGCbgTPAR2BUgWa21Pp3h3kPpbAIeBAhZTbiUAqUUV5AVNqKVjiD1KlFrbTLkjcVGz+1+VIFoXQ5z9BCLFlk/CS2kEroitvxWsH1NMMSA19WNhcvS4+qCLYiIiaiZezbWXtbsGG7XNfO6Mq9rdu4i3UIevGrs2TdZCrIe2eKyuN8sp65Re4B1y+hz4LVRRFALsvM97ArIvpP0KtGrjun1cM3l6KxthxgRpXyykXKaCvzje5sbws7e8VtIB/EyckaQVJSZ7+P+LRS2QVeA2ZC17Ed5FDOMkeDXIHMLNQGPBkjCE5XyPexl7reQ/rdK9gvpGZyJ4Qr4q2Q9ZCvwekXviTExMTExGN/dZHBpuZub8gAAAABJRU5ErkJggg==`,cow_variation_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB+klEQVRoge2YUZLDIAiGYad3zA3MmeQGOSX7sINFI0Ia2+6D30w7jbHwo0BsARaLxWKxWCwWi2+BH/DBE3yaNu4G0BqOIn6976MzB68GUBlLKZkTicg3xmP96MsLB8AAY8EtXgDaVs65urfve9SOG8Bl4RHHKaXqfrsTeuXbuXpaeTPgV4Rrcs6nNBBBWjQilmv9Wa5VECe9P+8Uv+87MHPZwdbmKMcD+Q8A/QBuiwd45rHO53fQBjBFfFuULSmlssJtyjBzdc/T81CfzZ4mgiKr6YkXRsKYObxzsgMMRkFHBWnenTYaq4i/TnThzACICIgIELGs6Mhoznl43+rnnk0PqYFy5tBOJE9HD6WeE2mhHhGBni1dxAiqC8kOAJwL7pW66Akrjo2eL93JeohZg5dbqRVQb+WICFJK1VOaj6P7fdw2T+ucAACuBwHwFC5CnetuAF/rQtaqD+Z2n1PTArAKLVIvfBxVQO31iGEKWUU8IiIYESuBuG0nwe2YlUaPdqCFj6Pk5IxzEsDzvCMCtQ/tVxjVQHcH5CxCRKfC0vQCGu2Abpf60BboQpd++jIzc0qJ4a9wykuNlbkXX5UP/mv0kfmXaI2DiG/G7tD10RlzMVMIoGw5GmN3mObDLWIh+hPvDq/46AbwX8X2iO7AJ/6C/ISPxWKxmMwve31ULTQV7Y8AAAAASUVORK5CYII=`,cow_variation_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABrklEQVRoge2Ya46EIAyAy8Q7eoMeihtwyu6PEQdqS4FBd5PtlzhxtPaBfagAjuM4juM4jvNbhAds0AKbqo5vA+CKe8l2reuDIRNGA6iUIaIqGGM0lbWu79QRNtPKG+oxOEKPLkQ0g7DuwLTjLcOj+hRd4fxRoBUrzo3P6jz0XPzVUqhyvnRi1IEsH2Os9iUZ65zESzimOr8SIgIiEm20znF4AEvS5knKFDJ7Og9OWx1rERARQtHBS/nWOYkcAIEyNO66Iy29IzZ750DFXXUxg1TETSzntdXrGUozDAfw15hKodVYzUAbYgDXAEKM8bZWmtOIDzRKSZQP+27q3ODo/THG3Im+crAkO8jbJHc8O2r9lxiugVaRSs7n/cu0VVZd4pAV59R2GLBeHCpWpxgPZiS4F3zS5pI+0sr1MhNk2Pdz68VMIUppOhCe++U+dzLsO1BK58bPgVKf0kEqu0SrkL55MZGK+eLcx+ZQcyFEJEQkeNfFuRXHTtnBzbShyKv0DLIA+mP2qs8ylY3W4OL8n0eJJ55AZ2yIRSzIrPi6douN3jvwxCfIJ2w4juMs5gdcWvZP4r+1igAAAABJRU5ErkJggg==`,cow_variation_4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACFElEQVRoge1YW3aEMAiFnu5xdoBrijtwlfRjJEWEhHQcpx+559ipJsKFXPIQYGJiYmJiYmJiYuJTwBt88AU+QxuvBmANZyF+e+9jpw9+DTpmfTEzRFfGDhG57xIREJH0ayIbgJAOSS7LkjT1xE6w+Z70aaEnocoyympEYF3XJjHdbm0jYthXd6t/ArAYKKU0urWzaJ0LIU0aEeu9/l/uVRAnvpGEKvmI5LIs9WpBNG3tCbkIrTaNb8+n50xGYVTro/1HYUfAJX81iKhm2EqGmQ9tPS56BLrkvWyWUv6U5ZafkQTKCDAEBd0q4F5x3wGvBgAgT+7dGu9BL+kI++rqQYhGgelAooJf19WVh2fTexcGplEX75BMZDPrKx2ANWjXAWn3st8jiYjuJe1R9vVDXcShjISYJuRJyw6/nqlERqWUOl3ytrm+8PHwuJ7ARFQ3a3sAaRBRup9cILvZbWPetuy9i7SEom2Dl/nUFiPIeqOvG4QcGA6/vf28lZFtE3h1A/CU0UgAAFVO7iwkD0+NUkwWXqG+sh4YrYfPsqi6hV2H8HsCG64F0b19Bkrj2gcY/fdqwKvsKiFErEPtZaQntZOz4KCSmIXCGagbgGmQZ9lDeeSPZUVundwCfgeEeyFjJCrsqz7LIJyDStke/Srx75AZAQDIH/FeQUdOLtwacPpc8XXtLT6yI3DHJ8g7fExMTExcjB/HIw4rhmRWFQAAAABJRU5ErkJggg==`,cow_variation_5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB/klEQVRoge2YbXLEIAiGcad3zA3ImfQGnpL+2JoiQcWPzewPn5nMtAnKi4BrArDZbDabzWYzjHvYHw34Jfb3bdxrSk4f1DbpH/NiRiMORhn1dRv3AgBAxE+L/9j8P5PjZ4VNB5aagsDWWJlDRKwae+/fTpw+dRqf7BLneQIAQAhBG5ZNZs0AcYdWzvME7z0Q0S0Iy1yIKIO4rUQrAwQAQESXoBG891kAUlia/xJVtu3aRgkRs8llqkdIgojourhg51z2LIRQzVYpAOotFwtyzlJvtJ5xtAAy8bxsRkuohCwd6zOObOLlK6+VHSLe6vwSIEqqpScF4MCwJ3vvl2WhJqxnEXkJLT/YrWj6Fk8e5orIQHsCbwagTZ6uFrzclB+lJQxnoKcXVu9enOJRQlthKURrannPIr51VvrLnGokA3AhBLLswSnAnp0plZEQBhSjau+Oozln8zCXDmQ1kT1Nx3shCU9CW/9rVHugJHrF9lha9YqtWhbmF5oe0dzWUl4ymJ7gqhkIIXxk6yvhjsNU99kY5d7VxM45oBj/a9J4wKrB37b4SkvhyjPzSYESAEAUI1GMBO8azK5e+Ni/DwmqD8VnkWYGxIN0j7/J9XCNk1tph76mgQzAFe7NsMzHVxzmZjBvo9ZXvBlGfKgBfKtYDWsGnviK/fSX8s1ms1nAL4ZTXaf8TqprAAAAAElFTkSuQmCC`,cow_variation_6_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABsUlEQVRoge2YWXLDIAxARSd3zA10KN3Ap6QfLVQm2sDU/tGbScYJsjYkMTZAkiRJkiRJkjxFucFG3WBT1XE1gFFxlGbXu784MmU2gJDDiAhEFJKzCOgoXxGH4Mfx1WyLeM5HZV7O+rTTUcd4dsd7xjVlJ0r/UljKuOXMSXn9U19K6fcR0cca48NfrYQqIoay6WHpKUYLWmscqYQqN8ivI415N+MOVCvr3o7M7FjLMC+fpoOvefAALk2ZHeW2QiuhCv6hAQDnqfCU05zoOXBiV4M3XZH/NLxzIIzX4NHTmctH9KoBWAeNJjdDNMte4C2AXv9SfRORaHCX85qeQU4cSS9BoHpH/Sqj3nZdj0OUL++3q1OKyjwLOLM7MNZ1c7w56vwWd2BpCu1Ay7ohK474bVPoCmMwM8GZO0BEZpnM9IYlK9V6pP4BnB4gIqjH0ZXNPEFFZHmmR4eFNbEHQgFIBiJOSk7zeyem0NSjb0XEiojtMbJ/2H9ddvLj2lDkVSJNXEAfrbtey5xs/O5MSPdjY3QX4TF6x9PYig2xiQWZHW/X/sVGdAfueAV5h40kSZLNfAP8suojqxWMSgAAAABJRU5ErkJggg==`,cow_variation_7_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB1klEQVRoge2YXZKDMAiAYad39AZ4JnODnjL7UixBkJim7j7wzdixJuEvJEQBkiRJkiRJkuSvwBt01Ak6XRmfOqAF98J6o/EY9MGfi4qrukyIqEsOEQERQa21ufh5YDwAAPQ60CjsMDBEyljXNezj8Qja9whoYfy/lBIqsZDjWBY7otscHbj/OBymz4qI54DnIBtU61s8Ijb9rbaXnIO93gyMLs4dNlwaJgOAiI2hkrM2jbUG3JE6mj3pM5pivWgHPo58DzwTiNikz7ZtbpuHTKHQ+Bm7jydr27YhPTwDFYKipoXOTA1pvLzv4bAGrH1+ZuRn49aB2UbzVjhb7tWjxM5MQ9Z1datxRFSJT4mqca+TPN4qeuK5uUblqXC/H4mup9zqpx2vz6fZF5fFshX0w6pK9ZAD0qBovDacDQ3+mw58lEKaK457Uff64rKYW/0DAKCUEr04fBXtzBXnfuDt1cG7UsrXzzIeKv9dwhR6TR8AzNs6iQhwWZpIa4ONtvE1wE707jQe+kVFLlYrbYRTl97dKxFVItLvv/LZ3vfiFepw+rv0zMDZ1jrrs0yj46xwaYaPEv+F7jpwx240osOaJusr2Iyva1/R0TsDd3yCvENHkiTJZH4BOxYPBJ6xfbsAAAAASUVORK5CYII=`,pixel_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4goFDRc7VmYGWwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAALSURBVAjXY2AAAgAABQAB4iYFmwAAAABJRU5ErkJggg==`,plotStates={"watered-plot":watered_plot_default,"fertilized-plot":fertilized_plot_default,"rainbow-fertilized-plot":rainbow_fertilized_plot_default,"mulched-plot":mulched_plot_default,"rainbow-mulched-plot":rainbow_mulched_plot_default,"shoveled-plot":shoveled_plot_default},smeltedItems={"bronze-ingot":bronze_ingot_default,"iron-ingot":iron_ingot_default,"silver-ingot":silver_ingot_default,"gold-ingot":gold_ingot_default,"axe-bronze":axe_bronze_default,"axe-iron":axe_iron_default,"axe-silver":axe_silver_default,"axe-gold":axe_gold_default,"hoe-bronze":hoe_bronze_default,"hoe-iron":hoe_iron_default,"hoe-silver":hoe_silver_default,"hoe-gold":hoe_gold_default,"scythe-bronze":scythe_bronze_default,"scythe-iron":scythe_iron_default,"scythe-silver":scythe_silver_default,"scythe-gold":scythe_gold_default,"shovel-bronze":shovel_bronze_default,"shovel-iron":shovel_iron_default,"shovel-silver":shovel_silver_default,"shovel-gold":shovel_gold_default,"picker-pole-bronze":picker_pole_bronze_default,"picker-pole-iron":picker_pole_iron_default,"picker-pole-silver":picker_pole_silver_default,"picker-pole-gold":picker_pole_gold_default},craftedItems={"apple-pie":apple_pie_default,"banana-bread":banana_bread_default,"banana-cream-pie":banana_cream_pie_default,"carrot-soup":carrot_soup_default,cheese:cheese_default,"chickn-pot-pie":chickn_pot_pie_default,chocolate:chocolate_default,"chocolate-soy-milk":chocolate_soy_milk_default,compost:compost_default,bread:bread_default,burger:burger_default,butter:butter_default,fertilizer:fertilizer_default,"french-onion-soup":french_onion_soup_default,"fried-tofu":fried_tofu_default,"garlic-bread":garlic_bread_default,"garlic-fries":garlic_fries_default,flour:flour_default,jackolantern:jackolantern_default,"hot-sauce":hot_sauce_default,mulch:mulch_default,"olive-oil":olive_oil_default,"onion-rings":onion_rings_default,popcorn:popcorn_default,"apple-juice":apple_juice_default,"grape-syrup":grape_syrup_default,"pumpkin-pie":pumpkin_pie_default,rainbowCheese:rainbow_cheese_default,"rainbow-mulch":rainbow_mulch_default,salsa:salsa_default,"soy-milk":soy_milk_default,"spicy-apple-jam":spicy_apple_jam_default,"spicy-cheese":spicy_cheese_default,"spicy-pickled-garlic":spicy_pickled_garlic_default,spaghetti:spaghetti_default,"strawberry-jam":strawberry_jam_default,sugar:sugar_default,salt:salt_default,"summer-salad":summer_salad_default,"sun-butter":sun_butter_default,"sweet-potato-fries":sweet_potato_fries_default,"sweet-potato-pie":sweet_potato_pie_default,tofu:tofu_default,"vegetable-oil":vegetable_oil_default,"wood-chips":wood_chips_default,yeast:yeast_default,...smeltedItems},items={apple:apple_default,"apple-fruit-growing-1":apple_fruit_growing_1_default,"apple-fruit-growing-2":apple_fruit_growing_2_default,"apple-fruit-grown":apple_fruit_grown_default,"apple-tree-dead":apple_tree_dead_default,"apple-tree-growing-1":apple_tree_growing_1_default,"apple-tree-growing-2":apple_tree_growing_2_default,"apple-tree-growing-3":apple_tree_growing_3_default,"apple-tree-growing-4":apple_tree_growing_4_default,"apple-tree-grown":apple_tree_grown_default,"apple-sapling":apple_sapling_default,"apple-tree-sapling-planted":apple_tree_sapling_planted_default,banana:banana_default,"banana-fruit-growing-1":banana_fruit_growing_1_default,"banana-fruit-growing-2":banana_fruit_growing_2_default,"banana-fruit-growing-3":banana_fruit_growing_3_default,"banana-fruit-grown":banana_fruit_grown_default,"banana-tree-dead":banana_tree_dead_default,"banana-tree-growing-1":banana_tree_growing_1_default,"banana-tree-growing-2":banana_tree_growing_2_default,"banana-tree-growing-3":banana_tree_growing_3_default,"banana-tree-growing-4":banana_tree_growing_4_default,"banana-tree-grown":banana_tree_grown_default,"banana-sapling":banana_sapling_default,"banana-tree-sapling-planted":banana_tree_sapling_planted_default,asparagus:asparagus_default,"asparagus-growing-1":asparagus_growing1_default,"asparagus-growing-2":asparagus_growing2_default,"asparagus-growing-3":asparagus_growing3_default,"asparagus-seed":asparagus_seed_default,carrot:carrot_default,"carrot-growing-1":carrot_growing1_default,"carrot-growing-2":carrot_growing2_default,"carrot-growing-3":carrot_growing3_default,"carrot-seed":carrot_seed_default,garlic:garlic_default,"garlic-growing-1":garlic_growing1_default,"garlic-growing-2":garlic_growing2_default,"garlic-growing-3":garlic_growing3_default,"garlic-seed":garlic_seed_default,"grape-seed":grape_seed_default,"grape-cabernet-sauvignon":grape_purple_default,"grape-cabernet-sauvignon-growing-1":grape_purple_growing1_default,"grape-cabernet-sauvignon-seed":grape_seed_default,"grape-chardonnay":grape_green_default,"grape-chardonnay-growing-1":grape_green_growing1_default,"grape-chardonnay-seed":grape_seed_default,"grape-nebbiolo":grape_purple_default,"grape-nebbiolo-growing-1":grape_purple_growing1_default,"grape-nebbiolo-seed":grape_seed_default,"grape-sauvignon-blanc":grape_green_default,"grape-sauvignon-blanc-growing-1":grape_green_growing1_default,"grape-sauvignon-blanc-seed":grape_seed_default,"grape-tempranillo":grape_purple_default,"grape-tempranillo-growing-1":grape_purple_growing1_default,"grape-tempranillo-seed":grape_seed_default,jalapeno:jalapeno_default,"jalapeno-growing-1":jalapeno_growing1_default,"jalapeno-growing-2":jalapeno_growing2_default,"jalapeno-growing-3":jalapeno_growing3_default,"jalapeno-seed":jalapeno_seed_default,pumpkin:pumpkin_default,"pumpkin-growing-1":pumpkin_growing1_default,"pumpkin-growing-2":pumpkin_growing2_default,"pumpkin-growing-3":pumpkin_growing3_default,"pumpkin-growing-4":pumpkin_growing4_default,"pumpkin-growing-5":pumpkin_growing5_default,"pumpkin-seed":pumpkin_seed_default,pea:pea_default,"pea-growing-1":pea_growing1_default,"pea-seed":pea_seed_default,spinach:spinach_default,"spinach-growing-1":spinach_growing1_default,"spinach-seed":spinach_seed_default,corn:corn_default,"corn-growing-1":corn_growing1_default,"corn-growing-2":corn_growing2_default,"corn-growing-3":corn_growing3_default,"corn-growing-4":corn_growing4_default,"corn-growing-5":corn_growing5_default,"corn-seed":corn_seed_default,potato:potato_default,"potato-growing-1":potato_growing1_default,"potato-growing-2":potato_growing2_default,"potato-growing-3":potato_growing3_default,"potato-seed":potato_seed_default,olive:olive_default,"olive-growing-1":olive_growing1_default,"olive-seed":olive_seed_default,onion:onion_default,"onion-growing-1":onion_growing1_default,"onion-growing-2":onion_growing2_default,"onion-growing-3":onion_growing3_default,"onion-seed":onion_seed_default,soybean:soybean_default,"soybean-growing-1":soybean_growing1_default,"soybean-seed":soybean_seed_default,"sweet-potato":sweet_potato_default,"sweet-potato-growing-1":sweet_potato_growing1_default,"sweet-potato-growing-2":sweet_potato_growing2_default,"sweet-potato-growing-3":sweet_potato_growing3_default,"sweet-potato-growing-4":sweet_potato_growing4_default,"sweet-potato-seed":sweet_potato_seed_default,wheat:wheat_default,"wheat-growing-1":wheat_growing1_default,"wheat-seed":wheat_seed_default,tomato:tomato_default,"tomato-growing-1":tomato_growing1_default,"tomato-growing-2":tomato_growing2_default,"tomato-growing-3":tomato_growing3_default,"tomato-growing-4":tomato_growing4_default,"tomato-growing-5":tomato_growing5_default,"tomato-growing-6":tomato_growing6_default,"tomato-seed":tomato_seed_default,strawberry:strawberry_default,"strawberry-growing-1":strawberry_growing1_default,"strawberry-seed":strawberry_seed_default,sugarcane:sugarcane_default,"sugarcane-growing-1":sugarcane_growing1_default,"sugarcane-growing-2":sugarcane_growing2_default,"sugarcane-seed":sugarcane_seed_default,sunflower:sunflower_default,"sunflower-growing-1":sunflower_growing1_default,"sunflower-growing-2":sunflower_growing2_default,"sunflower-growing-3":sunflower_growing3_default,"sunflower-growing-4":sunflower_growing4_default,"sunflower-growing-5":sunflower_growing5_default,"sunflower-seed":sunflower_seed_default,watermelon:watermelon_default,"watermelon-growing-1":watermelon_growing1_default,"watermelon-seed":watermelon_seed_default,weed:weed_pink_default,"weed-yellow":weed_yellow_default,"weed-orange":weed_orange_default,"weed-pink":weed_pink_default,wood:applewood_default,coal:coal_default,stone:stone_default,"salt-rock":salt_rock_default,"bronze-ore":bronze_ore_default,"iron-ore":iron_ore_default,"silver-ore":silver_ore_default,"gold-ore":gold_ore_default,"rainbow-fertilizer":rainbow_fertilizer_default,scarecrow:scarecrow_default,sprinkler:sprinkler_default,"cow-feed":cow_feed_default,"hugging-machine":hugging_machine_default,"milk-1":milk_1_default,"milk-2":milk_2_default,"milk-3":milk_3_default,"rainbow-milk-1":rainbow_milk_1_default,"rainbow-milk-2":rainbow_milk_2_default,"rainbow-milk-3":rainbow_milk_3_default,"chocolate-milk":chocolate_milk_default,"scarecrow-animated":scarecrow_animated_default,"inventory-box":inventory_box_default,tumbleweed:tumbleweed_default,...craftedItems},wines={[grapeVariety.CHARDONNAY]:wine_green_default,[grapeVariety.SAUVIGNON_BLANC]:wine_green_default,[grapeVariety.CABERNET_SAUVIGNON]:wine_purple_default,[grapeVariety.TEMPRANILLO]:wine_purple_default,[grapeVariety.NEBBIOLO]:wine_purple_default},tools$1={axe:axe_default,hoe:hoe_default,"picker-pole":picker_pole_default,scythe:scythe_default,shovel:shovel_default,"watering-can":watering_can_default},animals={cow:{rainbow:rainbow_cow_default,variations:[cow_variation_1_default,cow_variation_2_default,cow_variation_3_default,cow_variation_4_default,cow_variation_5_default,cow_variation_6_default,cow_variation_7_default]}},noop$3=()=>{},getFinalCropItemFromSeedItem=({id:e},t=0)=>{let n=getFinalCropItemIdFromSeedItemId(e,t);if(n)return itemsMap[n]},getItemCurrentValue=({id:e},t)=>{let n=Math.round((t[e]?getItemBaseValue(e)*(itemsMap[e].doesPriceFluctuate?t[e]:1):getItemBaseValue(e))*100);return Number(toDecimal(dinero({amount:n,currency:USD})))};function noop$2(){}function returnTrue(){return!0}function charIsNumber(e){return!!(e||``).match(/\d/)}function isNil(e){return e==null}function escapeRegExp(e){return e.replace(/[-[\]/{}()*+?.\\^$|]/g,`\\$&`)}function getThousandsGroupRegex(e){switch(e){case`lakh`:return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case`wan`:return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}function applyThousandSeparator(e,t,n){var a=getThousandsGroupRegex(n),o=e.search(/[1-9]/);return o=o===-1?e.length:o,e.substring(0,o)+e.substring(o,e.length).replace(a,`$1`+t)}function splitDecimal(e,t){t===void 0&&(t=!0);var n=e[0]===`-`,a=n&&t;e=e.replace(`-`,``);var o=e.split(`.`);return{beforeDecimal:o[0],afterDecimal:o[1]||``,hasNagation:n,addNegation:a}}function fixLeadingZero(e){if(!e)return e;var t=e[0]===`-`;t&&(e=e.substring(1,e.length));var n=e.split(`.`),a=n[0].replace(/^0+/,``)||`0`,o=n[1]||``;return(t?`-`:``)+a+(o?`.`+o:``)}function limitToScale(e,t,n){for(var a=``,o=n?`0`:``,s=0;s<=t-1;s++)a+=e[s]||o;return a}function repeat(e,t){return Array(t+1).join(e)}function toNumericString(e){e+=``;var t=e[0]===`-`?`-`:``;t&&(e=e.substring(1));var n=e.split(/[eE]/g),a=n[0],o=n[1];if(o=Number(o),!o)return t+a;a=a.replace(`.`,``);var s=1+o,l=a.length;return s<0?a=`0.`+repeat(`0`,Math.abs(s))+a:s>=l?a+=repeat(`0`,s-l):a=(a.substring(0,s)||`0`)+`.`+a.substring(s),t+a}function roundToPrecision(e,t,n){if([``,`-`].indexOf(e)!==-1)return e;var a=e.indexOf(`.`)!==-1&&t,o=splitDecimal(e),s=o.beforeDecimal,l=o.afterDecimal,u=o.hasNagation,d=parseFloat(`0.`+(l||`0`)),f=(l.length<=t?`0.`+l:d.toFixed(t)).split(`.`),m=s.split(``).reverse().reduce(function(e,t,n){return e.length>n?(Number(e[0])+Number(t)).toString()+e.substring(1,e.length):t+e},f[0]),h=limitToScale(f[1]||``,Math.min(t,l.length),n),v=u?`-`:``,y=a?`.`:``;return``+v+m+y+h}function setCaretPosition(e,t){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move(`character`,t),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}function findChangedIndex(e,t){for(var n=0,a=0,o=e.length,s=t.length;e[n]===t[n]&&n<o;)n++;for(;e[o-1-a]===t[s-1-a]&&s-a>n&&o-a>n;)a++;return{start:n,end:o-a}}function clamp(e,t,n){return Math.min(Math.max(e,t),n)}function getCurrentCaretPosition(e){return Math.max(e.selectionStart,e.selectionEnd)}function addInputMode(e){return e||typeof navigator<`u`&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function objectWithoutProperties(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)===-1&&(n[a]=e[a]);return n}var defaultProps={displayType:`input`,decimalSeparator:`.`,thousandsGroupStyle:`thousand`,fixedDecimalScale:!1,prefix:``,suffix:``,allowNegative:!0,allowEmptyFormatting:!1,allowLeadingZeros:!1,isNumericString:!1,type:`text`,onValueChange:noop$2,onChange:noop$2,onKeyDown:noop$2,onMouseUp:noop$2,onFocus:noop$2,onBlur:noop$2,isAllowed:returnTrue},NumberFormat=function(e){function t(t){e.call(this,t);var n=t.defaultValue;this.validateProps();var a=this.formatValueProp(n);this.state={value:a,numAsString:this.removeFormatting(a),mounted:!1},this.selectionBeforeInput={selectionStart:0,selectionEnd:0},this.onChange=this.onChange.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.componentDidMount=function(){this.setState({mounted:!0})},t.prototype.componentDidUpdate=function(e){this.updateValueIfRequired(e)},t.prototype.componentWillUnmount=function(){clearTimeout(this.focusTimeout),clearTimeout(this.caretPositionTimeout)},t.prototype.updateValueIfRequired=function(e){var t=this,n=t.props,a=t.state,o=t.focusedElm,s=a.value,l=a.numAsString;if(l===void 0&&(l=``),e!==n){this.validateProps();var u=this.formatNumString(l),d=isNil(n.value)?u:this.formatValueProp(),f=this.removeFormatting(d),m=parseFloat(f),h=parseFloat(l);((!isNaN(m)||!isNaN(h))&&m!==h||u!==s||o===null&&d!==s)&&this.updateValue({formattedValue:d,numAsString:f,input:o,source:`prop`,event:null})}},t.prototype.getFloatString=function(e){e===void 0&&(e=``);var t=this.props.decimalScale,n=this.getSeparators().decimalSeparator,a=this.getNumberRegex(!0),o=e[0]===`-`;o&&(e=e.replace(`-`,``)),n&&t===0&&(e=e.split(n)[0]),e=(e.match(a)||[]).join(``).replace(n,`.`);var s=e.indexOf(`.`);return s!==-1&&(e=e.substring(0,s)+`.`+e.substring(s+1,e.length).replace(new RegExp(escapeRegExp(n),`g`),``)),o&&(e=`-`+e),e},t.prototype.getNumberRegex=function(e,t){var n=this.props,a=n.format,o=n.decimalScale,s=n.customNumerals,l=this.getSeparators().decimalSeparator;return RegExp(`[0-9`+(s?s.join(``):``)+`]`+(l&&o!==0&&!t&&!a?`|`+escapeRegExp(l):``),e?`g`:void 0)},t.prototype.getSeparators=function(){var e=this.props.decimalSeparator,t=this.props,n=t.thousandSeparator,a=t.allowedDecimalSeparators;return n===!0&&(n=`,`),a||=[e,`.`],{decimalSeparator:e,thousandSeparator:n,allowedDecimalSeparators:a}},t.prototype.getMaskAtIndex=function(e){var t=this.props.mask;return t===void 0&&(t=` `),typeof t==`string`?t:t[e]||` `},t.prototype.getValueObject=function(e,t){var n=parseFloat(t);return{formattedValue:e,value:t,floatValue:isNaN(n)?void 0:n}},t.prototype.validateProps=function(){var e=this.props.mask,t=this.getSeparators(),n=t.decimalSeparator,a=t.thousandSeparator;if(n===a)throw Error(`
|
|
154
|
+
`),severity:`error`}),{...e,newDayNotifications:a}},processNerfs=e=>applyChanceEvent([[()=>!0,applyCrows]],e),getRangeCoords=(e,t,n)=>{let a=2*e+1,o=t-e,s=n-e;return Array(a).fill(null).map((e,t)=>Array(a).fill(null).map((e,n)=>({x:o+n,y:s+t})))},processSprinklers=e=>{let{field:t,experience:n}=e,a=new Map,o=[...t],{sprinklerRange:s}=getLevelEntitlements(levelAchieved(n));return t.forEach((n,l)=>{n.forEach((n,u)=>{!n||getPlotContentType(n)!==itemType.SPRINKLER||getRangeCoords(s,u,l).flat().forEach(({x:n,y:s})=>{let l=t[s];if(!l)return;let u=l[n];u&&getPlotContentType(u)===itemType.CROP&&(a.has(u)||(o=modifyFieldPlotAt({...e,field:o},n,s,setWasWatered).field),a.set(u,{x:n,y:s}))})})}),{...e,field:o}},shouldPrecipitateToday=()=>random$1()<PRECIPITATION_CHANCE,processWeather=e=>applyChanceEvent([[shouldPrecipitateToday,applyPrecipitation]],e),rotateNotificationLogs=e=>{let t=[...e.notificationLog],{dayCount:n,newDayNotifications:a}=e,o={error:[],info:[],success:[],warning:[]};return a.forEach(({message:e,severity:t})=>o[t].push(e)),a.length&&t.unshift({day:n,notifications:o}),t.length=Math.min(t.length,14),{...e,notificationLog:t}},get7DayAverage=e=>e.reduce((e,t)=>moneyTotal(e,t),0)/7,getProfit=(e,t)=>moneyTotal(e,t),updateFinancialRecords=e=>{let{profitabilityStreak:t,todaysLosses:n,todaysRevenue:a,record7dayProfitAverage:o,recordProfitabilityStreak:s}=e,{historicalDailyLosses:l,historicalDailyRevenue:u,recordSingleDayProfit:d}=e;l=[n,...l].slice(0,7),u=[a,...u].slice(0,7);let f=get7DayAverage(l.map((e,t)=>moneyTotal(u[t],e))),m=a+n>0?t+1:0;return{...e,historicalDailyLosses:l,historicalDailyRevenue:u,profitabilityStreak:m,record7dayProfitAverage:Math.max(o,f),recordProfitabilityStreak:Math.max(s,m),recordSingleDayProfit:Math.max(d,getProfit(a,n)),todaysLosses:0,todaysRevenue:0}},updateInventoryRecordsForNextDay=e=>({...e,todaysPurchases:{},todaysStartingInventory:e.inventory.reduce((e,{id:t,quantity:n})=>(e[t]=n,e),{})}),decrementPriceEventDays=e=>Object.keys(e).reduce((t,n)=>{let a=e[n];if(!a)return t;let{itemId:o,daysRemaining:s}=a;return s>1&&(t[n]={itemId:o,daysRemaining:s-1}),t},{}),updatePriceEvents=e=>{let{priceCrashes:t,priceSurges:n}=e;return{...e,priceCrashes:decrementPriceEventDays(t),priceSurges:decrementPriceEventDays(n)}},adjustItemValues=e=>({...e,historicalValueAdjustments:[e.valueAdjustments],valueAdjustments:generateValueAdjustments(e.priceCrashes,e.priceSurges)}),computeStateForNextDay=(e,t=!1)=>(e=(t?[processField]:[computeCowInventoryForNextDay,processCowBreeding,processField,processForest,processNerfs,processWeather,processSprinklers,processFeedingCows,processCowAttrition,processMilkingCows,processCowFertilizerProduction,processCellar,updatePriceEvents,updateFinancialRecords,updateInventoryRecordsForNextDay,generatePriceEvents,applyLoanInterest,rotateNotificationLogs]).concat([adjustItemValues]).reduce((e,t)=>t({...e}),{...e,cowForSale:generateCow(),dayCount:e.dayCount+1,todaysNotifications:[]}),e.dayCount%60==0&&(e=addExperience(e,EXPERIENCE_VALUES.NEW_YEAR)),e),{FERTILIZE:FERTILIZE$3,OBSERVE:OBSERVE$5}=fieldMode,fertilizerItemIdToTypeMap={[itemsMap.fertilizer.id]:fertilizerType.STANDARD,[itemsMap[`rainbow-fertilizer`].id]:fertilizerType.RAINBOW},fertilizePlot=(e,t,n)=>{let{field:a,selectedItemId:o}=e,s=a[n][t];if(!s||itemsMap[o]?.type!==itemType.FERTILIZER)return e;let{id:l}=itemsMap[o],u=e.inventory.find(e=>e.id===l),d=getPlotContentType(s);if(!s||!u||s.fertilizerType!==fertilizerType.NONE||o===`fertilizer`&&d!==itemType.CROP||o===`rainbow-fertilizer`&&d!==itemType.CROP&&d!==itemType.SCARECROW)return e;let{quantity:f}=u;e=decrementItemFromInventory(e,l);let m=f>1;return e=modifyFieldPlotAt(e,t,n,e=>e&&{...e,fertilizerType:fertilizerItemIdToTypeMap[l]}),{...e,fieldMode:m?FERTILIZE$3:OBSERVE$5,selectedItemId:m?l:``}},forRange=(e,t,n,a,o,...s)=>{let l=Math.max(a-n,0),u=Math.min(a+n,e.field[0].length-1),d=Math.max(o-n,0),f=Math.min(o+n,e.field.length-1);for(let n=d;n<=f;n++)for(let a=l;a<=u;a++)e=t(e,a,n,...s);return e},{GROWN:GROWN$6}=cropLifeStage,{UNAVAILABLE}=toolLevel,harvestForestPlot=(e,t,n)=>{let a=e.forest[n]?.[t];if(!a||!(`itemId`in a)||e.toolLevels[toolType.PICKER_POLE]===UNAVAILABLE||!doesInventorySpaceRemain(e)||getFruitLifeStage(a)!==GROWN$6)return e;let o=itemsMap[a.itemId];if(!o)return e;let s=PICKER_POLE_LEVEL_TO_FRUIT_YIELD[e.toolLevels[toolType.PICKER_POLE]]??1,l=Math.min(s,inventorySpaceRemaining(e));return e=addItemToInventory(e,o,s),e={...e,treeFruitsHarvested:{...e.treeFruitsHarvested,[o.id]:(e.treeFruitsHarvested[o.id]||0)+l}},modifyForestPlotAt(e,t,n,e=>e&&`itemId`in e?{...e,daysSinceLastHarvest:0}:e)},getCropFromItemId=e=>({...getPlotContentFromItemId(e),daysOld:0,daysWatered:0,wasWateredToday:!1}),plantInPlot=(e,t,n,a)=>{if(!a||!e.inventory.some(({id:e})=>e===a))return e;let{field:o}=e;if(o[n][t])return e;let{growsInto:s}=itemsMap[a],l=getFinalCropItemIdFromSeedItemId(a,Array.isArray(s)?chooseRandomIndex(s):0);return l?(e=modifyFieldPlotAt(e,t,n,()=>getCropFromItemId(l)),e=decrementItemFromInventory(e,a),e=processSprinklers(e),{...e,selectedItemId:e.inventory.find(({id:e})=>e===a)?a:``}):e},{GROWN:GROWN$5}=cropLifeStage;function getHarvestedQuantity(e){let t=1;switch(e.toolLevels[toolType.SCYTHE]){case toolLevel.BRONZE:t+=1;break;case toolLevel.IRON:t+=2;break;case toolLevel.SILVER:t+=3;break;case toolLevel.GOLD:t+=4;break;default:t=1}return t}function harvestCrops(e,t,n){let a=e.field[n][t];if(!a)return e;let o=itemsMap[a.itemId];if(!o)return e;let s=getSeedItemIdFromFinalStageCropItemId(o.id),l=a.fertilizerType===fertilizerType.RAINBOW,u=getHarvestedQuantity(e);e=removeFieldPlotAt(e,t,n),e=addItemToInventory(e,o,u);let{cropType:d}=o;if(!d)return e;l&&getInventoryQuantityMap(e.inventory)[s]>0&&(e=plantInPlot(e,t,n,s),e=modifyFieldPlotAt(e,t,n,e=>e&&{...e,fertilizerType:fertilizerType.RAINBOW}));let{cropsHarvested:f}=e;return{...e,cropsHarvested:{...f,[d]:(f[d]||0)+u}}}function harvestWeed(e,t,n){let a=e.field[n][t];if(!a)return e;let o=itemsMap[a.itemId],s=getHarvestedQuantity(e);return e=removeFieldPlotAt(e,t,n),e=addItemToInventory(e,o,s),e}var harvestPlot=(e,t,n)=>{let a=e.field[n][t];return!a||!doesInventorySpaceRemain(e)?e:getPlotContentType(a)===itemType.CROP&&getCropLifeStage(a)===GROWN$5?harvestCrops(e,t,n):getPlotContentType(a)===itemType.WEED?harvestWeed(e,t,n):e},hugCow=(e,t)=>modifyCow(e,t,e=>e.happinessBoostsToday>=3?e:{happiness:Math.min(1,e.happiness+COW_HUG_BENEFIT),happinessBoostsToday:e.happinessBoostsToday+1}),maxYieldOfRecipe=memoize(({ingredients:e},t)=>{let n=getInventoryQuantityMap(t);return Math.min(...Object.keys(e).map(t=>Math.floor(n[t]/e[t])))||0},{}),canMakeRecipe=(e,t,n)=>maxYieldOfRecipe(e,t)>=n,consumeIngredients=(e,t,n=1,a=0)=>t.ingredients&&!canMakeRecipe(t,e.inventory,n)?e:(e=addExperience(e,a),Object.keys(t.ingredients||{}).reduce((e,a)=>decrementItemFromInventory(e,a,t.ingredients[a]*n),e)),EXPERIENCE_FOR_RECIPE={[recipeType.FERMENTATION]:EXPERIENCE_VALUES.FERMENTATION_RECIPE_MADE,[recipeType.FORGE]:EXPERIENCE_VALUES.FORGE_RECIPE_MADE,[recipeType.KITCHEN]:EXPERIENCE_VALUES.KITCHEN_RECIPE_MADE,[recipeType.RECYCLING]:EXPERIENCE_VALUES.RECYCLING_RECIPE_MADE,[recipeType.WOOD_CHIPPER]:EXPERIENCE_VALUES.WOOD_CHIPPER_RECIPE_MADE},makeRecipe=(e,t,n=1)=>{let a=e;return e=consumeIngredients(e,t,n,EXPERIENCE_FOR_RECIPE[t.recipeType]||0),e===a?e:(e={...e,recipesMade:{...e.recipesMade,[t.id]:(e.recipesMade[t.id]||0)+n}},addItemToInventory(e,t,n))},saltRequirementMultiplier=2/3,getSaltRequirementsForFermentationRecipe=e=>{let{daysToFerment:t=0,tier:n=1}=e;return Math.ceil((t??0)*saltRequirementMultiplier)*n},getMaxYieldOfFermentationRecipe=(e,t,n,a)=>{let{[e.id]:o=0,[itemsMap.salt.id]:s=0}=getInventoryQuantityMap(t),l=Math.floor(s/getSaltRequirementsForFermentationRecipe(e));return Math.min(a-n.length,o,l)},addKegToCellarInventory=(e,t)=>{let{cellarInventory:n}=e;return{...e,cellarInventory:[...n,t]}},makeFermentationRecipe=(e,t,n=1)=>{let{inventory:a,cellarInventory:o,purchasedCellar:s}=e,{space:l}=PURCHASEABLE_CELLARS.get(s)??{space:0};if(getMaxYieldOfFermentationRecipe(t,a,o,l)<n)return e;for(let a=0;a<n;a++){let n=cellarService.generateKeg(t);e=addKegToCellarInventory(e,n)}let u=getSaltRequirementsForFermentationRecipe(t);return e=decrementItemFromInventory(e,t.id,n),e=decrementItemFromInventory(e,itemsMap.salt.id,n*u),e},makeWine=(e,t,n=1)=>{let{inventory:a,cellarInventory:o,purchasedCellar:s}=e,{space:l}=PURCHASEABLE_CELLARS.get(s)??{space:0},u=wineService.getMaxWineYield({grape:t,inventory:a,cellarInventory:o,cellarSize:l}),d=itemsMap[t.wineId],f=Math.min(n,u);for(let t=0;t<f;t++){let t=cellarService.generateKeg(d);e=addKegToCellarInventory(e,t)}e=decrementItemFromInventory(e,t.id,f*50);let m=getYeastRequiredForWine(t.variety);return e=decrementItemFromInventory(e,itemsMap.yeast.id,f*m),e};function randomChoice(e){let t=0,n=[];for(let a of e)t+=a.weight,n.push(a);n.sort((e,t)=>e.weight-t.weight);let a=random$1()*t,o,s=0;for(let e in n){if(o=n[e],a<o.weight+s)return o;s+=o.weight}return n[n.length-1]}var Factory=class{},SPAWNABLE_ORES=[goldOre,ironOre,bronzeOre,silverOre],OreFactory=class extends Factory{oreOptions=[];constructor(){super();for(let e of SPAWNABLE_ORES)this.oreOptions.push({ore:e,weight:e.spawnChance||0})}generate(){return[this.spawn()]}spawn(){return randomChoice(this.oreOptions).ore}},CoalFactory=class extends Factory{generate(){let e=[],t=chooseRandom([1,1,1,2,3]);for(let n=0;n<t;n++)e.push(this.spawnCoal());return e.push(this.spawnStone()),e}spawnCoal(){return coal$1}spawnStone(){return stone}},spawnableResources=[{resource:stone,spawnChance:STONE_SPAWN_CHANCE},{resource:saltRock,spawnChance:SALT_ROCK_SPAWN_CHANCE},{resource:coal$1,spawnChance:COAL_SPAWN_CHANCE}],StoneFactory=class extends Factory{generate(){let e=[];for(let{resource:t,spawnChance:n}of spawnableResources)randomNumberService.isRandomNumberLessThan(n)&&e.push(t);return e}},factoryInstances={},instance=null,ResourceFactory=class e{resourceOptions;constructor(){this.resourceOptions=[{weight:ORE_SPAWN_CHANCE,itemType:itemType.ORE},{weight:COAL_SPAWN_CHANCE,itemType:itemType.FUEL},{weight:STONE_SPAWN_CHANCE,itemType:itemType.STONE}]}static instance(){return instance||=new e,instance}static generateFactoryInstance(e){switch(e){case itemType.STONE:return new StoneFactory;case itemType.FUEL:return new CoalFactory;case itemType.ORE:return new OreFactory;default:return null}}static getFactoryForItemType=t=>(factoryInstances[t]||(factoryInstances[t]=e.generateFactoryInstance(t)),factoryInstances[t]);generateResources(t){let n=[],a=RESOURCE_SPAWN_CHANCE;switch(t){case toolLevel.BRONZE:a+=.1;break;case toolLevel.IRON:a+=.2;break;case toolLevel.SILVER:a+=.3;break;case toolLevel.GOLD:a+=.5;break;default:}if(randomNumberService.isRandomNumberLessThan(a)){let t=randomChoice(this.resourceOptions),a=e.getFactoryForItemType(t.itemType);if(a){let e=a.generate();e&&(n=Array.isArray(e)?e:[e])}}return n}},daysUntilClearPeriods=[1,2,2,3],minePlot=(e,t,n)=>{let{field:a}=e;if(a[n][t])return e;if(!doesInventorySpaceRemain(e))return showNotification(e,INVENTORY_FULL_NOTIFICATION);let o=e.toolLevels[toolType.SHOVEL],s=ResourceFactory.instance().generateResources(o),[l]=s,u=chooseRandom(daysUntilClearPeriods);if(l){let e=s.map(({spawnChance:e})=>e).filter(e=>e!=null),t=Math.min(...e);u+=Math.round(random$1()*(1-t)*10)}for(let t of s)e=addItemToInventory(e,t);return e=modifyFieldPlotAt(e,t,n,()=>({itemId:``,fertilizerType:fertilizerType.NONE,isShoveled:!0,daysUntilClear:u,oreId:l?.id??null})),{...e}},{FERTILIZE:FERTILIZE$2,OBSERVE:OBSERVE$4}=fieldMode,mulchItemIdToTypeMap={mulch:fertilizerType.STANDARD,"rainbow-mulch":fertilizerType.RAINBOW},mulchForestPlot=(e,t,n)=>{let{forest:a,selectedItemId:o}=e,s=a[n]?.[t];if(!s||!isPlantedTree(s)||itemsMap[o]?.type!==itemType.MULCH)return e;let l=o,u=e.inventory.find(e=>e.id===l);if(!u||(s.fertilizerType??fertilizerType.NONE)!==fertilizerType.NONE)return e;let{quantity:d}=u;e=decrementItemFromInventory(e,l);let f=d>1;return e={...e,mulchApplied:{...e.mulchApplied,[l]:(e.mulchApplied[l]||0)+1}},e=modifyForestPlotAt(e,t,n,e=>!e||!isPlantedTree(e)?e:{...e,fertilizerType:mulchItemIdToTypeMap[l]}),{...e,fieldMode:f?FERTILIZE$2:OBSERVE$4,selectedItemId:f?l:``}},offerCow=(e,t)=>(e={...e,cowIdOfferedForTrade:t},e),getTreeDeathChance=e=>Math.min(TREE_DEATH_CHANCE_MAX,TREE_DEATH_CHANCE_BASE+e*TREE_DEATH_CHANCE_INCREMENT_PER_DAY),MAX_ITERATIONS=1e3,getRandomLifespanExtension=()=>{let e=0;for(;e<MAX_ITERATIONS&&random$1()>=getTreeDeathChance(e);)e++;return e},getRandomizedLifespan=e=>{let t=e*(1-random$1()*TREE_LIFESPAN_VARIANCE_MAX);return Math.round(t+getRandomLifespanExtension())},{NONE:NONE$1}=fertilizerType,plantTreeInPlot=(e,t,n,a)=>{if(!a||!e.inventory.some(({id:e})=>e===a))return e;let o=e.forest[n];if(!o||o[t])return e;let s=getFinalCropItemIdFromSeedItemId(a);if(!s)return e;let l=itemsMap[s]?.lifespan,u=l===void 0?void 0:getRandomizedLifespan(l);return e=modifyForestPlotAt(e,t,n,()=>({itemId:s,daysOld:0,daysSinceLastHarvest:0,daysGrown:0,fertilizerType:NONE$1,...u!==void 0&&{lifespan:u}})),e=decrementItemFromInventory(e,a),{...e,selectedForestItemId:e.inventory.find(({id:e})=>e===a)?a:``}},prependPendingPeerMessage=(e,t,n=`info`)=>({...e,pendingPeerMessages:[{playerId:e.playerId,message:t,severity:n},...e.pendingPeerMessages].slice(0,5)}),purchaseCombine=(e,t)=>{let{money:n,purchasedCombine:a}=e;if(a>=t)return e;let o=PURCHASEABLE_COMBINES.get(t)?.price||0;return{...e,purchasedCombine:t,money:moneyTotal(n,-o)}},updateLearnedRecipes=e=>({...e,learnedRecipes:Object.keys(recipesMap).reduce((t,n)=>(recipesMap[n].condition(e)&&(t[n]=!0),t),{})}),purchaseComposter=(e,t)=>{let{money:n,purchasedComposter:a}=e;return a>=t?e:(e={...e,purchasedComposter:t,money:moneyTotal(n,-(PURCHASEABLE_COMPOSTERS.get(t)?.price??0))},e=showNotification(e,RECYCLING_AVAILABLE_NOTIFICATION),e=addExperience(e,EXPERIENCE_VALUES.COMPOSTER_ACQUIRED),updateLearnedRecipes(e))},getCowWeight=({baseWeight:e,weightMultiplier:t})=>Math.round(e*t),getCowValue=(e,t=!1)=>t?getCowWeight(e)*clampNumber(scaleNumber(e.daysOld,1,100,0,1),0,1):getCowWeight(e)*1.5,purchaseCow=(e,t)=>{let{cowInventory:n,cowColorsPurchased:a,playerId:o,money:s,purchasedCowPen:l}=e,{color:u}=t,d=getCowValue(t,!1);return s<d||l===0||n.length>=(PURCHASEABLE_COW_PENS.get(l)?.cows??0)?e:(e=addCowToInventory(e,{...t,ownerId:o,originalOwnerId:o}),{...e,cowColorsPurchased:{...a,[u]:(a[u]||0)+1},money:moneyTotal(s,-d),cowForSale:generateCow()})},purchaseCowPen=(e,t)=>{let{money:n,purchasedCowPen:a}=e;if(a>=t)return e;let o=PURCHASEABLE_COW_PENS.get(t);if(!o)return e;let{cows:s,price:l}=o;e=showNotification(e,COW_PEN_PURCHASED(``,s),`success`);let u=t>1?EXPERIENCE_VALUES.COW_PEN_EXPANDED:EXPERIENCE_VALUES.COW_PEN_ACQUIRED;return e=addExperience(e,u),{...e,purchasedCowPen:t,money:moneyTotal(n,-l)}},purchaseCellar=(e,t)=>{let{money:n,purchasedCellar:a}=e;if(a>=t)return e;let o=PURCHASEABLE_CELLARS.get(t);if(!o)return e;let{price:s,space:l}=o;e=showNotification(e,CELLAR_PURCHASED(``,l),`success`);let u=t>1?EXPERIENCE_VALUES.CELLAR_EXPANDED:EXPERIENCE_VALUES.CELLAR_ACQUIRED;return e=addExperience(e,u),{...e,purchasedCellar:t,money:moneyTotal(n,-s)}},nullArray=memoize(e=>Object.freeze(Array(e).fill(null)),{cacheSize:30}),purchaseField=(e,t)=>{let{field:n,money:a,purchasedField:o}=e;if(o>=t)return e;e=addExperience(e,EXPERIENCE_VALUES.FIELD_EXPANDED);let s=PURCHASEABLE_FIELD_SIZES.get(t);if(!s)return e;let{columns:l,price:u,rows:d}=s;return{...e,purchasedField:t,field:nullArray(d).map((e,t)=>nullArray(l).map((e,a)=>n[t]&&n[t][a]||null)),money:moneyTotal(a,-u)}},purchaseForest=(e,t)=>{let{forest:n,money:a,purchasedForest:o}=e;if(o>=t)return e;e=addExperience(e,EXPERIENCE_VALUES.FOREST_EXPANDED);let s=PURCHASABLE_FOREST_SIZES.get(t);if(!s)return e;let{columns:l,price:u,rows:d}=s,f=t===1?FOREST_AVAILABLE_NOTIFICATION:FOREST_EXPANDED`${d*l}`;return e=showNotification(e,f,`success`),{...e,purchasedForest:t,forest:nullArray(d).map((e,t)=>nullArray(l).map((e,a)=>n[t]&&n[t][a]||null)),money:moneyTotal(a,-u)}},getAdjustedItemValue=(e,t)=>Number(((e[t]||1)*itemsMap[t].value).toFixed(2)),purchaseItem=(e,t,n=1)=>{let{money:a,todaysPurchases:o,valueAdjustments:s}=e,l=Math.min(n,inventorySpaceRemaining(e));if(l===0)return e;let u=getAdjustedItemValue(s,t.id)*l;return u>a?e:(e=prependPendingPeerMessage(e,PURCHASED_ITEM_PEER_NOTIFICATION(``,n,t)),addItemToInventory({...e,money:moneyTotal(a,-u),todaysPurchases:{...o,[t.id]:(o[t.id]||0)+l}},t,l))},purchaseSmelter=(e,t)=>{let{money:n,purchasedSmelter:a}=e;return a>=t?e:(e={...e,purchasedSmelter:t,money:moneyTotal(n,-(PURCHASEABLE_SMELTERS.get(t)?.price??0))},e=showNotification(e,FORGE_AVAILABLE_NOTIFICATION),e=addExperience(e,EXPERIENCE_VALUES.SMELTER_ACQUIRED),updateLearnedRecipes(e))},getCostOfNextStorageExpansion=e=>500+(e-100)/100*50,purchaseStorageExpansion=e=>{let{money:t,inventoryLimit:n}=e,a=getCostOfNextStorageExpansion(n);return t<a||n===-1?e:{...e,inventoryLimit:n+100,money:moneyTotal(t,-a)}},purchaseWoodChipper=(e,t)=>{let{money:n,purchasedWoodChipper:a}=e;return a>=t?e:(e={...e,purchasedWoodChipper:t,money:moneyTotal(n,-(PURCHASEABLE_WOOD_CHIPPERS.get(t)?.price??0))},e=showNotification(e,WOOD_CHIPPER_AVAILABLE_NOTIFICATION),e=addExperience(e,EXPERIENCE_VALUES.WOOD_CHIPPER_ACQUIRED),updateLearnedRecipes(e))},removePeer=(e,t)=>{let n={...e.peers};return delete n[t],{...e,peers:n,activePlayers:(e.activePlayers??1)-1}},selectCow=(e,{id:t})=>({...e,selectedCowId:t}),cowColorToIdMap={[cowColors.BLUE]:`blue`,[cowColors.BROWN]:`brown`,[cowColors.GREEN]:`green`,[cowColors.ORANGE]:`orange`,[cowColors.PURPLE]:`purple`,[cowColors.RAINBOW]:`rainbow`,[cowColors.WHITE]:`white`,[cowColors.YELLOW]:`yellow`},getCowColorId=({color:e})=>`${cowColorToIdMap[e]}-cow`,sellCow=(e,t)=>{let{cowsSold:n}=e,a=getCowColorId(t),o=getCowValue(t,!0);e=removeCowFromInventory(e,t),e=addRevenue(e,o);let s={...n,[a]:(n[a]||0)+1};return e={...e,cowsSold:s},e},SEASON_ORDER=[season.SPRING,season.SUMMER,season.FALL,season.WINTER],seasonNameMap={[season.SPRING]:`Spring`,[season.SUMMER]:`Summer`,[season.FALL]:`Fall`,[season.WINTER]:`Winter`},seasonFilterMap={[season.SPRING]:`none`,[season.SUMMER]:`sepia(0.26) hue-rotate(-10deg) saturate(1.91) brightness(0.93) contrast(1.47)`,[season.FALL]:`sepia(0.13) hue-rotate(-38deg) saturate(1.34) brightness(0.97) contrast(1)`,[season.WINTER]:`sepia(0.59) hue-rotate(129deg) saturate(0.98) brightness(0.93) contrast(1.02)`},getCurrentSeason=e=>SEASON_ORDER[Math.floor(e/15)%SEASON_ORDER.length],getResaleValue=({id:e})=>itemsMap[e].value/2,getSalePriceMultiplier=(e={})=>{let t=1;return e[`i-am-rich-3`]?t+=I_AM_RICH_BONUSES[2]:e[`i-am-rich-2`]?t+=I_AM_RICH_BONUSES[1]:e[`i-am-rich-1`]&&(t+=I_AM_RICH_BONUSES[0]),t},getSeasonalDemandStatus=(e,t)=>e.highDemandSeasons?.includes(t)?`HIGH`:e.lowDemandSeasons?.includes(t)?`LOW`:null,getSeasonalDemandMultiplier=(e,t)=>{let n=getSeasonalDemandStatus(e,t);return n===`HIGH`?1+SEASON_HIGH_DEMAND_BONUS:n===`LOW`?1-SEASON_LOW_DEMAND_PENALTY:1},inventory$1=[cowFeed$1,huggingMachine],inventory=[appleSapling,bananaSapling,mulch,asparagusSeed,carrotSeed,cornSeed,grapeSeed,garlicSeed,jalapenoSeed,oliveSeed,onionSeed,peaSeed,potatoSeed,pumpkinSeed,soybeanSeed,spinachSeed,sunflowerSeed,strawberrySeed,sugarcaneSeed,sweetPotatoSeed,tomatoSeed,watermelonSeed,wheatSeed,fertilizer,scarecrow,sprinkler,cowFeed$1,huggingMachine],itemIds$1=new Set(inventory.map(e=>e.id)),purchasableItemMap=[...inventory$1,...inventory].reduce((e,t)=>(e[t.id]=t,e),{}),isItemSoldInShop=({id:e})=>!!purchasableItemMap[e],sellItem=(e,{id:t},n=1)=>{if(n===0)return e;let a=itemsMap[t],{completedAchievements:o,dayCount:s,itemsSold:l,money:u,valueAdjustments:d}=e,{loanBalance:f}=e,m=isItemSoldInShop(a),h=m?getResaleValue(a):getAdjustedItemValue(d,t),v=m?1:getSeasonalDemandMultiplier(a,getCurrentSeason(s)),y=isItemAFarmProduct(a),b=h*(y?getSalePriceMultiplier(o):1)*v,x=0,S=0;for(let e=0;e<n;e++){let e=y?Math.min(f,castToMoney(b*LOAN_GARNISHMENT_RATE)):0;y&&(S+=EXPERIENCE_VALUES.ITEM_SOLD);let t=b-e;f=moneyTotal(f,-e),x=moneyTotal(x,t)}y&&(e=adjustLoan(e,moneyTotal(f,-e.loanBalance)));let C={...l,[t]:(l[t]||0)+n};return e=a.isPlantableCrop?{...e,money:moneyTotal(u,x)}:addRevenue({...e,money:u},x),e=addExperience(e,S),e={...e,itemsSold:C},e=decrementItemFromInventory(e,t,n),e=prependPendingPeerMessage(e,SOLD_ITEM_PEER_NOTIFICATION(``,n,a),`warning`),updateLearnedRecipes(e)},getItemBaseValue=e=>itemsMap[e].value,getKegValue=e=>{let{itemId:t,daysUntilMature:n}=e,a=itemsMap[t];if(n>0)return 0;let o=0,s=0,l=0;return wineService.isWineRecipe(a)?(o=a.value,s=WINE_INTEREST_RATE,l=Math.min(Math.max(-n,1),100)):(o=(a.tier??1)*getItemBaseValue(t),s=KEG_INTEREST_RATE,l=Math.abs(e.daysUntilMature)),o*(1+s)**l},sellKeg=(e,t)=>{let{itemId:n}=t,a=itemsMap[n],{cellarItemsSold:o,completedAchievements:s,itemsSold:l,money:u}=e,{loanBalance:d}=e,f=0,m=getKegValue(t),h=Math.min(d,castToMoney(m*LOAN_GARNISHMENT_RATE)),v=m*getSalePriceMultiplier(s)-h;d=moneyTotal(d,-h),f=moneyTotal(f,v),e=adjustLoan(e,moneyTotal(d,-e.loanBalance));let y={...l,[n]:(l[n]??0)+1},b={...o,[n]:(o[n]??0)+1};return e={...e,itemsSold:y,cellarItemsSold:b},e=addRevenue({...e,money:u},f),e=addExperience(e,EXPERIENCE_VALUES.KEG_SOLD),e=removeKegFromCellar(e,t.id),e=prependPendingPeerMessage(e,SOLD_FERMENTED_ITEM_PEER_NOTIFICATION`${a}`,`warning`),e=updateLearnedRecipes(e),e},{OBSERVE:OBSERVE$3,SET_LIGHTNING_ROD:SET_LIGHTNING_ROD$2}=fieldMode,setLightningRod=(e,t,n)=>{if(e.field[n][t]!==null)return e;let{selectedItemId:a}=e;e=decrementItemFromInventory(e,a);let o=e.inventory.some(e=>e.id===a);return e=modifyFieldPlotAt(e,t,n,()=>({itemId:a,fertilizerType:fertilizerType.NONE,lightningStrikesSustained:0})),{...e,fieldMode:o?SET_LIGHTNING_ROD$2:OBSERVE$3,selectedItemId:o?a:``}},{OBSERVE:OBSERVE$2,SET_SCARECROW:SET_SCARECROW$2}=fieldMode,setScarecrow=(e,t,n)=>{if(e.field[n][t]!==null)return e;e=decrementItemFromInventory(e,SCARECROW_ITEM_ID);let a=e.inventory.some(e=>e.id===SCARECROW_ITEM_ID);return e=modifyFieldPlotAt(e,t,n,()=>getPlotContentFromItemId(SCARECROW_ITEM_ID)),{...e,fieldMode:a?SET_SCARECROW$2:OBSERVE$2,selectedItemId:a?SCARECROW_ITEM_ID:``}},{OBSERVE:OBSERVE$1,SET_SPRINKLER:SET_SPRINKLER$2}=fieldMode,setSprinkler=(e,t,n)=>{let{field:a}=e;if(a[n][t]!==null)return e;e=decrementItemFromInventory(e,SPRINKLER_ITEM_ID);let o=e.inventory.some(e=>e.id===SPRINKLER_ITEM_ID);return e=modifyFieldPlotAt(e,t,n,()=>getPlotContentFromItemId(SPRINKLER_ITEM_ID)),e=processSprinklers(e),{...e,fieldMode:o?SET_SPRINKLER$2:OBSERVE$1,selectedItemId:o?SPRINKLER_ITEM_ID:``}},dollarString=e=>toDecimal(dinero({amount:Math.round(e),currency:USD,scale:0}),({value:e})=>Number(e).toLocaleString(`en-US`,{style:`currency`,currency:`USD`,minimumFractionDigits:0,maximumFractionDigits:0})),getProfitRecord=(e,t,n)=>Math.max(e,getProfit(t,n)),isOctober=()=>new Date().getMonth()===9,percentageString=e=>`${Math.round(e*100)}%`,{SEED:SEED$3}=cropLifeStage,addMoney=(e,t)=>({...e,money:moneyTotal(e.money,t)}),sumOfCropsHarvested=memoize(e=>Object.values(e).reduce((e,t)=>e+t,0),{}),sumOfPartialRecordValues=memoize(e=>Object.values(e).reduce((e,t)=>e+(t||0),0),{}),PIE_RECIPE_IDS=Object.values(recipesMap).filter(e=>e.isPie).map(e=>e.id),sumOfPiesMade=memoize(e=>PIE_RECIPE_IDS.reduce((t,n)=>t+(e[n]||0),0),{}),cowFeed=itemsMap[COW_FEED_ITEM_ID],progressAchievement=(e,t)=>({condition:n=>t(n)>=e,getProgress:n=>({currentValue:t(n),goal:e})}),achievements=[((e=100)=>({id:`plant-crop`,name:`Plant a Crop`,description:`Purchase a seed and plant it in the field.`,rewardDescription:dollarString(e),condition:e=>!!findInField(e.field,e=>e!==null&&doesPlotContainCrop(e)&&getCropLifeStage(e)===SEED$3),reward:t=>addMoney(t,e)}))(),((e=150)=>({id:`water-crop`,name:`Water a Crop`,description:`Water a crop that you planted.`,rewardDescription:dollarString(e),condition:e=>!!findInField(e.field,e=>doesPlotContainCrop(e)&&!!e.wasWateredToday),reward:t=>addMoney(t,e)}))(),((e=200)=>({id:`harvest-crop`,name:`Harvest a Crop`,description:`Harvest a crop that you planted.`,rewardDescription:dollarString(e),condition:e=>sumOfCropsHarvested(e.cropsHarvested)>=1,reward:t=>addMoney(t,e)}))(),((e=EXPERIENCE_VALUES.LOAN_PAID_OFF)=>({id:`financial-freedom`,name:`Financial Freedom`,description:`Pay off your initial loan from the bank.`,rewardDescription:`${e} experience points`,condition:e=>e.loanBalance===0,reward:t=>addExperience(t,e)}))(),((e=1e4)=>({id:`unlock-crop-price-guide`,name:`Prove Yourself as a Farmer`,description:`Show that you can run a farm by earning at least ${dollarString(e)}. Proven farmers get access to the Crop Price Guide, an invaluable tool for making better buying and selling decisions!`,rewardDescription:`Crop Price Guide`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=15)=>({id:`purchase-cow-pen`,name:`Purchase a Cow Pen`,description:`Construct any size cow pen to let your bovine buddies moo-ve on in!`,rewardDescription:`${e} units of ${cowFeed.name}`,condition:e=>e.purchasedCowPen>0,reward:t=>addItemToInventory(t,cowFeed,e,!0)}))(),((e=100,t=Object.keys(standardCowColors).length)=>({id:`purchase-all-cow-colors`,name:`Cows of Many Colors`,description:`Show that you love all cows and purchase one of every color.`,rewardDescription:`${e} units of ${cowFeed.name}`,...progressAchievement(t,e=>Object.values(standardCowColors).filter(t=>(e.cowColorsPurchased[t]||0)>0).length),reward:t=>addItemToInventory(t,cowFeed,e,!0)}))(),((e=150)=>({id:`play-during-october`,name:`Halloween Harvest`,description:`Play Farmhand in October and get the gift of the season.`,rewardDescription:`${e} units of ${itemsMap.jackolantern.name}`,condition:()=>isOctober(),reward:t=>addItemToInventory(t,itemsMap.jackolantern,e,!0)}))(),((e=100,t=1e4)=>({id:`sell-10000-jack-o-lanterns`,name:`Spooky Pumpkin Patch`,description:`Sell ${integerString(t)} units of ${itemsMap.jackolantern.name}. That's enough to fill a whole pumpkin patch!`,rewardDescription:`${e} units of ${itemsMap.scarecrow.name}`,...progressAchievement(t,e=>e.itemsSold.jackolantern||0),reward:t=>addItemToInventory(t,itemsMap.scarecrow,e,!0)}))(),((e=5e3,t=25)=>({id:`daily-profit-1`,name:`Daily profit: ${dollarString(e)}`,description:`Earn ${dollarString(e)} of profit in a single day.`,rewardDescription:`${t} units of ${itemsMap.fertilizer.name}`,...progressAchievement(e,e=>getProfitRecord(e.recordSingleDayProfit,e.todaysRevenue,e.todaysLosses)),reward:e=>addItemToInventory(e,itemsMap.fertilizer,t,!0)}))(),((e=15e3,t=50)=>({id:`daily-profit-2`,name:`Daily profit: ${dollarString(e)}`,description:`Earn ${dollarString(e)} of profit in a single day.`,rewardDescription:`${t} units of ${itemsMap[`onion-seed`].name}`,...progressAchievement(e,e=>getProfitRecord(e.recordSingleDayProfit,e.todaysRevenue,e.todaysLosses)),reward:e=>addItemToInventory(e,itemsMap[`onion-seed`],t,!0)}))(),((e=5e4,t=100)=>({id:`daily-profit-3`,name:`Daily profit: ${dollarString(e)}`,description:`Earn ${dollarString(e)} of profit in a single day.`,rewardDescription:`${t} units of ${itemsMap[`tomato-seed`].name}`,...progressAchievement(e,e=>getProfitRecord(e.recordSingleDayProfit,e.todaysRevenue,e.todaysLosses)),reward:e=>addItemToInventory(e,itemsMap[`tomato-seed`],t,!0)}))(),((e=2500,t=35,n=itemsMap[`pumpkin-seed`])=>({id:`profit-average-1`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=1e4,t=100,n=itemsMap[`potato-seed`])=>({id:`profit-average-2`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=25e3,t=250,n=itemsMap[`soybean-seed`])=>({id:`profit-average-3`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=5e4,t=300,n=itemsMap[`chocolate-milk`])=>({id:`profit-average-4`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=15e4,t=500,n=itemsMap[`rainbow-milk-3`])=>({id:`profit-average-5`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=1e6,t=1e3,n=itemsMap.rainbowCheese)=>({id:`profit-average-6`,name:`7-day profit average: ${dollarString(e)}`,description:`Reach a 7-day profit average of ${dollarString(e)}.`,rewardDescription:`${t} units of ${n.name}`,...progressAchievement(e,e=>e.record7dayProfitAverage),reward:e=>addItemToInventory(e,n,t,!0)}))(),((e=1e4,t=itemsMap[`milk-3`],n=5e3,a=itemsMap.fertilizer)=>({id:`sale-goal-1`,name:`Dairy Master`,description:`Sell ${integerString(e)} units of ${t.name}.`,rewardDescription:`${integerString(n)} ${a.name} units`,...progressAchievement(e,e=>e.itemsSold[t.id]||0),reward:e=>addItemToInventory(e,a,n,!0)}))(),((e=1e3,t=itemsMap[`rainbow-milk-2`],n=500,a=itemsMap.scarecrow)=>({id:`sale-goal-2`,name:`A Big Average Rainbow`,description:`Sell ${integerString(e)} units of ${t.name}.`,rewardDescription:`${integerString(n)} ${a.name} units`,...progressAchievement(e,e=>e.itemsSold[t.id]||0),reward:e=>addItemToInventory(e,a,n,!0)}))(),((e=1e4,t=itemsMap.burger,n=5e3)=>({id:`sale-goal-3`,name:`Burger Master`,description:`Sell ${integerString(e)} ${t.name} units.`,rewardDescription:`${integerString(n)} additional inventory spaces`,...progressAchievement(e,e=>e.itemsSold[t.id]||0),reward:e=>({...e,inventoryLimit:e.inventoryLimit+n})}))(),((e=1e3,t=100)=>({id:`steady-stasher`,name:`Steady Stasher`,description:`Expand your storage capacity to ${integerString(e)} units.`,rewardDescription:`${integerString(t)} additional inventory spaces`,...progressAchievement(e,e=>e.inventoryLimit),reward:e=>({...e,inventoryLimit:e.inventoryLimit+t})}))(),((e=1e4,t=1e3)=>({id:`heavy-hoarder`,name:`Heavy Hoarder`,description:`Expand your storage capacity to ${integerString(e)} units.`,rewardDescription:`${integerString(t)} additional inventory spaces`,...progressAchievement(e,e=>e.inventoryLimit),reward:e=>({...e,inventoryLimit:e.inventoryLimit+t})}))(),((e=1e5,t=1e4)=>({id:`pro-prepper`,name:`Pro Prepper`,description:`Expand your storage capacity to ${integerString(e)} units.`,rewardDescription:`${integerString(t)} additional inventory spaces`,...progressAchievement(e,e=>e.inventoryLimit),reward:e=>({...e,inventoryLimit:e.inventoryLimit+t})}))(),((e=5e5)=>({id:`i-am-rich-1`,name:`I am Rich!`,description:`Earn ${dollarString(e)}.`,rewardDescription:`All sales receive a ${percentageString(I_AM_RICH_BONUSES[0])} bonus`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=1e6)=>({id:`i-am-rich-2`,name:`Millionaire`,description:`Earn ${dollarString(e)}.`,rewardDescription:`All sales receive a ${percentageString(I_AM_RICH_BONUSES[1])} bonus`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=1e9)=>({id:`i-am-rich-3`,name:`Billionaire`,description:`Earn ${dollarString(e)}.`,rewardDescription:`All sales receive a ${percentageString(I_AM_RICH_BONUSES[2])} bonus`,...progressAchievement(e,e=>e.revenue),reward:e=>e}))(),((e=Math.floor(Math.PI*1e6),t=1e3)=>({id:`lord-of-the-pies`,name:`Lord of the Pies`,description:`Have ${dollarString(e)} on hand.`,rewardDescription:`${integerString(t)} units of ${itemsMap[`pumpkin-pie`].name}`,condition:t=>Math.floor(t.money)===e,reward:e=>addItemToInventory(e,itemsMap[`pumpkin-pie`],t,!0)}))(),{id:`gold-digger`,name:`Gold Digger`,description:`Dig up your first piece of gold.`,rewardDescription:`A Gold Ingot`,condition:e=>!!e.inventory.find(e=>e.id===`gold-ore`),reward:e=>addItemToInventory(e,itemsMap[`gold-ingot`],1,!0)},((e=1e3,t=50)=>({id:`orchardist`,name:`Orchardist`,description:`Pick ${integerString(e)} fruits from trees in the Forest.`,rewardDescription:`${t} units of ${itemsMap[`apple-sapling`].name}`,...progressAchievement(e,e=>sumOfPartialRecordValues(e.treeFruitsHarvested)),reward:e=>addItemToInventory(e,itemsMap[`apple-sapling`],t,!0)}))(),((e=100,t=1e5)=>({id:`piemaker`,name:`Piemaker`,description:`Make ${integerString(e)} pies.`,rewardDescription:dollarString(t),...progressAchievement(e,e=>sumOfPiesMade(e.recipesMade)),reward:e=>addMoney(e,t)}))(),((e=250,t=500)=>({id:`deforestation`,name:`Deforestation`,description:`Chop down ${integerString(e)} trees in the Forest.`,rewardDescription:`${t} units of ${itemsMap.wood.name}`,...progressAchievement(e,e=>e.treesChopped),reward:e=>addItemToInventory(e,itemsMap.wood,t,!0)}))(),((e=100,t=25)=>({id:`landscaper`,name:`Landscaper`,description:`Spread ${integerString(e)} bags of mulch (of any type) on trees in the Forest.`,rewardDescription:`${t} units of ${itemsMap[`rainbow-mulch`].name}`,...progressAchievement(e,e=>sumOfPartialRecordValues(e.mulchApplied)),reward:e=>addItemToInventory(e,itemsMap[`rainbow-mulch`],t,!0)}))()],achievementsMap=achievements.reduce((e,t)=>(e[t.id]=t,e),{}),updateAchievements=(e,t)=>achievements.reduce((e,n)=>(!e.completedAchievements[n.id]&&n.condition(e,t)&&(e={...n.reward(e),completedAchievements:{...e.completedAchievements,[n.id]:!0}},e=showNotification(e,ACHIEVEMENT_COMPLETED(``,{name:n.name,rewardDescription:n.rewardDescription}),`success`)),e),e),updatePeer=(e,t,n,a)=>{let o={...e.peers},s=o[a]?.cowOfferedForTrade?.id,l=n.cowOfferedForTrade?.id,u=l&&s!==l;o[a]=n;let{pendingPeerMessages:d=[]}=n;return u&&(e=showNotification(e,NEW_COW_OFFERED_FOR_TRADE`${n}`,`info`,()=>{t.openDialogView(dialogView.ONLINE_PEERS)})),{...e,peers:o,latestPeerMessages:[...d,...e.latestPeerMessages].slice(0,30)}},upgradeTool=(e,t)=>{if(!t.toolType||!t.level)return e;let n=e;if(e=consumeIngredients(e,{...t,ingredients:t.ingredients||{}},1,EXPERIENCE_VALUES.FORGE_RECIPE_MADE),e===n)return e;e=addItemToInventory(e,t,1);let a=upgrades[t.toolType],o=e.toolLevels[t.toolType],s=a?.[o]?.name||``;return e.toolLevels[t.toolType]=t.level,e=showNotification(e,TOOL_UPGRADED_NOTIFICATION(``,s,t.name)),{...e}},waterAllPlots=e=>waterField(e),waterPlot=(e,t,n)=>{let a=e.field[n][t];return a&&getPlotContentType(a)===itemType.CROP?modifyFieldPlotAt(e,t,n,e=>e&&{...e,wasWateredToday:!0}):e},withdrawCow=(e,t)=>{let{cowIdOfferedForTrade:n}=e;return t===n&&(e={...e,cowIdOfferedForTrade:``}),e},reducers_exports=__exportAll({addCowToInventory:()=>addCowToInventory,addExperience:()=>addExperience,addItemToInventory:()=>addItemToInventory,addPeer:()=>addPeer,addRevenue:()=>addRevenue,adjustLoan:()=>adjustLoan,applyPrecipitation:()=>applyPrecipitation,changeCowAutomaticHugState:()=>changeCowAutomaticHugState,changeCowBreedingPenResident:()=>changeCowBreedingPenResident,changeCowName:()=>changeCowName,chopForestPlot:()=>chopForestPlot,clearPlot:()=>clearPlot,computeCowInventoryForNextDay:()=>computeCowInventoryForNextDay,computeStateForNextDay:()=>computeStateForNextDay,createPriceEvent:()=>createPriceEvent,decrementItemFromInventory:()=>decrementItemFromInventory,fertilizePlot:()=>fertilizePlot,forRange:()=>forRange,generatePriceEvents:()=>generatePriceEvents,harvestForestPlot:()=>harvestForestPlot,harvestPlot:()=>harvestPlot,hugCow:()=>hugCow,incrementPlotContentAge:()=>incrementPlotContentAge,makeFermentationRecipe:()=>makeFermentationRecipe,makeRecipe:()=>makeRecipe,makeWine:()=>makeWine,minePlot:()=>minePlot,modifyCow:()=>modifyCow,modifyFieldPlotAt:()=>modifyFieldPlotAt,modifyForestPlotAt:()=>modifyForestPlotAt,mulchForestPlot:()=>mulchForestPlot,offerCow:()=>offerCow,plantInPlot:()=>plantInPlot,plantTreeInPlot:()=>plantTreeInPlot,prependPendingPeerMessage:()=>prependPendingPeerMessage,processCowAttrition:()=>processCowAttrition,processCowBreeding:()=>processCowBreeding,processCowFertilizerProduction:()=>processCowFertilizerProduction,processFeedingCows:()=>processFeedingCows,processField:()=>processField,processForest:()=>processForest,processLevelUp:()=>processLevelUp,processMilkingCows:()=>processMilkingCows,processNerfs:()=>processNerfs,processSprinklers:()=>processSprinklers,processWeather:()=>processWeather,purchaseCellar:()=>purchaseCellar,purchaseCombine:()=>purchaseCombine,purchaseComposter:()=>purchaseComposter,purchaseCow:()=>purchaseCow,purchaseCowPen:()=>purchaseCowPen,purchaseField:()=>purchaseField,purchaseForest:()=>purchaseForest,purchaseItem:()=>purchaseItem,purchaseSmelter:()=>purchaseSmelter,purchaseStorageExpansion:()=>purchaseStorageExpansion,purchaseWoodChipper:()=>purchaseWoodChipper,removeCowFromInventory:()=>removeCowFromInventory,removeFieldPlotAt:()=>removeFieldPlotAt,removeKegFromCellar:()=>removeKegFromCellar,removePeer:()=>removePeer,rotateNotificationLogs:()=>rotateNotificationLogs,selectCow:()=>selectCow,sellCow:()=>sellCow,sellItem:()=>sellItem,sellKeg:()=>sellKeg,setLightningRod:()=>setLightningRod,setScarecrow:()=>setScarecrow,setSprinkler:()=>setSprinkler,showNotification:()=>showNotification,spawnWeeds:()=>spawnWeeds,unlockTool:()=>unlockTool,updateAchievements:()=>updateAchievements,updateFinancialRecords:()=>updateFinancialRecords,updateInventoryRecordsForNextDay:()=>updateInventoryRecordsForNextDay,updateLearnedRecipes:()=>updateLearnedRecipes,updatePeer:()=>updatePeer,updatePlotShoveledState:()=>updatePlotShoveledState,updatePriceEvents:()=>updatePriceEvents,upgradeTool:()=>upgradeTool,waterAllPlots:()=>waterAllPlots,waterField:()=>waterField,waterPlot:()=>waterPlot,withdrawCow:()=>withdrawCow}),{CHOP:CHOP$2,CLEANUP:CLEANUP$4,FERTILIZE:FERTILIZE$1,HARVEST:HARVEST$3,HARVEST_FRUIT:HARVEST_FRUIT$2,MINE:MINE$3,PLANT:PLANT$2,SET_LIGHTNING_ROD:SET_LIGHTNING_ROD$1,SET_SCARECROW:SET_SCARECROW$1,SET_SPRINKLER:SET_SPRINKLER$1,WATER:WATER$3}=fieldMode,{GROWN:GROWN$4}=cropLifeStage,ui_events_default={handleItemPurchaseClick(e,t=1){this.purchaseItem(e,t)},handleMakeRecipeClick(e,t=1){this.makeRecipe(e,t)},handleMakeFermentationRecipeClick(e,t=1){this.makeFermentationRecipe(e,t)},handleMakeWineClick(e,t=1){this.makeWine(e,t)},handleSellKegClick(e){this.sellKeg(e)},handleThrowAwayKegClick(e){this.removeKegFromCellar(e.id)},handleUpgradeTool(e){this.upgradeTool(e)},handleCowPurchaseClick(e){this.purchaseCow(e)},handleCowSellClick(e){this.sellCow(e)},handleCowTradeClick(e){this.tradeForPeerCow(e)},handleCowAutomaticHugChange({target:{checked:e}},t){this.changeCowAutomaticHugState(t,e)},handleCowBreedChange({target:e},t){let{checked:n}=e;this.changeCowBreedingPenResident(t,n)},handleCowHugClick(e){this.hugCow(e.id)},handleCowOfferClick(e){this.offerCow(e.id)},handleCowWithdrawClick(e){this.withdrawCow(e.id)},handleCowNameInputChange(e,t){this.changeCowName(t.id,e)},handleItemSellClick(e,t=1){this.sellItem(e,t)},handleViewChange({target:e}){let{value:t}=e;this.setState({stageFocus:t})},handleViewChangeButtonClick(e){this.setState({stageFocus:e})},handleFieldModeSelect(e){this.setState(({selectedItemId:t})=>({selectedItemId:e!==PLANT$2||TOOLBELT_FIELD_MODES.has(e)?``:t,selectedForestItemId:``,fieldMode:e}))},handleItemSelectClick({id:e,enablesFieldMode:t}){this.setState({fieldMode:t,selectedItemId:e})},handleForestItemSelectClick({id:e}){this.setState({fieldMode:PLANT$2,selectedForestItemId:e})},handlePlotClick(e,t){let{fieldMode:n,hoveredPlotRangeSize:a,selectedItemId:o}=this.state;n===PLANT$2?this.forRange(plantInPlot,a,e,t,o):n===HARVEST$3?this.forRange(harvestPlot,a,e,t):n===MINE$3?this.forRange(minePlot,a,e,t):n===CLEANUP$4?this.forRange(clearPlot,a,e,t):n===WATER$3?this.forRange(waterPlot,a,e,t):n===FERTILIZE$1?this.forRange(fertilizePlot,a,e,t):n===SET_SPRINKLER$1?this.setSprinkler(e,t):n===SET_SCARECROW$1?this.setScarecrow(e,t):n===SET_LIGHTNING_ROD$1&&this.setLightningRod(e,t)},handleFieldActionRangeChange(e){this.setState(()=>({hoveredPlotRangeSize:e}))},handleClickEndDayButton(){this.incrementDay(),document.activeElement?.blur()},handleAddMoneyClick(e){this.setState(({money:t})=>({money:moneyTotal(t,e)}))},handleClearPersistedDataClick(){this.clearPersistedData()},handleWaterAllPlotsClick(){this.waterAllPlots(this.state)},handleFieldPurchase(e){this.purchaseField(e)},handleForestPurchase(e){this.purchaseForest(e)},handleForestPlotClick(e,t){let n=this.state.forest[t]?.[e];if(this.state.fieldMode===CHOP$2){isPlantedTree(n)&&this.chopForestPlot(e,t);return}if(this.state.fieldMode===FERTILIZE$1){isPlantedTree(n)&&this.mulchForestPlot(e,t);return}if(!n){let{selectedForestItemId:n,inventory:a}=this.state;n&&a.some(({id:e})=>e===n)&&this.plantTreeInPlot(e,t,n);return}this.state.fieldMode===HARVEST_FRUIT$2&&isPlantedTree(n)&&getTreeLifeStage(n)===GROWN$4&&this.harvestForestPlot(e,t)},handleCombinePurchase(e){this.purchaseCombine(e)},handleComposterPurchase(e){this.purchaseComposter(e)},handleSmelterPurchase(e){this.purchaseSmelter(e)},handleWoodChipperPurchase(e){this.purchaseWoodChipper(e)},handleCowPenPurchase(e){this.purchaseCowPen(e)},handleCellarPurchase(e){this.purchaseCellar(e)},handleStorageExpansionPurchase(){this.purchaseStorageExpansion()},handleMenuToggle(e=void 0){this.setState(({isMenuOpen:t})=>({isMenuOpen:e??!t}))},handleClickNextMenuButton(){this.focusNextView()},handleClickPreviousMenuButton(){this.focusPreviousView()},handleCowSelect(e){this.selectCow(e)},handleCowClick(e){this.selectCow(e),this.hugCow(e.id)},handleCowPenUnmount(){this.setState({selectedCowId:``})},handleClickDialogViewButton(e){this.openDialogView(e)},handleCloseDialogView(){this.state.isAwaitingCowTradeRequest||this.closeDialogView()},handleDialogViewExited(){this.setState({currentDialogView:dialogView.NONE})},handleClickLoanPaydownButton(e){this.adjustLoan(-e)},handleClickTakeOutLoanButton(e){this.adjustLoan(e)},handleExportDataClick(){let e=new Blob([JSON.stringify(reduceByPersistedKeys(this.state),null,2)],{type:`application/json;charset=utf-8`}),[t]=new Date().toISOString().split(`T`);(0,import_FileSaver_min.saveAs)(e,`farmhand-${t}.json`)},handleImportDataClick([e]){let[,t]=e,n=new FileReader;n.addEventListener(`loadend`,e=>{try{let t=e.target,n=String(t?.result),a=reduceByPersistedKeys(transformStateDataForImport(JSON.parse(n)));if(Object.keys(a).some(e=>typeof this.state[e]!=typeof a[e]))throw Error(INVALID_DATA_PROVIDED);this.setState({...transformStateDataForImport({...this.createInitialState?this.createInitialState():{},...a}),hasBooted:!0}),this.showNotification(`Data loaded!`,`success`)}catch(e){console.error(e),this.showNotification(e.message,`error`)}}),n.readAsText(t.slice())},async handleSaveButtonClick(){await this.persistState(),this.showNotification(PROGRESS_SAVED_MESSAGE,`info`)},handleFarmNameUpdate(e){this.setState({farmName:e})},handleCombineEnabledChange(e,t){this.setState({isCombineEnabled:t})},handleUseAlternateEndDayButtonPositionChange(e,t){this.setState({useAlternateEndDayButtonPosition:t})},handleAllowCustomPeerCowNamesChange(e,t){this.setState({allowCustomPeerCowNames:t})},handleShowHomeScreenChange(e,t){this.state.stageFocus===stageFocusType.HOME&&!t&&this.focusNextView(),this.setState({showHomeScreen:t})},handleShowNotificationsChange({target:{checked:e}}){this.setState({showNotifications:e})},handleClickNotificationIndicator(){this.openDialogView(dialogView.FARMERS_LOG)},handleOnlineToggleChange(e){e||this.showNotification(DISCONNECTING_FROM_SERVER,`info`),this.setState(({room:t,cowIdOfferedForTrade:n})=>e?{redirect:withCurrentHashQuery(`/online/${encodeURIComponent(t)}`),cowIdOfferedForTrade:n,isOnline:!0}:{redirect:withCurrentHashQuery(`/`),cowIdOfferedForTrade:``})},handleRoomChange(e){this.setState(()=>({room:e,redirect:withCurrentHashQuery(`/online/${encodeURIComponent(e.trim()||`global`)}`)}))},handleActivePlayerButtonClick(){this.openDialogView(dialogView.ONLINE_PEERS)},handleRNGSeedChange(e){let{origin:t,pathname:n,search:a,hash:o}=import_window.default.location,s=new URLSearchParams(a),l=e.trim();l===``?(randomNumberService.unseedRandomNumber(),s.delete(`seed`),this.showNotification(`Random seed reset`,`info`)):(randomNumberService.seedRandomNumber(l),s.set(`seed`,l),this.showNotification(`Random seed set to "${l}"`,`success`));let u=s.toString(),d=`${t}${n}${u.length>0?`?${u}`:``}${o}`;import_window.default.history.replaceState({},``,d)},handleChatRoomOpenStateChange(e){this.setState({isChatOpen:e})},handleGameUpdateAvailable(e){this.showNotification(UPDATE_AVAILABLE,`success`,()=>{e(!0)})}},createContextData=()=>({gameState:{viewTitle:``,viewList:[],features:{},blockInput:!1,shopInventory:[],isChatAvailable:!1,playerInventory:[],levelEntitlements:{items:{},tools:{},sprinklerRange:0,stageFocusType:{}},fieldToolInventory:[],mulchInventory:[],plantableCropInventory:[],plantableTreeInventory:[],playerInventoryQuantities:{},activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:`NONE`,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:0},cowInventory:[],cowColorsPurchased:{BLUE:0,BROWN:0,GREEN:0,ORANGE:0,PURPLE:0,RAINBOW:0,WHITE:0,YELLOW:0},cowIdOfferedForTrade:``,cowsSold:{},cowsTraded:0,cowTradeTimeoutId:null,cropsHarvested:{ASPARAGUS:0,CARROT:0,CORN:0,GARLIC:0,GRAPE:0,JALAPENO:0,OLIVE:0,ONION:0,PEA:0,POTATO:0,PUMPKIN:0,SOYBEAN:0,SPINACH:0,SUNFLOWER:0,STRAWBERRY:0,SWEET_POTATO:0,TOMATO:0,WATERMELON:0,WHEAT:0,WEED:0},dayCount:0,experience:0,farmName:``,field:[[]],forest:[[]],treesChopped:0,treeFruitsHarvested:{},mulchApplied:{},fieldMode:`OBSERVE`,getCowAccept:()=>{},getCowReject:()=>{},getCowTradeRequest:()=>{},getPeerMetadata:()=>{},hasBooted:!0,hasProducedRainbowFertilizer:!1,heartbeatTimeoutId:-1,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:``,inventory:[{id:scarecrow.id,quantity:1}],inventoryLimit:-1,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!0,isMenuOpen:!1,itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:!0,isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:0,loansTakenOut:0,money:0,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendCowAccept:()=>{},sendCowReject:()=>{},sendCowTradeRequest:()=>{},sendPeerMetadata:()=>{},selectedCowId:``,selectedForestItemId:``,selectedItemId:``,priceCrashes:{},priceSurges:{},purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,purchasedWoodChipper:0,profitabilityStreak:0,recipesMade:{},record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:``,room:``,showHomeScreen:!0,showNotifications:!0,stageFocus:`HOME`,todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{AXE:`UNAVAILABLE`,PICKER_POLE:`UNAVAILABLE`,SCYTHE:`DEFAULT`,SHOVEL:`DEFAULT`,HOE:`DEFAULT`,WATERING_CAN:`DEFAULT`},valueAdjustments:{},version:`1.0.0`,todaysNotifications:[],useAlternateEndDayButtonPosition:!1},handlers:{...ui_events_default,debounced:{...ui_events_default}}}),FarmhandContext=(0,import_react$24.createContext)(createContextData()),getDayOfSeason=e=>e%15+1,usePrefersReducedMotion=()=>{let[e,t]=(0,import_react$24.useState)(()=>typeof window>`u`||!window.matchMedia?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches);return(0,import_react$24.useEffect)(()=>{if(typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),n=e=>{t(e.matches)};return e.addEventListener?e.addEventListener(`change`,n):`addListener`in e&&e.addListener(n),()=>{e.removeEventListener?e.removeEventListener(`change`,n):`removeListener`in e&&e.removeListener(n)}},[]),e},MoneyDisplay=({money:e})=>{let t=`rgb(255, 255, 255)`,n=usePrefersReducedMotion(),[a,o]=(0,import_react$24.useState)(e),[s,l]=(0,import_react$24.useState)(t),u=(0,import_react$24.useRef)(e),d=(0,import_react$24.useRef)(null);return(0,import_react$24.useEffect)(()=>{if(d.current?.cancel(),d.current=null,n||u.current===e){u.current=e,o(e),l(t);return}let a=e>u.current?`rgb(0, 255, 0)`:`rgb(255, 0, 0)`;return d.current=(0,import_shifty.tween)({easing:`easeOutQuad`,duration:750,render:({color:e,money:t})=>{l(String(e)),o(Number(t))},from:{color:a,money:u.current},to:{color:t,money:e}}),u.current=e,()=>{d.current?.cancel(),d.current=null}},[e,n]),(0,import_jsx_runtime.jsx)(`span`,{style:{color:s},children:moneyString(a)})},AppBar=({dayCount:e,handleClickNotificationIndicator:t,money:n,showNotifications:a,todaysNotifications:o,viewTitle:s,areAnyNotificationsErrors:l=o.some(({severity:e})=>e===`error`)})=>(0,import_jsx_runtime.jsx)(AppBar$1,{className:`AppBar top-level`,position:`fixed`,sx:{"& .toolbar":{display:`flex`,"& h2":{color:`#fff`,fontFamily:`"Francois One", monospace`,fontSize:`1.2em`},"& .stage-header":{display:`none`,marginLeft:`1em`,[`@media (min-width: ${breakpoints.largePhone}px)`]:{display:`block`}},"& .season-display":{marginLeft:`1em`,[`@media (min-width: ${breakpoints.largePhone}px)`]:{position:`absolute`,left:`50%`,marginLeft:0,transform:`translateX(-50%)`}},"& .money-display":{position:`absolute`,right:`1em`},"& .notification-indicator-container":{display:`flex`,"& .error-indicator":{marginLeft:`1em`}}}},children:(0,import_jsx_runtime.jsxs)(Toolbar,{className:`toolbar`,children:[!a&&(0,import_jsx_runtime.jsxs)(`div`,{className:`notification-indicator-container`,onClick:t,children:[(0,import_jsx_runtime.jsx)(Typography,{children:(0,import_jsx_runtime.jsx)(StepIcon,{icon:o.length})}),l&&(0,import_jsx_runtime.jsx)(Typography,{className:`error-indicator`,children:(0,import_jsx_runtime.jsx)(StepIcon,{error:!0,icon:``})})]}),(0,import_jsx_runtime.jsx)(Typography,{className:`stage-header`,variant:`h2`,children:s}),(0,import_jsx_runtime.jsx)(Typography,{className:`season-display`,variant:`h2`,children:`Day ${getDayOfSeason(e)} of ${seasonNameMap[getCurrentSeason(e)]}`}),(0,import_jsx_runtime.jsx)(Typography,{className:`money-display`,variant:`h2`,children:(0,import_jsx_runtime.jsx)(MoneyDisplay,{money:n})})]})});AppBar.propTypes={dayCount:import_prop_types$1.number.isRequired,handleClickNotificationIndicator:import_prop_types$1.func.isRequired,money:import_prop_types$1.number.isRequired,showNotifications:import_prop_types$1.bool.isRequired,todaysNotifications:import_prop_types$1.array.isRequired,viewTitle:import_prop_types$1.string.isRequired};function Consumer$29(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(AppBar,{...t,...n,...e})})}var require_lib$5=__commonJSMin(((e,t)=>{function n(e){return e&&typeof e==`object`&&`default`in e?e.default:e}var a=require_react(),o=n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var u=!!(typeof window<`u`&&window.document&&window.document.createElement);function d(e,t,n){if(typeof e!=`function`)throw Error(`Expected reducePropsToState to be a function.`);if(typeof t!=`function`)throw Error(`Expected handleStateChangeOnClient to be a function.`);if(n!==void 0&&typeof n!=`function`)throw Error(`Expected mapStateOnServer to either be undefined or a function.`);function d(e){return e.displayName||e.name||`Component`}return function(f){if(typeof f!=`function`)throw Error(`Expected WrappedComponent to be a React component.`);var m=[],h;function v(){h=e(m.map(function(e){return e.props})),y.canUseDOM?t(h):n&&(h=n(h))}var y=function(e){l(t,e);function t(){return e.apply(this,arguments)||this}t.peek=function(){return h},t.rewind=function(){if(t.canUseDOM)throw Error(`You may only call rewind() on the server. Call peek() to read the current state.`);var e=h;return h=void 0,m=[],e};var n=t.prototype;return n.UNSAFE_componentWillMount=function(){m.push(this),v()},n.componentDidUpdate=function(){v()},n.componentWillUnmount=function(){var e=m.indexOf(this);m.splice(e,1),v()},n.render=function(){return o.createElement(f,this.props)},t}(a.PureComponent);return s(y,`displayName`,`SideEffect(`+d(f)+`)`),s(y,`canUseDOM`,u),y}}t.exports=d})),require_react_fast_compare=__commonJSMin(((e,t)=>{var n=typeof Element<`u`,a=typeof Map==`function`,o=typeof Set==`function`,s=typeof ArrayBuffer==`function`&&!!ArrayBuffer.isView;function l(e,t){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var u,d,f;if(Array.isArray(e)){if(u=e.length,u!=t.length)return!1;for(d=u;d--!==0;)if(!l(e[d],t[d]))return!1;return!0}var m;if(a&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(m=e.entries();!(d=m.next()).done;)if(!t.has(d.value[0]))return!1;for(m=e.entries();!(d=m.next()).done;)if(!l(d.value[1],t.get(d.value[0])))return!1;return!0}if(o&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(m=e.entries();!(d=m.next()).done;)if(!t.has(d.value[0]))return!1;return!0}if(s&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(u=e.length,u!=t.length)return!1;for(d=u;d--!==0;)if(e[d]!==t[d])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf==`function`&&typeof t.valueOf==`function`)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString==`function`&&typeof t.toString==`function`)return e.toString()===t.toString();if(f=Object.keys(e),u=f.length,u!==Object.keys(t).length)return!1;for(d=u;d--!==0;)if(!Object.prototype.hasOwnProperty.call(t,f[d]))return!1;if(n&&e instanceof Element)return!1;for(d=u;d--!==0;)if(!((f[d]===`_owner`||f[d]===`__v`||f[d]===`__o`)&&e.$$typeof)&&!l(e[f[d]],t[f[d]]))return!1;return!0}return e!==e&&t!==t}t.exports=function(e,t){try{return l(e,t)}catch(e){if((e.message||``).match(/stack|recursion/i))return console.warn(`react-fast-compare cannot handle circular refs`),!1;throw e}}})),import_lib$1=__toESM(require_lib$5()),import_react_fast_compare=__toESM(require_react_fast_compare()),import_object_assign=__toESM(require_object_assign()),ATTRIBUTE_NAMES={BODY:`bodyAttributes`,HTML:`htmlAttributes`,TITLE:`titleAttributes`},TAG_NAMES={BASE:`base`,BODY:`body`,HEAD:`head`,HTML:`html`,LINK:`link`,META:`meta`,NOSCRIPT:`noscript`,SCRIPT:`script`,STYLE:`style`,TITLE:`title`};Object.keys(TAG_NAMES).map(function(e){return TAG_NAMES[e]});var TAG_PROPERTIES={CHARSET:`charset`,CSS_TEXT:`cssText`,HREF:`href`,HTTPEQUIV:`http-equiv`,INNER_HTML:`innerHTML`,ITEM_PROP:`itemprop`,NAME:`name`,PROPERTY:`property`,REL:`rel`,SRC:`src`,TARGET:`target`},REACT_TAG_MAP={accesskey:`accessKey`,charset:`charSet`,class:`className`,contenteditable:`contentEditable`,contextmenu:`contextMenu`,"http-equiv":`httpEquiv`,itemprop:`itemProp`,tabindex:`tabIndex`},HELMET_PROPS={DEFAULT_TITLE:`defaultTitle`,DEFER:`defer`,ENCODE_SPECIAL_CHARACTERS:`encodeSpecialCharacters`,ON_CHANGE_CLIENT_STATE:`onChangeClientState`,TITLE_TEMPLATE:`titleTemplate`},HTML_TAG_MAP=Object.keys(REACT_TAG_MAP).reduce(function(e,t){return e[REACT_TAG_MAP[t]]=t,e},{}),SELF_CLOSING_TAGS=[TAG_NAMES.NOSCRIPT,TAG_NAMES.SCRIPT,TAG_NAMES.STYLE],HELMET_ATTRIBUTE=`data-react-helmet`,_typeof$3=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},classCallCheck=function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)},createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},inherits=function(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},objectWithoutProperties$1=function(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n},possibleConstructorReturn=function(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e},encodeSpecialCharacters=function(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!1?String(e):String(e).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)},getTitleFromPropsList=function(e){var t=getInnermostProperty(e,TAG_NAMES.TITLE),n=getInnermostProperty(e,HELMET_PROPS.TITLE_TEMPLATE);if(n&&t)return n.replace(/%s/g,function(){return Array.isArray(t)?t.join(``):t});var a=getInnermostProperty(e,HELMET_PROPS.DEFAULT_TITLE);return t||a||void 0},getOnChangeClientState=function(e){return getInnermostProperty(e,HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},getAttributesFromPropsList=function(e,t){return t.filter(function(t){return t[e]!==void 0}).map(function(t){return t[e]}).reduce(function(e,t){return _extends({},e,t)},{})},getBaseTagFromPropsList=function(e,t){return t.filter(function(e){return e[TAG_NAMES.BASE]!==void 0}).map(function(e){return e[TAG_NAMES.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var a=Object.keys(n),o=0;o<a.length;o++){var s=a[o].toLowerCase();if(e.indexOf(s)!==-1&&n[s])return t.concat(n)}return t},[])},getTagsFromPropsList=function(e,t,n){var a={};return n.filter(function(t){return Array.isArray(t[e])?!0:(t[e]!==void 0&&warn$1(`Helmet: `+e+` should be of type "Array". Instead found type "`+_typeof$3(t[e])+`"`),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var o={};n.filter(function(e){for(var n=void 0,s=Object.keys(e),l=0;l<s.length;l++){var u=s[l],d=u.toLowerCase();t.indexOf(d)!==-1&&!(n===TAG_PROPERTIES.REL&&e[n].toLowerCase()===`canonical`)&&!(d===TAG_PROPERTIES.REL&&e[d].toLowerCase()===`stylesheet`)&&(n=d),t.indexOf(u)!==-1&&(u===TAG_PROPERTIES.INNER_HTML||u===TAG_PROPERTIES.CSS_TEXT||u===TAG_PROPERTIES.ITEM_PROP)&&(n=u)}if(!n||!e[n])return!1;var f=e[n].toLowerCase();return a[n]||(a[n]={}),o[n]||(o[n]={}),a[n][f]?!1:(o[n][f]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var s=Object.keys(o),l=0;l<s.length;l++){var u=s[l];a[u]=(0,import_object_assign.default)({},a[u],o[u])}return e},[]).reverse()},getInnermostProperty=function(e,t){for(var n=e.length-1;n>=0;n--){var a=e[n];if(a.hasOwnProperty(t))return a[t]}return null},reducePropsToState=function(e){return{baseTag:getBaseTagFromPropsList([TAG_PROPERTIES.HREF,TAG_PROPERTIES.TARGET],e),bodyAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY,e),defer:getInnermostProperty(e,HELMET_PROPS.DEFER),encode:getInnermostProperty(e,HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML,e),linkTags:getTagsFromPropsList(TAG_NAMES.LINK,[TAG_PROPERTIES.REL,TAG_PROPERTIES.HREF],e),metaTags:getTagsFromPropsList(TAG_NAMES.META,[TAG_PROPERTIES.NAME,TAG_PROPERTIES.CHARSET,TAG_PROPERTIES.HTTPEQUIV,TAG_PROPERTIES.PROPERTY,TAG_PROPERTIES.ITEM_PROP],e),noscriptTags:getTagsFromPropsList(TAG_NAMES.NOSCRIPT,[TAG_PROPERTIES.INNER_HTML],e),onChangeClientState:getOnChangeClientState(e),scriptTags:getTagsFromPropsList(TAG_NAMES.SCRIPT,[TAG_PROPERTIES.SRC,TAG_PROPERTIES.INNER_HTML],e),styleTags:getTagsFromPropsList(TAG_NAMES.STYLE,[TAG_PROPERTIES.CSS_TEXT],e),title:getTitleFromPropsList(e),titleAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE,e)}},rafPolyfill=function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout(function(){rafPolyfill(t)},0)}}(),cafPolyfill=function(e){return clearTimeout(e)},requestAnimationFrame$1=typeof window<`u`?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||rafPolyfill:{}.requestAnimationFrame||rafPolyfill,cancelAnimationFrame$1=typeof window<`u`?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||cafPolyfill:{}.cancelAnimationFrame||cafPolyfill,warn$1=function(e){return console&&typeof console.warn==`function`&&console.warn(e)},_helmetCallback=null,handleClientStateChange=function(e){_helmetCallback&&cancelAnimationFrame$1(_helmetCallback),e.defer?_helmetCallback=requestAnimationFrame$1(function(){commitTagChanges(e,function(){_helmetCallback=null})}):(commitTagChanges(e),_helmetCallback=null)},commitTagChanges=function(e,t){var n=e.baseTag,a=e.bodyAttributes,o=e.htmlAttributes,s=e.linkTags,l=e.metaTags,u=e.noscriptTags,d=e.onChangeClientState,f=e.scriptTags,m=e.styleTags,h=e.title,v=e.titleAttributes;updateAttributes(TAG_NAMES.BODY,a),updateAttributes(TAG_NAMES.HTML,o),updateTitle(h,v);var y={baseTag:updateTags(TAG_NAMES.BASE,n),linkTags:updateTags(TAG_NAMES.LINK,s),metaTags:updateTags(TAG_NAMES.META,l),noscriptTags:updateTags(TAG_NAMES.NOSCRIPT,u),scriptTags:updateTags(TAG_NAMES.SCRIPT,f),styleTags:updateTags(TAG_NAMES.STYLE,m)},b={},x={};Object.keys(y).forEach(function(e){var t=y[e],n=t.newTags,a=t.oldTags;n.length&&(b[e]=n),a.length&&(x[e]=y[e].oldTags)}),t&&t(),d(e,b,x)},flattenArray=function(e){return Array.isArray(e)?e.join(``):e},updateTitle=function(e,t){e!==void 0&&document.title!==e&&(document.title=flattenArray(e)),updateAttributes(TAG_NAMES.TITLE,t)},updateAttributes=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var a=n.getAttribute(HELMET_ATTRIBUTE),o=a?a.split(`,`):[],s=[].concat(o),l=Object.keys(t),u=0;u<l.length;u++){var d=l[u],f=t[d]||``;n.getAttribute(d)!==f&&n.setAttribute(d,f),o.indexOf(d)===-1&&o.push(d);var m=s.indexOf(d);m!==-1&&s.splice(m,1)}for(var h=s.length-1;h>=0;h--)n.removeAttribute(s[h]);o.length===s.length?n.removeAttribute(HELMET_ATTRIBUTE):n.getAttribute(HELMET_ATTRIBUTE)!==l.join(`,`)&&n.setAttribute(HELMET_ATTRIBUTE,l.join(`,`))}},updateTags=function(e,t){var n=document.head||document.querySelector(TAG_NAMES.HEAD),a=n.querySelectorAll(e+`[`+HELMET_ATTRIBUTE+`]`),o=Array.prototype.slice.call(a),s=[],l=void 0;return t&&t.length&&t.forEach(function(t){var n=document.createElement(e);for(var a in t)if(t.hasOwnProperty(a))if(a===TAG_PROPERTIES.INNER_HTML)n.innerHTML=t.innerHTML;else if(a===TAG_PROPERTIES.CSS_TEXT)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var u=t[a]===void 0?``:t[a];n.setAttribute(a,u)}n.setAttribute(HELMET_ATTRIBUTE,`true`),o.some(function(e,t){return l=t,n.isEqualNode(e)})?o.splice(l,1):s.push(n)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),s.forEach(function(e){return n.appendChild(e)}),{oldTags:o,newTags:s}},generateElementAttributesAsString=function(e){return Object.keys(e).reduce(function(t,n){var a=e[n]===void 0?``+n:n+`="`+e[n]+`"`;return t?t+` `+a:a},``)},generateTitleAsString=function(e,t,n,a){var o=generateElementAttributesAsString(n),s=flattenArray(t);return o?`<`+e+` `+HELMET_ATTRIBUTE+`="true" `+o+`>`+encodeSpecialCharacters(s,a)+`</`+e+`>`:`<`+e+` `+HELMET_ATTRIBUTE+`="true">`+encodeSpecialCharacters(s,a)+`</`+e+`>`},generateTagsAsString=function(e,t,n){return t.reduce(function(t,a){var o=Object.keys(a).filter(function(e){return!(e===TAG_PROPERTIES.INNER_HTML||e===TAG_PROPERTIES.CSS_TEXT)}).reduce(function(e,t){var o=a[t]===void 0?t:t+`="`+encodeSpecialCharacters(a[t],n)+`"`;return e?e+` `+o:o},``),s=a.innerHTML||a.cssText||``,l=SELF_CLOSING_TAGS.indexOf(e)===-1;return t+`<`+e+` `+HELMET_ATTRIBUTE+`="true" `+o+(l?`/>`:`>`+s+`</`+e+`>`)},``)},convertElementAttributestoReactProps=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[REACT_TAG_MAP[n]||n]=e[n],t},t)},convertReactPropstoHtmlAttributes=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[HTML_TAG_MAP[n]||n]=e[n],t},t)},generateTitleAsReactComponent=function(e,t,n){var a,o=convertElementAttributestoReactProps(n,(a={key:t},a[HELMET_ATTRIBUTE]=!0,a));return[import_react$24.createElement(TAG_NAMES.TITLE,o,t)]},generateTagsAsReactComponent=function(e,t){return t.map(function(t,n){var a,o=(a={key:n},a[HELMET_ATTRIBUTE]=!0,a);return Object.keys(t).forEach(function(e){var n=REACT_TAG_MAP[e]||e;n===TAG_PROPERTIES.INNER_HTML||n===TAG_PROPERTIES.CSS_TEXT?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]}),import_react$24.createElement(e,o)})},getMethodsForTag=function(e,t,n){switch(e){case TAG_NAMES.TITLE:return{toComponent:function(){return generateTitleAsReactComponent(e,t.title,t.titleAttributes,n)},toString:function(){return generateTitleAsString(e,t.title,t.titleAttributes,n)}};case ATTRIBUTE_NAMES.BODY:case ATTRIBUTE_NAMES.HTML:return{toComponent:function(){return convertElementAttributestoReactProps(t)},toString:function(){return generateElementAttributesAsString(t)}};default:return{toComponent:function(){return generateTagsAsReactComponent(e,t)},toString:function(){return generateTagsAsString(e,t,n)}}}},mapStateOnServer=function(e){var t=e.baseTag,n=e.bodyAttributes,a=e.encode,o=e.htmlAttributes,s=e.linkTags,l=e.metaTags,u=e.noscriptTags,d=e.scriptTags,f=e.styleTags,m=e.title,h=m===void 0?``:m,v=e.titleAttributes;return{base:getMethodsForTag(TAG_NAMES.BASE,t,a),bodyAttributes:getMethodsForTag(ATTRIBUTE_NAMES.BODY,n,a),htmlAttributes:getMethodsForTag(ATTRIBUTE_NAMES.HTML,o,a),link:getMethodsForTag(TAG_NAMES.LINK,s,a),meta:getMethodsForTag(TAG_NAMES.META,l,a),noscript:getMethodsForTag(TAG_NAMES.NOSCRIPT,u,a),script:getMethodsForTag(TAG_NAMES.SCRIPT,d,a),style:getMethodsForTag(TAG_NAMES.STYLE,f,a),title:getMethodsForTag(TAG_NAMES.TITLE,{title:h,titleAttributes:v},a)}},HelmetExport=function(e){var t,n;return n=t=function(t){inherits(n,t);function n(){return classCallCheck(this,n),possibleConstructorReturn(this,t.apply(this,arguments))}return n.prototype.shouldComponentUpdate=function(e){return!(0,import_react_fast_compare.default)(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case TAG_NAMES.SCRIPT:case TAG_NAMES.NOSCRIPT:return{innerHTML:t};case TAG_NAMES.STYLE:return{cssText:t}}throw Error(`<`+e.type+` /> elements are self-closing and can not contain children. Refer to our API for more information.`)},n.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,a=e.arrayTypeChildren,o=e.newChildProps,s=e.nestedChildren;return _extends({},a,(t={},t[n.type]=[].concat(a[n.type]||[],[_extends({},o,this.mapNestedChildrenToProps(n,s))]),t))},n.prototype.mapObjectTypeChildren=function(e){var t,n,a=e.child,o=e.newProps,s=e.newChildProps,l=e.nestedChildren;switch(a.type){case TAG_NAMES.TITLE:return _extends({},o,(t={},t[a.type]=l,t.titleAttributes=_extends({},s),t));case TAG_NAMES.BODY:return _extends({},o,{bodyAttributes:_extends({},s)});case TAG_NAMES.HTML:return _extends({},o,{htmlAttributes:_extends({},s)})}return _extends({},o,(n={},n[a.type]=_extends({},s),n))},n.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=_extends({},t);return Object.keys(e).forEach(function(t){var a;n=_extends({},n,(a={},a[t]=e[t],a))}),n},n.prototype.warnOnInvalidChildren=function(e,t){return!0},n.prototype.mapChildrenToProps=function(e,t){var n=this,a={};return import_react$24.Children.forEach(e,function(e){if(!(!e||!e.props)){var o=e.props,s=o.children,l=convertReactPropstoHtmlAttributes(objectWithoutProperties$1(o,[`children`]));switch(n.warnOnInvalidChildren(e,s),e.type){case TAG_NAMES.LINK:case TAG_NAMES.META:case TAG_NAMES.NOSCRIPT:case TAG_NAMES.SCRIPT:case TAG_NAMES.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:s});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:s});break}}}),t=this.mapArrayTypeChildrenToProps(a,t),t},n.prototype.render=function(){var t=this.props,n=t.children,a=_extends({},objectWithoutProperties$1(t,[`children`]));return n&&(a=this.mapChildrenToProps(n,a)),import_react$24.createElement(e,a)},createClass(n,null,[{key:`canUseDOM`,set:function(t){e.canUseDOM=t}}]),n}(import_react$24.Component),t.propTypes={base:import_prop_types$1.default.object,bodyAttributes:import_prop_types$1.default.object,children:import_prop_types$1.default.oneOfType([import_prop_types$1.default.arrayOf(import_prop_types$1.default.node),import_prop_types$1.default.node]),defaultTitle:import_prop_types$1.default.string,defer:import_prop_types$1.default.bool,encodeSpecialCharacters:import_prop_types$1.default.bool,htmlAttributes:import_prop_types$1.default.object,link:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),meta:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),noscript:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),onChangeClientState:import_prop_types$1.default.func,script:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),style:import_prop_types$1.default.arrayOf(import_prop_types$1.default.object),title:import_prop_types$1.default.string,titleAttributes:import_prop_types$1.default.object,titleTemplate:import_prop_types$1.default.string},t.defaultProps={defer:!0,encodeSpecialCharacters:!0},t.peek=e.peek,t.rewind=function(){var t=e.rewind();return t||=mapStateOnServer({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:``,titleAttributes:{}}),t},n}((0,import_lib$1.default)(reducePropsToState,handleClientStateChange,mapStateOnServer)(function(){return null}));HelmetExport.renderStatic=HelmetExport.rewind,init_generateUtilityClasses(),init_generateUtilityClass();function getButtonUtilityClass(e){return generateUtilityClass(`MuiButton`,e)}var buttonClasses=generateUtilityClasses(`MuiButton`,`root.text.textInherit.textPrimary.textSecondary.textSuccess.textError.textInfo.textWarning.outlined.outlinedInherit.outlinedPrimary.outlinedSecondary.outlinedSuccess.outlinedError.outlinedInfo.outlinedWarning.contained.containedInherit.containedPrimary.containedSecondary.containedSuccess.containedError.containedInfo.containedWarning.disableElevation.focusVisible.disabled.colorInherit.colorPrimary.colorSecondary.colorSuccess.colorError.colorInfo.colorWarning.textSizeSmall.textSizeMedium.textSizeLarge.outlinedSizeSmall.outlinedSizeMedium.outlinedSizeLarge.containedSizeSmall.containedSizeMedium.containedSizeLarge.sizeMedium.sizeSmall.sizeLarge.fullWidth.startIcon.endIcon.icon.iconSizeSmall.iconSizeMedium.iconSizeLarge`.split(`.`)),ButtonGroupContext=import_react$24.createContext({}),ButtonGroupButtonContext=import_react$24.createContext(void 0);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_resolveProps(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$52=[`children`,`color`,`component`,`className`,`disabled`,`disableElevation`,`disableFocusRipple`,`endIcon`,`focusVisibleClassName`,`fullWidth`,`size`,`startIcon`,`type`,`variant`],useUtilityClasses$46=e=>{let{color:t,disableElevation:n,fullWidth:a,size:o,variant:s,classes:l}=e;return _extends$3({},l,composeClasses({root:[`root`,s,`${s}${capitalize_default(t)}`,`size${capitalize_default(o)}`,`${s}Size${capitalize_default(o)}`,`color${capitalize_default(t)}`,n&&`disableElevation`,a&&`fullWidth`],label:[`label`],startIcon:[`icon`,`startIcon`,`iconSize${capitalize_default(o)}`],endIcon:[`icon`,`endIcon`,`iconSize${capitalize_default(o)}`]},getButtonUtilityClass,l))},commonIconStyles=e=>_extends$3({},e.size===`small`&&{"& > *:nth-of-type(1)":{fontSize:18}},e.size===`medium`&&{"& > *:nth-of-type(1)":{fontSize:20}},e.size===`large`&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$1(ButtonBase,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${capitalize_default(n.color)}`],t[`size${capitalize_default(n.size)}`],t[`${n.variant}Size${capitalize_default(n.size)}`],n.color===`inherit`&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})(({theme:e,ownerState:t})=>{var n,a;let o=e.palette.mode===`light`?e.palette.grey[300]:e.palette.grey[800],s=e.palette.mode===`light`?e.palette.grey.A100:e.palette.grey[700];return _extends$3({},e.typography.button,{minWidth:64,padding:`6px 16px`,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`,`color`],{duration:e.transitions.duration.short}),"&:hover":_extends$3({textDecoration:`none`,backgroundColor:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}},t.variant===`text`&&t.color!==`inherit`&&{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}},t.variant===`outlined`&&t.color!==`inherit`&&{border:`1px solid ${(e.vars||e).palette[t.color].main}`,backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}},t.variant===`contained`&&{backgroundColor:e.vars?e.vars.palette.Button.inheritContainedHoverBg:s,boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2],backgroundColor:(e.vars||e).palette.grey[300]}},t.variant===`contained`&&t.color!==`inherit`&&{backgroundColor:(e.vars||e).palette[t.color].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t.color].main}}),"&:active":_extends$3({},t.variant===`contained`&&{boxShadow:(e.vars||e).shadows[8]}),[`&.${buttonClasses.focusVisible}`]:_extends$3({},t.variant===`contained`&&{boxShadow:(e.vars||e).shadows[6]}),[`&.${buttonClasses.disabled}`]:_extends$3({color:(e.vars||e).palette.action.disabled},t.variant===`outlined`&&{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`},t.variant===`contained`&&{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground})},t.variant===`text`&&{padding:`6px 8px`},t.variant===`text`&&t.color!==`inherit`&&{color:(e.vars||e).palette[t.color].main},t.variant===`outlined`&&{padding:`5px 15px`,border:`1px solid currentColor`},t.variant===`outlined`&&t.color!==`inherit`&&{color:(e.vars||e).palette[t.color].main,border:e.vars?`1px solid rgba(${e.vars.palette[t.color].mainChannel} / 0.5)`:`1px solid ${(0,import_colorManipulator.alpha)(e.palette[t.color].main,.5)}`},t.variant===`contained`&&{color:e.vars?e.vars.palette.text.primary:(a=e.palette).getContrastText?.call(a,e.palette.grey[300]),backgroundColor:e.vars?e.vars.palette.Button.inheritContainedBg:o,boxShadow:(e.vars||e).shadows[2]},t.variant===`contained`&&t.color!==`inherit`&&{color:(e.vars||e).palette[t.color].contrastText,backgroundColor:(e.vars||e).palette[t.color].main},t.color===`inherit`&&{color:`inherit`,borderColor:`currentColor`},t.size===`small`&&t.variant===`text`&&{padding:`4px 5px`,fontSize:e.typography.pxToRem(13)},t.size===`large`&&t.variant===`text`&&{padding:`8px 11px`,fontSize:e.typography.pxToRem(15)},t.size===`small`&&t.variant===`outlined`&&{padding:`3px 9px`,fontSize:e.typography.pxToRem(13)},t.size===`large`&&t.variant===`outlined`&&{padding:`7px 21px`,fontSize:e.typography.pxToRem(15)},t.size===`small`&&t.variant===`contained`&&{padding:`4px 10px`,fontSize:e.typography.pxToRem(13)},t.size===`large`&&t.variant===`contained`&&{padding:`8px 22px`,fontSize:e.typography.pxToRem(15)},t.fullWidth&&{width:`100%`})},({ownerState:e})=>e.disableElevation&&{boxShadow:`none`,"&:hover":{boxShadow:`none`},[`&.${buttonClasses.focusVisible}`]:{boxShadow:`none`},"&:active":{boxShadow:`none`},[`&.${buttonClasses.disabled}`]:{boxShadow:`none`}}),ButtonStartIcon=styled$1(`span`,{name:`MuiButton`,slot:`StartIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.startIcon,t[`iconSize${capitalize_default(n.size)}`]]}})(({ownerState:e})=>_extends$3({display:`inherit`,marginRight:8,marginLeft:-4},e.size===`small`&&{marginLeft:-2},commonIconStyles(e))),ButtonEndIcon=styled$1(`span`,{name:`MuiButton`,slot:`EndIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.endIcon,t[`iconSize${capitalize_default(n.size)}`]]}})(({ownerState:e})=>_extends$3({display:`inherit`,marginRight:-4,marginLeft:8},e.size===`small`&&{marginRight:-2},commonIconStyles(e))),Button=import_react$24.forwardRef(function(e,t){let n=import_react$24.useContext(ButtonGroupContext),a=import_react$24.useContext(ButtonGroupButtonContext),o=useDefaultProps({props:resolveProps(n,e),name:`MuiButton`}),{children:s,color:l=`primary`,component:u=`button`,className:d,disabled:f=!1,disableElevation:m=!1,disableFocusRipple:h=!1,endIcon:v,focusVisibleClassName:y,fullWidth:b=!1,size:x=`medium`,startIcon:S,type:C,variant:T=`text`}=o,E=_objectWithoutPropertiesLoose$3(o,_excluded$52),D=_extends$3({},o,{color:l,component:u,disabled:f,disableElevation:m,disableFocusRipple:h,fullWidth:b,size:x,type:C,variant:T}),O=useUtilityClasses$46(D),k=S&&(0,import_jsx_runtime.jsx)(ButtonStartIcon,{className:O.startIcon,ownerState:D,children:S}),j=v&&(0,import_jsx_runtime.jsx)(ButtonEndIcon,{className:O.endIcon,ownerState:D,children:v}),M=a||``;return(0,import_jsx_runtime.jsxs)(ButtonRoot,_extends$3({ownerState:D,className:clsx$1(n.className,O.root,d,M),component:u,disabled:f,focusRipple:!h,focusVisibleClassName:clsx$1(O.focusVisible,y),ref:t,type:C},E,{classes:O,children:[k,s,j]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogUtilityClass(e){return generateUtilityClass(`MuiDialog`,e)}var dialogClasses=generateUtilityClasses(`MuiDialog`,[`root`,`scrollPaper`,`scrollBody`,`container`,`paper`,`paperScrollPaper`,`paperScrollBody`,`paperWidthFalse`,`paperWidthXs`,`paperWidthSm`,`paperWidthMd`,`paperWidthLg`,`paperWidthXl`,`paperFullWidth`,`paperFullScreen`]),DialogContext=import_react$24.createContext({});init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useId$1(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$51=[`aria-describedby`,`aria-labelledby`,`BackdropComponent`,`BackdropProps`,`children`,`className`,`disableEscapeKeyDown`,`fullScreen`,`fullWidth`,`maxWidth`,`onBackdropClick`,`onClick`,`onClose`,`open`,`PaperComponent`,`PaperProps`,`scroll`,`TransitionComponent`,`transitionDuration`,`TransitionProps`],DialogBackdrop=styled$1(Backdrop,{name:`MuiDialog`,slot:`Backdrop`,overrides:(e,t)=>t.backdrop})({zIndex:-1}),useUtilityClasses$45=e=>{let{classes:t,scroll:n,maxWidth:a,fullWidth:o,fullScreen:s}=e;return composeClasses({root:[`root`],container:[`container`,`scroll${capitalize_default(n)}`],paper:[`paper`,`paperScroll${capitalize_default(n)}`,`paperWidth${capitalize_default(String(a))}`,o&&`paperFullWidth`,s&&`paperFullScreen`]},getDialogUtilityClass,t)},DialogRoot=styled$1(Modal,{name:`MuiDialog`,slot:`Root`,overridesResolver:(e,t)=>t.root})({"@media print":{position:`absolute !important`}}),DialogContainer=styled$1(`div`,{name:`MuiDialog`,slot:`Container`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.container,t[`scroll${capitalize_default(n.scroll)}`]]}})(({ownerState:e})=>_extends$3({height:`100%`,"@media print":{height:`auto`},outline:0},e.scroll===`paper`&&{display:`flex`,justifyContent:`center`,alignItems:`center`},e.scroll===`body`&&{overflowY:`auto`,overflowX:`hidden`,textAlign:`center`,"&::after":{content:`""`,display:`inline-block`,verticalAlign:`middle`,height:`100%`,width:`0`}})),DialogPaper=styled$1(Paper,{name:`MuiDialog`,slot:`Paper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.paper,t[`scrollPaper${capitalize_default(n.scroll)}`],t[`paperWidth${capitalize_default(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(({theme:e,ownerState:t})=>_extends$3({margin:32,position:`relative`,overflowY:`auto`,"@media print":{overflowY:`visible`,boxShadow:`none`}},t.scroll===`paper`&&{display:`flex`,flexDirection:`column`,maxHeight:`calc(100% - 64px)`},t.scroll===`body`&&{display:`inline-block`,verticalAlign:`middle`,textAlign:`left`},!t.maxWidth&&{maxWidth:`calc(100% - 64px)`},t.maxWidth===`xs`&&{maxWidth:e.breakpoints.unit===`px`?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${dialogClasses.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:`calc(100% - 64px)`}}},t.maxWidth&&t.maxWidth!==`xs`&&{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`,[`&.${dialogClasses.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t.maxWidth]+64)]:{maxWidth:`calc(100% - 64px)`}}},t.fullWidth&&{width:`calc(100% - 64px)`},t.fullScreen&&{margin:0,width:`100%`,maxWidth:`100%`,height:`100%`,maxHeight:`none`,borderRadius:0,[`&.${dialogClasses.paperScrollBody}`]:{margin:0,maxWidth:`100%`}})),Dialog=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialog`}),a=useTheme$1(),o={enter:a.transitions.duration.enteringScreen,exit:a.transitions.duration.leavingScreen},{"aria-describedby":s,"aria-labelledby":l,BackdropComponent:u,BackdropProps:d,children:f,className:m,disableEscapeKeyDown:h=!1,fullScreen:v=!1,fullWidth:y=!1,maxWidth:b=`sm`,onBackdropClick:x,onClick:S,onClose:C,open:T,PaperComponent:E=Paper,PaperProps:D={},scroll:O=`paper`,TransitionComponent:k=Fade,transitionDuration:j=o,TransitionProps:M}=n,N=_objectWithoutPropertiesLoose$3(n,_excluded$51),F=_extends$3({},n,{disableEscapeKeyDown:h,fullScreen:v,fullWidth:y,maxWidth:b,scroll:O}),I=useUtilityClasses$45(F),L=import_react$24.useRef(),R=e=>{L.current=e.target===e.currentTarget},z=e=>{S&&S(e),L.current&&(L.current=null,x&&x(e),C&&C(e,`backdropClick`))},B=useId(l),V=import_react$24.useMemo(()=>({titleId:B}),[B]);return(0,import_jsx_runtime.jsx)(DialogRoot,_extends$3({className:clsx$1(I.root,m),closeAfterTransition:!0,components:{Backdrop:DialogBackdrop},componentsProps:{backdrop:_extends$3({transitionDuration:j,as:u},d)},disableEscapeKeyDown:h,onClose:C,open:T,ref:t,onClick:z,ownerState:F},N,{children:(0,import_jsx_runtime.jsx)(k,_extends$3({appear:!0,in:T,timeout:j,role:`presentation`},M,{children:(0,import_jsx_runtime.jsx)(DialogContainer,{className:clsx$1(I.container),onMouseDown:R,ownerState:F,children:(0,import_jsx_runtime.jsx)(DialogPaper,_extends$3({as:E,elevation:24,role:`dialog`,"aria-describedby":s,"aria-labelledby":B},D,{className:clsx$1(I.paper,D.className),ownerState:F,children:(0,import_jsx_runtime.jsx)(DialogContext.Provider,{value:V,children:f})}))})}))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogTitleUtilityClass(e){return generateUtilityClass(`MuiDialogTitle`,e)}var dialogTitleClasses=generateUtilityClasses(`MuiDialogTitle`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$50=[`className`,`id`],useUtilityClasses$44=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getDialogTitleUtilityClass,t)},DialogTitleRoot=styled$1(Typography,{name:`MuiDialogTitle`,slot:`Root`,overridesResolver:(e,t)=>t.root})({padding:`16px 24px`,flex:`0 0 auto`}),DialogTitle=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialogTitle`}),{className:a,id:o}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$50),l=n,u=useUtilityClasses$44(l),{titleId:d=o}=import_react$24.useContext(DialogContext);return(0,import_jsx_runtime.jsx)(DialogTitleRoot,_extends$3({component:`h2`,className:clsx$1(u.root,a),ownerState:l,ref:t,variant:`h6`,id:o??d},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogContentUtilityClass(e){return generateUtilityClass(`MuiDialogContent`,e)}var dialogContentClasses=generateUtilityClasses(`MuiDialogContent`,[`root`,`dividers`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$49=[`className`,`dividers`],useUtilityClasses$43=e=>{let{classes:t,dividers:n}=e;return composeClasses({root:[`root`,n&&`dividers`]},getDialogContentUtilityClass,t)},DialogContentRoot=styled$1(`div`,{name:`MuiDialogContent`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(({theme:e,ownerState:t})=>_extends$3({flex:`1 1 auto`,WebkitOverflowScrolling:`touch`,overflowY:`auto`,padding:`20px 24px`},t.dividers?{padding:`16px 24px`,borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}:{[`.${dialogTitleClasses.root} + &`]:{paddingTop:0}})),DialogContent=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialogContent`}),{className:a,dividers:o=!1}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$49),l=_extends$3({},n,{dividers:o}),u=useUtilityClasses$43(l);return(0,import_jsx_runtime.jsx)(DialogContentRoot,_extends$3({className:clsx$1(u.root,a),ownerState:l,ref:t},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getDialogActionsUtilityClass(e){return generateUtilityClass(`MuiDialogActions`,e)}var dialogActionsClasses=generateUtilityClasses(`MuiDialogActions`,[`root`,`spacing`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$48=[`className`,`disableSpacing`],useUtilityClasses$42=e=>{let{classes:t,disableSpacing:n}=e;return composeClasses({root:[`root`,!n&&`spacing`]},getDialogActionsUtilityClass,t)},DialogActionsRoot=styled$1(`div`,{name:`MuiDialogActions`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>_extends$3({display:`flex`,alignItems:`center`,padding:8,justifyContent:`flex-end`,flex:`0 0 auto`},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),DialogActions=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDialogActions`}),{className:a,disableSpacing:o=!1}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$48),l=_extends$3({},n,{disableSpacing:o}),u=useUtilityClasses$42(l);return(0,import_jsx_runtime.jsx)(DialogActionsRoot,_extends$3({className:clsx$1(u.root,a),ownerState:l,ref:t},s))}),chitchatterDomain=`https://chitchatter.im`,ChatRoom=()=>{let e=`chat-title`,t=`chat-content`,{handlers:{handleChatRoomOpenStateChange:n},gameState:{playerId:a,isChatOpen:o,room:s}}=(0,import_react$24.useContext)(FarmhandContext),l=()=>{n(!1)},u=(0,import_jsx_runtime.jsx)(`chat-room`,{"root-url":chitchatterDomain,room:`__farmhand__${s}`,"user-id":a,style:{height:`100%`,width:`100%`,border:`none`},"color-mode":`light`});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(HelmetExport,{children:(0,import_jsx_runtime.jsx)(`script`,{src:`${chitchatterDomain}/sdk.js`})}),(0,import_jsx_runtime.jsxs)(Dialog,{className:(0,import_classnames.default)(`Farmhand`,`ChatRoom`),fullWidth:!0,keepMounted:!0,fullScreen:!0,open:o,onClose:l,sx:{"& .MuiDialog-container":{padding:`1em`,height:`calc(100% - 2em)`}},"aria-describedby":e,"aria-labelledby":t,children:[(0,import_jsx_runtime.jsx)(DialogTitle,{id:e,children:`Chat room`}),(0,import_jsx_runtime.jsx)(DialogContent,{id:t,children:u}),(0,import_jsx_runtime.jsx)(DialogActions,{children:(0,import_jsx_runtime.jsx)(Button,{onClick:l,color:`primary`,autoFocus:!0,children:`Close`})})]})]})},AccordionContext=import_react$24.createContext({});init_extends(),init_objectWithoutPropertiesLoose(),init_useForkRef$1(),init_appendOwnerState(),init_resolveComponentProps(),init_mergeSlotProps();var _excluded$47=[`className`,`elementType`,`ownerState`,`externalForwardedProps`,`getSlotOwnerState`,`internalForwardedProps`],_excluded2$3=[`component`,`slots`,`slotProps`],_excluded3$1=[`component`];function useSlot(e,t){let{className:n,elementType:a,ownerState:o,externalForwardedProps:s,getSlotOwnerState:l,internalForwardedProps:u}=t,d=_objectWithoutPropertiesLoose$3(t,_excluded$47),{component:f,slots:m={[e]:void 0},slotProps:h={[e]:void 0}}=s,v=_objectWithoutPropertiesLoose$3(s,_excluded2$3),y=m[e]||a,b=resolveComponentProps(h[e],o),x=mergeSlotProps(_extends$3({className:n},d,{externalForwardedProps:e===`root`?v:void 0,externalSlotProps:b})),{props:{component:S},internalRef:C}=x,T=_objectWithoutPropertiesLoose$3(x.props,_excluded3$1),E=useForkRef(C,b?.ref,t.ref),D=l?l(T):{},O=_extends$3({},o,D),k=e===`root`?S||f:S,j=appendOwnerState(y,_extends$3({},e===`root`&&!f&&!m[e]&&u,e!==`root`&&!m[e]&&u,T,k&&{as:k},{ref:E}),O);return Object.keys(D).forEach(e=>{delete j[e]}),[y,j]}init_generateUtilityClasses(),init_generateUtilityClass();function getAccordionUtilityClass(e){return generateUtilityClass(`MuiAccordion`,e)}var accordionClasses=generateUtilityClasses(`MuiAccordion`,[`root`,`rounded`,`expanded`,`disabled`,`gutters`,`region`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_useControlled();var _excluded$46=[`children`,`className`,`defaultExpanded`,`disabled`,`disableGutters`,`expanded`,`onChange`,`square`,`slots`,`slotProps`,`TransitionComponent`,`TransitionProps`],useUtilityClasses$41=e=>{let{classes:t,square:n,expanded:a,disabled:o,disableGutters:s}=e;return composeClasses({root:[`root`,!n&&`rounded`,a&&`expanded`,o&&`disabled`,!s&&`gutters`],region:[`region`]},getAccordionUtilityClass,t)},AccordionRoot=styled$1(Paper,{name:`MuiAccordion`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${accordionClasses.region}`]:t.region},t.root,!n.square&&t.rounded,!n.disableGutters&&t.gutters]}})(({theme:e})=>{let t={duration:e.transitions.duration.shortest};return{position:`relative`,transition:e.transitions.create([`margin`],t),overflowAnchor:`none`,"&::before":{position:`absolute`,left:0,top:-1,right:0,height:1,content:`""`,opacity:1,backgroundColor:(e.vars||e).palette.divider,transition:e.transitions.create([`opacity`,`background-color`],t)},"&:first-of-type":{"&::before":{display:`none`}},[`&.${accordionClasses.expanded}`]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:`none`}}},[`&.${accordionClasses.disabled}`]:{backgroundColor:(e.vars||e).palette.action.disabledBackground}}},({theme:e})=>({variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(e.vars||e).shape.borderRadius,borderBottomRightRadius:(e.vars||e).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{[`&.${accordionClasses.expanded}`]:{margin:`16px 0`}}}]})),Accordion=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAccordion`}),{children:a,className:o,defaultExpanded:s=!1,disabled:l=!1,disableGutters:u=!1,expanded:d,onChange:f,square:m=!1,slots:h={},slotProps:v={},TransitionComponent:y,TransitionProps:b}=n,x=_objectWithoutPropertiesLoose$3(n,_excluded$46),[S,C]=useControlled_default({controlled:d,default:s,name:`Accordion`,state:`expanded`}),T=import_react$24.useCallback(e=>{C(!S),f&&f(e,!S)},[S,f,C]),[E,...D]=import_react$24.Children.toArray(a),O=import_react$24.useMemo(()=>({expanded:S,disabled:l,disableGutters:u,toggle:T}),[S,l,u,T]),k=_extends$3({},n,{square:m,disabled:l,disableGutters:u,expanded:S}),j=useUtilityClasses$41(k),[M,N]=useSlot(`transition`,{elementType:Collapse,externalForwardedProps:{slots:_extends$3({transition:y},h),slotProps:_extends$3({transition:b},v)},ownerState:k});return(0,import_jsx_runtime.jsxs)(AccordionRoot,_extends$3({className:clsx$1(j.root,o),ref:t,ownerState:k,square:m},x,{children:[(0,import_jsx_runtime.jsx)(AccordionContext.Provider,{value:O,children:E}),(0,import_jsx_runtime.jsx)(M,_extends$3({in:S,timeout:`auto`},N,{children:(0,import_jsx_runtime.jsx)(`div`,{"aria-labelledby":E.props.id,id:E.props[`aria-controls`],role:`region`,className:j.region,children:D})}))]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getAccordionSummaryUtilityClass(e){return generateUtilityClass(`MuiAccordionSummary`,e)}var accordionSummaryClasses=generateUtilityClasses(`MuiAccordionSummary`,[`root`,`expanded`,`focusVisible`,`disabled`,`gutters`,`contentGutters`,`content`,`expandIconWrapper`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$45=[`children`,`className`,`expandIcon`,`focusVisibleClassName`,`onClick`],useUtilityClasses$40=e=>{let{classes:t,expanded:n,disabled:a,disableGutters:o}=e;return composeClasses({root:[`root`,n&&`expanded`,a&&`disabled`,!o&&`gutters`],focusVisible:[`focusVisible`],content:[`content`,n&&`expanded`,!o&&`contentGutters`],expandIconWrapper:[`expandIconWrapper`,n&&`expanded`]},getAccordionSummaryUtilityClass,t)},AccordionSummaryRoot=styled$1(ButtonBase,{name:`MuiAccordionSummary`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>{let t={duration:e.transitions.duration.shortest};return{display:`flex`,minHeight:48,padding:e.spacing(0,2),transition:e.transitions.create([`min-height`,`background-color`],t),[`&.${accordionSummaryClasses.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${accordionSummaryClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`&:hover:not(.${accordionSummaryClasses.disabled})`]:{cursor:`pointer`},variants:[{props:e=>!e.disableGutters,style:{[`&.${accordionSummaryClasses.expanded}`]:{minHeight:64}}}]}}),AccordionSummaryContent=styled$1(`div`,{name:`MuiAccordionSummary`,slot:`Content`,overridesResolver:(e,t)=>t.content})(({theme:e})=>({display:`flex`,flexGrow:1,margin:`12px 0`,variants:[{props:e=>!e.disableGutters,style:{transition:e.transitions.create([`margin`],{duration:e.transitions.duration.shortest}),[`&.${accordionSummaryClasses.expanded}`]:{margin:`20px 0`}}}]})),AccordionSummaryExpandIconWrapper=styled$1(`div`,{name:`MuiAccordionSummary`,slot:`ExpandIconWrapper`,overridesResolver:(e,t)=>t.expandIconWrapper})(({theme:e})=>({display:`flex`,color:(e.vars||e).palette.action.active,transform:`rotate(0deg)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shortest}),[`&.${accordionSummaryClasses.expanded}`]:{transform:`rotate(180deg)`}})),AccordionSummary=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAccordionSummary`}),{children:a,className:o,expandIcon:s,focusVisibleClassName:l,onClick:u}=n,d=_objectWithoutPropertiesLoose$3(n,_excluded$45),{disabled:f=!1,disableGutters:m,expanded:h,toggle:v}=import_react$24.useContext(AccordionContext),y=e=>{v&&v(e),u&&u(e)},b=_extends$3({},n,{expanded:h,disabled:f,disableGutters:m}),x=useUtilityClasses$40(b);return(0,import_jsx_runtime.jsxs)(AccordionSummaryRoot,_extends$3({focusRipple:!1,disableRipple:!0,disabled:f,component:`div`,"aria-expanded":h,className:clsx$1(x.root,o),focusVisibleClassName:clsx$1(x.focusVisible,l),onClick:y,ref:t,ownerState:b},d,{children:[(0,import_jsx_runtime.jsx)(AccordionSummaryContent,{className:x.content,ownerState:b,children:a}),s&&(0,import_jsx_runtime.jsx)(AccordionSummaryExpandIconWrapper,{className:x.expandIconWrapper,ownerState:b,children:s})]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getAccordionDetailsUtilityClass(e){return generateUtilityClass(`MuiAccordionDetails`,e)}var accordionDetailsClasses=generateUtilityClasses(`MuiAccordionDetails`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$44=[`className`],useUtilityClasses$39=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getAccordionDetailsUtilityClass,t)},AccordionDetailsRoot=styled$1(`div`,{name:`MuiAccordionDetails`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>({padding:e.spacing(1,2,2)})),AccordionDetails=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAccordionDetails`}),{className:a}=n,o=_objectWithoutPropertiesLoose$3(n,_excluded$44),s=n,l=useUtilityClasses$39(s);return(0,import_jsx_runtime.jsx)(AccordionDetailsRoot,_extends$3({className:clsx$1(l.root,a),ref:t,ownerState:s},o))}),FormControlContext=import_react$24.createContext(void 0);function useFormControl(){return import_react$24.useContext(FormControlContext)}init_generateUtilityClasses(),init_generateUtilityClass();function getSwitchBaseUtilityClass(e){return generateUtilityClass(`PrivateSwitchBase`,e)}var switchBaseClasses=generateUtilityClasses(`PrivateSwitchBase`,[`root`,`checked`,`disabled`,`input`,`edgeStart`,`edgeEnd`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_styled(),init_useControlled();var _excluded$43=[`autoFocus`,`checked`,`checkedIcon`,`className`,`defaultChecked`,`disabled`,`disableFocusRipple`,`edge`,`icon`,`id`,`inputProps`,`inputRef`,`name`,`onBlur`,`onChange`,`onFocus`,`readOnly`,`required`,`tabIndex`,`type`,`value`],useUtilityClasses$38=e=>{let{classes:t,checked:n,disabled:a,edge:o}=e;return composeClasses({root:[`root`,n&&`checked`,a&&`disabled`,o&&`edge${capitalize_default(o)}`],input:[`input`]},getSwitchBaseUtilityClass,t)},SwitchBaseRoot=styled$1(ButtonBase,{name:`MuiSwitchBase`})(({ownerState:e})=>_extends$3({padding:9,borderRadius:`50%`},e.edge===`start`&&{marginLeft:e.size===`small`?-3:-12},e.edge===`end`&&{marginRight:e.size===`small`?-3:-12})),SwitchBaseInput=styled$1(`input`,{name:`MuiSwitchBase`,shouldForwardProp:rootShouldForwardProp})({cursor:`inherit`,position:`absolute`,opacity:0,width:`100%`,height:`100%`,top:0,left:0,margin:0,padding:0,zIndex:1}),SwitchBase=import_react$24.forwardRef(function(e,t){let{autoFocus:n,checked:a,checkedIcon:o,className:s,defaultChecked:l,disabled:u,disableFocusRipple:d=!1,edge:f=!1,icon:m,id:h,inputProps:v,inputRef:y,name:b,onBlur:x,onChange:S,onFocus:C,readOnly:T,required:E=!1,tabIndex:D,type:O,value:k}=e,j=_objectWithoutPropertiesLoose$3(e,_excluded$43),[M,N]=useControlled_default({controlled:a,default:!!l,name:`SwitchBase`,state:`checked`}),F=useFormControl(),I=e=>{C&&C(e),F&&F.onFocus&&F.onFocus(e)},L=e=>{x&&x(e),F&&F.onBlur&&F.onBlur(e)},R=e=>{if(e.nativeEvent.defaultPrevented)return;let t=e.target.checked;N(t),S&&S(e,t)},z=u;F&&z===void 0&&(z=F.disabled);let B=O===`checkbox`||O===`radio`,V=_extends$3({},e,{checked:M,disabled:z,disableFocusRipple:d,edge:f}),H=useUtilityClasses$38(V);return(0,import_jsx_runtime.jsxs)(SwitchBaseRoot,_extends$3({component:`span`,className:clsx$1(H.root,s),centerRipple:!0,focusRipple:!d,disabled:z,tabIndex:null,role:void 0,onFocus:I,onBlur:L,ownerState:V,ref:t},j,{children:[(0,import_jsx_runtime.jsx)(SwitchBaseInput,_extends$3({autoFocus:n,checked:a,defaultChecked:l,className:H.input,disabled:z,id:B?h:void 0,name:b,onChange:R,readOnly:T,ref:y,required:E,ownerState:V,tabIndex:D,type:O},O===`checkbox`&&k===void 0?{}:{value:k},v)),M?o:m]}))});init_createSvgIcon();var CheckBoxOutlineBlank_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z`}),`CheckBoxOutlineBlank`);init_createSvgIcon();var CheckBox_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z`}),`CheckBox`);init_createSvgIcon();var IndeterminateCheckBox_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z`}),`IndeterminateCheckBox`);init_generateUtilityClasses(),init_generateUtilityClass();function getCheckboxUtilityClass(e){return generateUtilityClass(`MuiCheckbox`,e)}var checkboxClasses=generateUtilityClasses(`MuiCheckbox`,[`root`,`checked`,`disabled`,`indeterminate`,`colorPrimary`,`colorSecondary`,`sizeSmall`,`sizeMedium`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$42=[`checkedIcon`,`color`,`icon`,`indeterminate`,`indeterminateIcon`,`inputProps`,`size`,`className`],useUtilityClasses$37=e=>{let{classes:t,indeterminate:n,color:a,size:o}=e;return _extends$3({},t,composeClasses({root:[`root`,n&&`indeterminate`,`color${capitalize_default(a)}`,`size${capitalize_default(o)}`]},getCheckboxUtilityClass,t))},CheckboxRoot=styled$1(SwitchBase,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiCheckbox`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${capitalize_default(n.size)}`],n.color!=="default"&&t[`color${capitalize_default(n.color)}`]]}})(({theme:e,ownerState:t})=>_extends$3({color:(e.vars||e).palette.text.secondary},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${t.color==="default"?e.vars.palette.action.activeChannel:e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,import_colorManipulator.alpha)(t.color==="default"?e.palette.action.active:e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:`transparent`}}},t.color!=="default"&&{[`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]:{color:(e.vars||e).palette[t.color].main},[`&.${checkboxClasses.disabled}`]:{color:(e.vars||e).palette.action.disabled}})),defaultCheckedIcon=(0,import_jsx_runtime.jsx)(CheckBox_default,{}),defaultIcon=(0,import_jsx_runtime.jsx)(CheckBoxOutlineBlank_default,{}),defaultIndeterminateIcon=(0,import_jsx_runtime.jsx)(IndeterminateCheckBox_default,{}),Checkbox=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiCheckbox`}),{checkedIcon:s=defaultCheckedIcon,color:l=`primary`,icon:u=defaultIcon,indeterminate:d=!1,indeterminateIcon:f=defaultIndeterminateIcon,inputProps:m,size:h=`medium`,className:v}=o,y=_objectWithoutPropertiesLoose$3(o,_excluded$42),b=d?f:u,x=d?f:s,S=_extends$3({},o,{color:l,indeterminate:d,size:h}),C=useUtilityClasses$37(S);return(0,import_jsx_runtime.jsx)(CheckboxRoot,_extends$3({type:`checkbox`,inputProps:_extends$3({"data-indeterminate":d},m),icon:import_react$24.cloneElement(b,{fontSize:b.props.fontSize??h}),checkedIcon:import_react$24.cloneElement(x,{fontSize:x.props.fontSize??h}),ownerState:S,ref:t,className:clsx$1(C.root,v)},y,{classes:C}))});function hasValue(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function isFilled(e,t=!1){return e&&(hasValue(e.value)&&e.value!==``||t&&hasValue(e.defaultValue)&&e.defaultValue!==``)}function isAdornedStart(e){return e.startAdornment}init_generateUtilityClasses(),init_generateUtilityClass();function getFormControlUtilityClasses(e){return generateUtilityClass(`MuiFormControl`,e)}var formControlClasses=generateUtilityClasses(`MuiFormControl`,[`root`,`marginNone`,`marginNormal`,`marginDense`,`fullWidth`,`disabled`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled(),init_capitalize(),init_isMuiElement();var _excluded$41=[`children`,`className`,`color`,`component`,`disabled`,`error`,`focused`,`fullWidth`,`hiddenLabel`,`margin`,`required`,`size`,`variant`],useUtilityClasses$36=e=>{let{classes:t,margin:n,fullWidth:a}=e;return composeClasses({root:[`root`,n!==`none`&&`margin${capitalize_default(n)}`,a&&`fullWidth`]},getFormControlUtilityClasses,t)},FormControlRoot=styled$1(`div`,{name:`MuiFormControl`,slot:`Root`,overridesResolver:({ownerState:e},t)=>_extends$3({},t.root,t[`margin${capitalize_default(e.margin)}`],e.fullWidth&&t.fullWidth)})(({ownerState:e})=>_extends$3({display:`inline-flex`,flexDirection:`column`,position:`relative`,minWidth:0,padding:0,margin:0,border:0,verticalAlign:`top`},e.margin===`normal`&&{marginTop:16,marginBottom:8},e.margin===`dense`&&{marginTop:8,marginBottom:4},e.fullWidth&&{width:`100%`})),FormControl=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiFormControl`}),{children:a,className:o,color:s=`primary`,component:l=`div`,disabled:u=!1,error:d=!1,focused:f,fullWidth:m=!1,hiddenLabel:h=!1,margin:v=`none`,required:y=!1,size:b=`medium`,variant:x=`outlined`}=n,S=_objectWithoutPropertiesLoose$3(n,_excluded$41),C=_extends$3({},n,{color:s,component:l,disabled:u,error:d,fullWidth:m,hiddenLabel:h,margin:v,required:y,size:b,variant:x}),T=useUtilityClasses$36(C),[E,D]=import_react$24.useState(()=>{let e=!1;return a&&import_react$24.Children.forEach(a,t=>{if(!isMuiElement_default(t,[`Input`,`Select`]))return;let n=isMuiElement_default(t,[`Select`])?t.props.input:t;n&&isAdornedStart(n.props)&&(e=!0)}),e}),[O,k]=import_react$24.useState(()=>{let e=!1;return a&&import_react$24.Children.forEach(a,t=>{isMuiElement_default(t,[`Input`,`Select`])&&(isFilled(t.props,!0)||isFilled(t.props.inputProps,!0))&&(e=!0)}),e}),[j,M]=import_react$24.useState(!1);u&&j&&M(!1);let N=f!==void 0&&!u?f:j,F,I=import_react$24.useMemo(()=>({adornedStart:E,setAdornedStart:D,color:s,disabled:u,error:d,filled:O,focused:N,fullWidth:m,hiddenLabel:h,size:b,onBlur:()=>{M(!1)},onEmpty:()=>{k(!1)},onFilled:()=>{k(!0)},onFocus:()=>{M(!0)},registerEffect:void 0,required:y,variant:x}),[E,s,u,d,O,N,m,h,void 0,y,b,x]);return(0,import_jsx_runtime.jsx)(FormControlContext.Provider,{value:I,children:(0,import_jsx_runtime.jsx)(FormControlRoot,_extends$3({as:l,ownerState:C,className:clsx$1(T.root,o),ref:t},S,{children:a}))})});init_styled(),init_DefaultPropsProvider();var Stack=createStack({createStyledComponent:styled$1(`div`,{name:`MuiStack`,slot:`Root`,overridesResolver:(e,t)=>t.root}),useThemeProps:e=>useDefaultProps({props:e,name:`MuiStack`})});init_generateUtilityClasses(),init_generateUtilityClass();function getFormControlLabelUtilityClasses(e){return generateUtilityClass(`MuiFormControlLabel`,e)}var formControlLabelClasses=generateUtilityClasses(`MuiFormControlLabel`,[`root`,`labelPlacementStart`,`labelPlacementTop`,`labelPlacementBottom`,`disabled`,`label`,`error`,`required`,`asterisk`]);function formControlState({props:e,states:t,muiFormControl:n}){return t.reduce((t,a)=>(t[a]=e[a],n&&e[a]===void 0&&(t[a]=n[a]),t),{})}init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_styled(),init_DefaultPropsProvider();var _excluded$40=[`checked`,`className`,`componentsProps`,`control`,`disabled`,`disableTypography`,`inputRef`,`label`,`labelPlacement`,`name`,`onChange`,`required`,`slotProps`,`value`],useUtilityClasses$35=e=>{let{classes:t,disabled:n,labelPlacement:a,error:o,required:s}=e;return composeClasses({root:[`root`,n&&`disabled`,`labelPlacement${capitalize_default(a)}`,o&&`error`,s&&`required`],label:[`label`,n&&`disabled`],asterisk:[`asterisk`,o&&`error`]},getFormControlLabelUtilityClasses,t)},FormControlLabelRoot=styled$1(`label`,{name:`MuiFormControlLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${formControlLabelClasses.label}`]:t.label},t.root,t[`labelPlacement${capitalize_default(n.labelPlacement)}`]]}})(({theme:e,ownerState:t})=>_extends$3({display:`inline-flex`,alignItems:`center`,cursor:`pointer`,verticalAlign:`middle`,WebkitTapHighlightColor:`transparent`,marginLeft:-11,marginRight:16,[`&.${formControlLabelClasses.disabled}`]:{cursor:`default`}},t.labelPlacement===`start`&&{flexDirection:`row-reverse`,marginLeft:16,marginRight:-11},t.labelPlacement===`top`&&{flexDirection:`column-reverse`,marginLeft:16},t.labelPlacement===`bottom`&&{flexDirection:`column`,marginLeft:16},{[`& .${formControlLabelClasses.label}`]:{[`&.${formControlLabelClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled}}})),AsteriskComponent$1=styled$1(`span`,{name:`MuiFormControlLabel`,slot:`Asterisk`,overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${formControlLabelClasses.error}`]:{color:(e.vars||e).palette.error.main}})),FormControlLabel=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiFormControlLabel`}),{className:s,componentsProps:l={},control:u,disabled:d,disableTypography:f,label:m,labelPlacement:h=`end`,required:v,slotProps:y={}}=o,b=_objectWithoutPropertiesLoose$3(o,_excluded$40),x=useFormControl(),S=d??u.props.disabled??x?.disabled,C=v??u.props.required,T={disabled:S,required:C};[`checked`,`name`,`onChange`,`value`,`inputRef`].forEach(e=>{u.props[e]===void 0&&o[e]!==void 0&&(T[e]=o[e])});let E=_extends$3({},o,{disabled:S,labelPlacement:h,required:C,error:formControlState({props:o,muiFormControl:x,states:[`error`]}).error}),D=useUtilityClasses$35(E),O=y.typography??l.typography,k=m;return k!=null&&k.type!==Typography&&!f&&(k=(0,import_jsx_runtime.jsx)(Typography,_extends$3({component:`span`},O,{className:clsx$1(D.label,O?.className),children:k}))),(0,import_jsx_runtime.jsxs)(FormControlLabelRoot,_extends$3({className:clsx$1(D.root,s),ownerState:E,ref:t},b,{children:[import_react$24.cloneElement(u,T),C?(0,import_jsx_runtime.jsxs)(Stack,{display:`block`,children:[k,(0,import_jsx_runtime.jsxs)(AsteriskComponent$1,{ownerState:E,"aria-hidden":!0,className:D.asterisk,children:[` `,`*`]})]}):k]}))}),require_ExpandMore=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z`}),`ExpandMore`)})),require_KeyboardArrowUp=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z`}),`KeyboardArrowUp`)})),require_KeyboardArrowDown=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z`}),`KeyboardArrowDown`)}));init_generateUtilityClasses();var boxClasses=generateUtilityClasses(`MuiBox`,[`root`]);init_ClassNameGenerator$1(),init_createTheme(),init_identifier();var Box=createBox({themeId:identifier_default,defaultTheme:createTheme(),defaultClassName:boxClasses.root,generateClassName:ClassNameGenerator.generate});init_generateUtilityClasses(),init_generateUtilityClass();function getCardUtilityClass(e){return generateUtilityClass(`MuiCard`,e)}var cardClasses=generateUtilityClasses(`MuiCard`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$39=[`className`,`raised`],useUtilityClasses$34=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getCardUtilityClass,t)},CardRoot=styled$1(Paper,{name:`MuiCard`,slot:`Root`,overridesResolver:(e,t)=>t.root})(()=>({overflow:`hidden`})),Card=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCard`}),{className:a,raised:o=!1}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$39),l=_extends$3({},n,{raised:o}),u=useUtilityClasses$34(l);return(0,import_jsx_runtime.jsx)(CardRoot,_extends$3({className:clsx$1(u.root,a),elevation:o?8:void 0,ref:t,ownerState:l},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getCardHeaderUtilityClass(e){return generateUtilityClass(`MuiCardHeader`,e)}var cardHeaderClasses=generateUtilityClasses(`MuiCardHeader`,[`root`,`avatar`,`action`,`content`,`title`,`subheader`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled();var _excluded$38=[`action`,`avatar`,`className`,`component`,`disableTypography`,`subheader`,`subheaderTypographyProps`,`title`,`titleTypographyProps`],useUtilityClasses$33=e=>{let{classes:t}=e;return composeClasses({root:[`root`],avatar:[`avatar`],action:[`action`],content:[`content`],title:[`title`],subheader:[`subheader`]},getCardHeaderUtilityClass,t)},CardHeaderRoot=styled$1(`div`,{name:`MuiCardHeader`,slot:`Root`,overridesResolver:(e,t)=>_extends$3({[`& .${cardHeaderClasses.title}`]:t.title,[`& .${cardHeaderClasses.subheader}`]:t.subheader},t.root)})({display:`flex`,alignItems:`center`,padding:16}),CardHeaderAvatar=styled$1(`div`,{name:`MuiCardHeader`,slot:`Avatar`,overridesResolver:(e,t)=>t.avatar})({display:`flex`,flex:`0 0 auto`,marginRight:16}),CardHeaderAction=styled$1(`div`,{name:`MuiCardHeader`,slot:`Action`,overridesResolver:(e,t)=>t.action})({flex:`0 0 auto`,alignSelf:`flex-start`,marginTop:-4,marginRight:-8,marginBottom:-4}),CardHeaderContent=styled$1(`div`,{name:`MuiCardHeader`,slot:`Content`,overridesResolver:(e,t)=>t.content})({flex:`1 1 auto`}),CardHeader=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCardHeader`}),{action:a,avatar:o,className:s,component:l=`div`,disableTypography:u=!1,subheader:d,subheaderTypographyProps:f,title:m,titleTypographyProps:h}=n,v=_objectWithoutPropertiesLoose$3(n,_excluded$38),y=_extends$3({},n,{component:l,disableTypography:u}),b=useUtilityClasses$33(y),x=m;x!=null&&x.type!==Typography&&!u&&(x=(0,import_jsx_runtime.jsx)(Typography,_extends$3({variant:o?`body2`:`h5`,className:b.title,component:`span`,display:`block`},h,{children:x})));let S=d;return S!=null&&S.type!==Typography&&!u&&(S=(0,import_jsx_runtime.jsx)(Typography,_extends$3({variant:o?`body2`:`body1`,className:b.subheader,color:`text.secondary`,component:`span`,display:`block`},f,{children:S}))),(0,import_jsx_runtime.jsxs)(CardHeaderRoot,_extends$3({className:clsx$1(b.root,s),as:l,ref:t,ownerState:y},v,{children:[o&&(0,import_jsx_runtime.jsx)(CardHeaderAvatar,{className:b.avatar,ownerState:y,children:o}),(0,import_jsx_runtime.jsxs)(CardHeaderContent,{className:b.content,ownerState:y,children:[x,S]}),a&&(0,import_jsx_runtime.jsx)(CardHeaderAction,{className:b.action,ownerState:y,children:a})]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getCardContentUtilityClass(e){return generateUtilityClass(`MuiCardContent`,e)}var cardContentClasses=generateUtilityClasses(`MuiCardContent`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$37=[`className`,`component`],useUtilityClasses$32=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getCardContentUtilityClass,t)},CardContentRoot=styled$1(`div`,{name:`MuiCardContent`,slot:`Root`,overridesResolver:(e,t)=>t.root})(()=>({padding:16,"&:last-child":{paddingBottom:24}})),CardContent=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCardContent`}),{className:a,component:o=`div`}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$37),l=_extends$3({},n,{component:o}),u=useUtilityClasses$32(l);return(0,import_jsx_runtime.jsx)(CardContentRoot,_extends$3({as:o,className:clsx$1(u.root,a),ownerState:l,ref:t},s))});init_generateUtilityClasses(),init_generateUtilityClass();function getCardActionsUtilityClass(e){return generateUtilityClass(`MuiCardActions`,e)}var cardActionsClasses=generateUtilityClasses(`MuiCardActions`,[`root`,`spacing`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$36=[`disableSpacing`,`className`],useUtilityClasses$31=e=>{let{classes:t,disableSpacing:n}=e;return composeClasses({root:[`root`,!n&&`spacing`]},getCardActionsUtilityClass,t)},CardActionsRoot=styled$1(`div`,{name:`MuiCardActions`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>_extends$3({display:`flex`,alignItems:`center`,padding:8},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),CardActions=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCardActions`}),{disableSpacing:a=!1,className:o}=n,s=_objectWithoutPropertiesLoose$3(n,_excluded$36),l=_extends$3({},n,{disableSpacing:a}),u=useUtilityClasses$31(l);return(0,import_jsx_runtime.jsx)(CardActionsRoot,_extends$3({className:clsx$1(u.root,o),ownerState:l,ref:t},s))}),import_ExpandMore=__toESM(require_ExpandMore()),import_KeyboardArrowUp=__toESM(require_KeyboardArrowUp()),import_KeyboardArrowDown=__toESM(require_KeyboardArrowDown()),watered_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABbklEQVRIia1WvY3GIAz15ToqRqCmZoAMwT4R+3iJ66lTMwIjXGX04tjJp9NZQgFsnv1sfkL0gdRaj0/sPhIN5oH/yekTmOh0/239hkpmbhYQMzcNoJ1Y64mIvrQSjVC8ecvuwsDyrI2IiEopxxiDxhgLRMZPQSwGaFRKWeOUEglYSukCiDaix0wsB+hkjEG994ZjCwhFbGQeM/CtGcQYKYSwxxjXeM5JvfeWc17zzNxCCPuc8+I8xkg55/08zx+XgSc6RcgImSGDzQIXQ/x64LIOwTEjm7drtBMB0c5Qb8mmq64jk37vvWkG2O+93w4jkVEDTdPKse5bzAXndpJF+QSimXrgi4G3573rwcu3u4twEqNGx1gPLLbeDO4uqrUemGthgKBSaLyLiGgVGLNxu001fbwuvPRYRdcZuZwDZm4S6dPVjKlBRxqcSJ0D/fUcWGDM3KRdgnt6/rwXTLcnHLIm316utzf5X/9C3oL6BQBimEemYBpmAAAAAElFTkSuQmCC`,fertilized_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAVklEQVRYhe2QwREAIAjD2MVBnc65dAUOi+0J+fSZXM2aX1hz7GcS71KkkIhbKSSGGpEll4jQfyBbrh9RVy4R0Q/0AyUecEGVfx0Roq4cFQGFIvXGNFEOnwmdSclbLhUAAAAASUVORK5CYII=`,rainbow_fertilized_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAkUlEQVRYhe3Quw2AMAxF0ezDFizDCjTMwLI0VKaBSFhyEht/pITXuDxXTulfL4NjBntkn+B1b5S6NmgjvsIijyBRJo6vToQQZ0WY4XB+iOgCb4kwx1kRVngpYlw8R1jjGxQ+EInXItRwyQdccCpCHed8wBXHESH4s1C8FiHGNSJccRwxHp4XitdiXFBqIWiPuwDmWChFXQDxHwAAAABJRU5ErkJggg==`,mulched_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAVdJREFUWIXtlTFuwzAMRZmewwfw2sGH8KCtZ7CB3KB7gPgqBrL1FEUGX6L3YJey+CG+KCXxUBT6kyxL1CNFUiJNTU1NTf9Y6zKpjU/H9DtOQ6frMul2Od/M1dh8uQcAjfrx53WT0zFpGjr9uH4dRERe394P6zLdzNWCVcOkodMITH4ih+vx+ykoNMoMsXl/uF9nUcTrfhoGI8H2oGwNg66GMk9ERCwxPRgz5g+xxGZ7itfGKgarJGckigrCsPzy9kMof1gUXlzHDmHXbuuKUP6KEGYee/XzCIrG/b8cfPbqsJyxyZnmsdd57KuSkFVZlD9hPiGUL+HtclbmOToTtQDMLQQtVlvkkb8W3OcrjDlqTj3UHP0mD8m6MPadXIe+uykyKN/gogiwpsfy8iEQIWVbeptyzdSejV2hfKnWjM2B3V56KTyaQqKB+3aDqNGuXjc1NTX9AX0DskV/GZiF3KoAAAAASUVORK5CYII=`,rainbow_mulched_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAYlJREFUWIXtVcGNg0AMdO5FFdRw96EDOrga6CCP0xZABXxQSqAXKIUHIKQk8r0GjRxzEPiddqRIu1mvPWuPjUhERERExD9GX+WKdSKd2rO2KdW9+Ac+3jGu01HX1rN8XhLp9PYIy/9f3z8XJm3vnUIWJoXDNWIg01f5YlOno/L+FCl2yqTWzpnM9T6/EKjTUVFam7nDpG6PoJwJz5bJwAb3nkOhfZUvv91E8BII06bZc4bysM1zKNz9Ztm8jmmbUjkjXgY8x/DVNqXW6ajPoVg0xHra7EI4ysKkWZiUCTBhJmRJeUE8rcFuk5QtkSWDF+MBfIa7uGPLiqbAg5BBlwi3sx1yIiKcduw9P9f7/BKEtWVJ2cytIpFumR8I3jal+3J+jDcCeC+mCru7ra9ytVoSU3NuaTGNYc9YyJbobrCOoAs7seHckuIyWVKHhyKcZGFSDsR7Sx5CteeeLt8mIuZz4c0ScUTJGuE5lkh3rFReIDvsPJu1NWf3MBmLrbqvBTull4iIiIgIkV/Jgy2+BhL+vQAAAABJRU5ErkJggg==`,shoveled_plot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAABXklEQVRYheWYPQ7CMAyFTRcGxMaRei/Ue3EXLoBYqg6dyhAZue6Lk1T5oeJJVURckk8vdtSE6MgaelqGnpaSc5xCAL7Y/eH+q9/hfjSGjiUBIZhxdu31HBrWlgW2CUgQBkBiKP2OhpVxHUNgXSzMa1q3z7d7R/eP8/rRcLIPrUKnOxAMEdHt4iYNtQgejc9zaKgvEAcsZ2KhLMiQoENSeyFQi5zSLnmBcjizx6lOEjJxTogYpzZAXH5cliVhUFVKU5o4ZDkFc6gGjC+XIFBzh2rnkJXY3rJvsVxEtP6EkLt0LYd4VXiVfs4hc6dulkM6qUs7ZAlujKUdCgIh1cghndAmUGko0yGUQ0TlHUr+HmrmEErqplWGluyvqswSPPZaB8TQJCkwyWWPxIPqFsVTl2sDJHOJH/k7NzwSPPTHXrn4zvUxdwIsfb4PXo8MPS2+q5ccSgay5LsbirlXOow+jbqqwQYBTPwAAAAASUVORK5CYII=`,apple_juice_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQJJREFUSIljYBgFo4CBgYHhxo0b/2/cuPGfLhbRxGAWFpb/MHzjxo3/yHwWFha8ljISY/i+nRPhfDFpZ4ZXT/eiqHFyz2f48+cPQbPwuhwbPrR3KgqN1QxCllw81sDALaCBIf71ww0Gfat8BmTfYQNMhCzAZjhM/OKxBgYn93zKLMAGnCd04bUcGRAMImRQmFLLcEmHl2FvQRnReoj2wY28OQyRj74ztG97xXDKrYS6FtzIm8Pw6cYNFLFVDnnUswDdcAYGBgYFNjbqWUAJINuCB79+Uc8Cs109GIaHHZhElAV4yw8WFpb/uHIyAzw3NzAwMDDgLIuIKuwIqSGroBsyAADMgGh66tN3lAAAAABJRU5ErkJggg==`,apple_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZlJREFUSIntlD9IQlEUxn9GjtEQFYJDi7ooEQ7RYoPg8sDddGvyjW8QXBpcBAehRSe3ol1wERxqCYMQqUVbGoKIaA8aXoOey33/THIK+oYH775zf9/5zr08+Ne/VlVoiRp7FU7QBwUd9Wo/0g+Ms0Cen4F9fhInUywBcHs94Ovl1VEQSyd5un9U71I7N3Iw3QYKfnN5AYBhWvS7V+TyBVUk771WU62FoxGOjrMeE93AhtlIBB7UsQDFxDAtAHqtJpliyWGyJvBRr6bgssEwLQzT4vntQ62JcvkC02FfJZQ0G5s7cm62uNjursPRCHu7W56uY+kkAPHDnAIapuVJAagk6+Iqxfqc3Zv9Zq/X6RJmCLCrlTKn+X1PkV8SffbS1HTYV6mkmU53TL3RVoesTPSY+g3SzfWk7vW7yScPkwkA9UZ7NiJRpzsGIJU1PZt1yHTYV6n0MbrhQMhxTauVsgOWSiQAeB+0PIco2p43A3jg6rHIRDfyk0BFOtzPAOb3189okeZgD3PR39TxFw0yDAIvY7DQ8JeMP6hvVK7PhaXOgsEAAAAASUVORK5CYII=`,banana_bread_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAYpJREFUSIntlE1LAlEUhh8lghhmQiQRgorUbYiIYotZ26JFW6VV/yJoFfQv+hUudO0iKSSirR/UQpCRQZxBpBbaou51ZvxodBXhu5lz7p37vOeeuXdgo43+vALrLsxHgxPvWKU7nuGtbCDAx4kjojtTj+4oQLvxNmPky8BZrRMci30/W60pRhgJk6UGi6qdBwZ4eH0HYH9vl05vQKU7Dmz5Ay+u2Av2ymUgwOmcDkC9VqX9M3d5cbASWEiuyEeDk3ROJ5NNEo4MATANhafHF2kGcHpy6AssWhQQ8Ju7KzkZ0lT6lj2Tl0sN6rXqUrDXIOgcDGkqAM3mWMYiBzg7T/wKBrA+RjJ2GYiqw5GhjEOaKlsW0lTSOZ1Ob7AQ3OkNsK1PeUylgWkorl2IXFRvGgp9y567Cy/YedGkgfiYfcvGNBTi8aDcDSBzZ+uWgYVcp0jE4pgCFIop2S7TUAhHhtxe36Nq265WLJK8B64Xa1VpVq9VSed0CsUU5dIzmWwSwBecdf5FM8X8e30B0FvZU200DxwAAAAASUVORK5CYII=`,banana_cream_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAW1JREFUSIntlDFLw0AYht8WqSJWqks2g+BUKXQJEp1a8kuELP0L/o8sgkv/gqPUSUvpIgQ7lGBxdLI0IEVozqF+532Xu1jsJPSFwOW743m/y3sXYKON1lVphTViHY5tQkLTOPqVXm10rDyTgSDo3nYXAJCd3OcWlZOWnPt4vlGNGHPLBN89vVy+JV02+Tq8AwC4XsDqtD6NgWqjI2xfRqRxJBbZ3PiIsS/E2BeLbC5eBrfWNWkcCVNuDK7CCGiq2RrQTRjcBNOBth2odTKRGUx7PmrtPlwvwGS4rLnKFl0vQDlpYfJ+xTKgsPU6C3k0a6LuhMyEQqUxgVwvkGEDwPHBTwPUaMUJMZo1ASVtMXh4RH3/CQDw+XaNw6Md2ZkuU6fTng8ADH52cc4NSKoRqdbuW6EkHQ6gpJ5XZmIz0lVxQjnW4TBciJyJamQSQUkq3GQAOr8moyJ9g3PMor8pu402Qxt4FYNCwz8y/qG+AP/oVWW7If/LAAAAAElFTkSuQmCC`,bread_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAmklEQVRIiWNgGAUDDRjJ1PefWPNIteA/AwMDw9Ic7JLRUzDNJdYCvAbjsIiRgYGBgYWaBt9+jimGywKKDcZlwX8GBgaGhmDcGlUliTMYmwX/YQYX1M/CqWFCYxphU5EAciT//3AJt8GkWNSwFmE2E0nOIQOMWkB/C5AjmIGBcE4m1WAUw6liAS6DKbaAkMG4JHGV88ToHQXkAQCMXCTuoxbh9AAAAABJRU5ErkJggg==`,burger_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4ElEQVRIiWNgGAUEACOR6v6Tq5+Qgv8MDAwMkxJQBfml9Bk+PrvIkLeAsDm4JDAMhhlKqkXYLPiPz2BsFsEA1CIUM5mwKeSX0oez0Q2D8WFqkNViA+g+INv1aMEFNxerDwi5nhi1MIA1DvBZSgRAMZMFm4ozUFrlQT9OU/68qEfhi1h8wjAcqwAU/PdfA5FaaNJH0PDkJ58ZGBgYGDaG/Mcwk+QgenOCD86Guhod4LXg/6kWfMYTBmY1qObiTUXUADRPRXgzGjmApIxGDUCwsCMFYCvs8BbXZABiK7BRgAAAeO5Ta9GiRlQAAAAASUVORK5CYII=`,butter_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFklEQVRIS2NkoDFgpLH5DKMWEAzhgQmig0sY/iM7zT6G/LjC8AHIcDsHbxSvHzqwFc4n1TIUC7AZjh7IyJaB5AhZiGGBrp4+3ExBIRmCkUjIQrw+eP/uCdGWwdRevnQRxVdwC/Snff8/iY+TAT38YTbgsgwmDvMtyEfIwQa2AGT4hYirDIe2meC0ADms8PmMKhYg+wo9nvBaANII8gUM4AouQhbkffrOcDGLExw6KHEACiZkQMgyUFBh84Gd1xkGgxXaYEtQUhEoLkAWoFuE7jMQH+Q7ZAtgyRVkOAhgtQDmephFuCzDaiHUYGTDUYIIV45CtgyfhTCDQTQs/ImyAN1idAuR5ZENhokPTHFNsAAiQcHQ9wEAcVWNGQEhAZkAAAAASUVORK5CYIIA`,carrot_soup_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyElEQVRIie2UsRXCMAxEzzz6PAaAESihyiJMwghMwiKpSMkIyQB5mUAUIOfiyCYQ6HylpPsnO34BsrKyXKInv2CFRQ+V834yXDcdDruNWXOXu8nlAFGomixgLIh7x2vr2SvevG46APBmhmiP61wLvcrUE4j0FVxResPttE1uGfb4iojl1jwkfTUYihJAawY8Ne6xdxTMM7GhT6XbA8M3+Jsmz3TpKXh7K2BRSAiPBXwVYsFTAcDrHb8Loqc961cRDUplzGBkxfUAEyhSiovwVIoAAAAASUVORK5CYII=`,cheese_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA10lEQVRIie2VsRHCMAxFfzi6tCzAEFmIYyyOhVIyAAvQpjaNjSVZsmWThjt+qTjvKYpyAX490w6MUGN+IwgA8Lrx4unKuaOCIMGWpFegdl2THPcGy7QEw2CPoDpnmjgOt6DZtQSG56U4M53vhcAEe4AAgG0F5oWVkoCNww2UcEWS1pR9jW6g6JbW4ojymnZDJdyoHdrUOqAVXbCteaa1OM6Ua0pv0uZMQ6/Fs2k9Ed9vKZiXLFEAMgQI4PEB208gwaLGgblTK1ng6rANtAWDHfYkoPz9/YM3a79OWiGiHuMAAAAASUVORK5CYII=`,chickn_pot_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACHklEQVRIS+1Vv08TYRh+3g8GimJigpOySSks+idggh20bC0DJNaEXoxbJTI50uhQicDoXaVltNdBXI1RBv8ErcRN4oKDCy1L7zXve72zP64hIekk79Cvd993z/M+z/d8d4QhFw0ZHxcEZzp8YdH/bNHX9XlmAogBZsYojYZ2tNACYGDYgyGCx4TEy4+Rgem6KaABSiJ1pctfITspv8e9eBIHj1fQyGfD+fGtCuqFN9oIEWGu+CnEDf/Un85zfLEbVBBEgQf/wcbuPsa39/D7aEzBJ2+c6th5zQwcbpQwu/lZsfVHOo+nJmCi3hxtn3S4lYYANPMPFDi2taddn6499K9fVQBtxqBeKKmSkGBm8TKIzcDYBQTNfBZj2xWYlu/myZMsQIS7s0m8u78KMGFyqol6wcFc8cAnkPq+foenUxNQQ9TLkT4ysUisWphJ4sujZRz/iiFWXMKlnTLYM8KjdbhRDjc9JLAsi9eu/oBGB0AiJYqkIU8TI8Te7SWMeO0cEOH4KIZr1xu6/tvzXRhZbwibf27CeW3/2wNZkMvlOJPJhF1PfXgBbu+KKDLGj6XXbilIjK+Y8HPhmTYh5boubLuHQCZERTqdVhsE4Dzlum9h26X+mHYSRAP7VgWHbxB5tVqF4zjRBAGJjKJEql+Nvx+9VavVVHVgTTA/8HtgWasssZVDJv53Wqb39MwYEHuqqhf4TILz+B/1zNC/aH8Brz3WGQIa2zUAAAAASUVORK5CYIIA`,chocolate_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBklEQVRIic2VoRKCQBCGf7VTSQbeQGbovoQ2GxSzL2CkkE0+gb6A0U7wDQwkKt050zF3cHu7cOOMWxjudr5vd+8YgD8PxSUsQ+Cf3YaVLALhAIDV/UWy5ggsOCeZKnDCfZIpAi+ckkgFIrhLIrlFqq5rMRwAzNvFdaCqPMH2eOsX0rJgBWYHPoGq8gQA0LQdAOBwfrAS6RmM4ACwjiOrm6FMeot6uI6m7bCOo9G7lqVlQX4Hw0MmKzfh+vm87MnKXYIR3JRQ0izLSLi5wVZuSvT66fr2woeblsQ1czMkcFeC84B1TKmcEliSULgv0TmuqXAu2RrXHLgkVJUnCoJ/b5Dkl/Dg+AKF7I1oIzfs7AAAAABJRU5ErkJggg==`,garlic_bread_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABDklEQVRIS2NkoDFgpLH5DKMWEAzhwRVEGyrk/mNzckDHI5wOJdoHIMP9Ax6Bzf/4SRBizxsIdeASLwMuS4iyAGb4X1lPVA+8YmD4cv0EXksIWoBuuLTQVYan77QRFkEt+f+BgeHgI0yf4LUAp8uR/UGuBcQYLrDqBcMHBwlwMJHsA2QLkIMFbGiYBOVBBLLAwekzA4+2Be7MhBTJZPkAZgGGq2FWUmyB3mcGHntMH4CD7IY2PImCXA8CJKUicBDpfQZrxGYJAxGuB+klmEzhlmii+gSWwXCFPSwUibYAW0zjCxqiLAApghVw9nKQ4EIH2MIdWQ3BogKmmJySlGAc4M4AxMsQ7QPijURVSXMLAIP+thkNIUCYAAAAAElFTkSuQmCC`,garlic_fries_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAB00lEQVRIS7WVMUsDQRCFN8FGTKdYCYqglQiCRQjGRiwsBMFWA6KC/oFYim3+gBbaRC0VwcJCLDQhpBAEsVIQBSvR7sRGEnkb3zK37uUu4bLN7e3Nvm/ezG6SUB0eiQ7rq8iA80JffT7/oePl3PUuk/4HwGYEUIwC6bltVb3Y0Xs5Rwzi5btdER+AwQiCmBTgGsQ4J6xnaEFd7U74kiLI6WBm8059vZz5MqYIAEmvoiqlS+Omq3dclY8WTfLSvRPALGXWFAUc2bIsLiDdY7+zySjV1NKJ+vm81y6kSCY7q7MnAHG11z2zJsvbFCBrbYsACiffD3ktbLtqWiIWki5QW+kAMNcaXNRSGXM4ApssAbLOaDIa7+oLyoYBNzL7wBLhQ2FkoL5yuqVPDDLDMzm4ofvCQSi+YRzkSir/9Obra+BNBgCb1q+PdRO7xwragQQSTHE8WwJMplLq1vN0dqvFrHaCAQiAaDKyxmBsywCWgyBTn78JhGVM2wBb2PWOJGIDpG8aPxXV6cYJwogFQGGKxgoY3l9W/aM5k/H7Y1E9rx2254B3QTYRa4BwhIkjLvQfDffBhtgNdtWeMaGAICfNGisTiAQgxHU07WNpx0QGRLkHrphfBDxYKKqYnIMAAAAASUVORK5CYIIA`,flour_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEHUlEQVRIS7WVa2xTZRjH/6f30+vapVrqVl0ZSGKy6EQgDkwIypiaMYIfiEVjYoiXzZJM/KRRNOGTQuKcRickLtuIkhg2vCBREwNz04wwwiLboHRu3Uq30Z6ul9Pb1mPet+uxtzXGhPfLOee9/H//53ne9z0M7nJj7rI+ygGEMvD/so7OKZwoip5o2wOUQjBAe+dPuexcDeHtl5+iY8dO/Uz18wZbm+uw3malEwpEREEKJo3AC2BZ8VIAoVA86LkJQRCgUcsQ5ZfBMAz9Nto2/gtrXYUBuOxaQE1VZZ773BSJAOKciLMqKeKJZaTTGb3LP3Rg8zNOUZwAK6o34PnGetpXSrwsgGEEUZxMVLMyLHFByFVa+s7HltH14VsI8bwInZr14/SFK3m1zdZAaGuug91mpbn/5QsnHm1qy3OejIehUOloHwF8130MBg2LpWgMo+MzyIqfaGtCe+d5EVJU5FHXHQxd99I0EVG5Ukvzn5smUovAeD9GxyZp/3NHTtEnMTkXSODsIO0v2qaZOlRbccvjxafnrlFIthHRwpYtOBG+HYyDVSpQ/2BVdgcWA/Y2bMQTD9sR4WNY8HMUUq4RQ1w0BZNejRqrGdO+AOYWw/j24njpCN5xbAUXjmFrbSUWE0oEOA6sQorbgQjs1VbEoiGwGj3MygT+dPmxzqSl326Pl45fnfTgkU3Va0fwek6KaKpm5rDedh+21degUhFAx5nr0Go00LBK8LEEGEYCsykDIKZuzPMYm1rEwJC7dASH92+hB9SkY3FglwX+pAnf/3oVLzbZUHHPBKZmGzB8xU3BjpbtFNr94zSWIlFqhNSudnUnlixy42N2bN5gxtO76mGvGkJwYRMCSRN9d882oK//Eox6HWQyKQ48ac1A5xowOPwXLDoJFiJpjNyYxze/TZSOwLl/C6QQ8EqLHRX3TqLrtAFqNYuDe33oHbDQ4u/e8RB6zl7CwX07KLizW0nrRu6wWzNe1N6fOUtrbtNttZXwhtJIplI45ODxeZ8erzpC6O234NnHDTCYM65/H3HjhX0+9A1YsJKKw6JlaAQTngBOnh8rAgg9b+7EpI+HscJInRBHjuaMcxJB3zkLXNNevOeU4GjHCo46pej62kgLnkzEoVCqxHWk6KtbXLyuhZ72nRh2+WE1aSGXybFOL8HuRi4DaPHh+EkF1KwSrznC+PgrNQ6/xOOzXh0MOg0tLtl1JIVaNUt3VRHgeOsecEFOjIDcS8T5R18qcORQkqaCRPbuGxK835GmkXzwSZpGGorw0GvVVDgcFzDPRXBhZIqmSbzsSIr+uOmnByZ7cMiTOBsc+xvb6x6gAG8gDqtJBc8dHhKJFCtpAaxCBj6RglopR4iPg48ncfHabB6AfJT7B5e9MtYYLPlP/j9CZdf8Az/h7SitknPUAAAAAElFTkSuQmCC`,french_onion_soup_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UPRKCMBBGvzh2Vlg43sDOgoOgDYU38BCUHMIbUNCgB6Gg8wYMBTlCbExY4iZk1DJfBfl5b5dkAGJiYoRnTv2DZQ8aaJMBp+thkXq/PQEA5wfPpQLVZNNLCJwTEZkAgJWG+zaEhClIGQsANfYdtvujmdXdLHXCfSLCEmu6eOw786xlxUYCAMpqQHHZzeBlNbB7aWZn4FqUtDlkWiNp89m4TGt2va4emM7AGw2iQBfczsc1dXURGlo9J/hJYsNdgq8kHNwnAN73eElErnbQr8Ip8iSEEePOC53iSqgjgs9oAAAAAElFTkSuQmCC`,fried_tofu_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DIPDAj8Fhv/4fLrpAW6HEvQByPD+EhGs5u/a/wYsvv0sAwMuS/BaQMhwkMH+VtwMG499Jd0CQsECcjnIcBAg2wJcQQMytLDnzUi1ADnsiQkiUPjjAqCUhZKKkFMNKIwJWQAyGJsaUPJlY4ekLrgF6EmSGAtwGY6cfMEW4ErvIEtwAUKGw5IvI6npnVDhCMsbKBYQCmvkDEWs2lELsEYFtuIDHMnEhCssQxGrFlZ8E2UByLkgDcQ4BqYW5kWikinMNcQkafSKh2CNRijdE5KnuQUA0jXJFH9Pv6cAAAAASUVORK5CYIIA`,grape_syrup_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUtJREFUSIljYBjqgJFYhSmBBv+R+XPWXyBKLwuxhvuavmVQMSliuHOmDypq8J8YS5iIsYASQHQQ1bpLoARR884XROslCtx/8Oj/wiTd/wuTdP/ff/DoPxFaGBjoEURERTIMqBVuIdkConxw/8Gj/y8+I0LlxLGTDMQGE8GIQjccBh5cPsVgYWXOoKggh9cMvJK4DCfFEooiWUHXjKAanJF8/8Gj/zUGPQxXvp9mYGBgYNDhNGXw+PCQQeXyJBR1RxRyGe4/ePQfly/wpiKY4TD2FXYGBh3bXgYGBgYGjw8PGXYIyDMwCMgz2OAxA6ut6K7HBnQ4TVHkN9xciTUucMYBPsOJkSdoAbXAwFkg/V+JaEPwqR24+uD+g0f/s9UqGZ4y3sNrgPR/JYapt9px5maCRUW2WiUDAwMDhkWwYMFnOEELYJbgkydU2AEARkyHfSdIwAwAAAAASUVORK5CYII=`,jackolantern_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7UlEQVRIidVUMRKDIBA8mJS+wHfkL3mAM/bpU6a3d8YHJG9Jny6lL7CWNHAg3gFHJoVbiHC3e9yKABwdqoJjJHxpAXO/nHFye7yyGrpWvBQnMQNw5wAFDkg6iFFkL9WBIdY4sWxuXMCYK8EYSKFULhZROUIN1OC1yW8wL/597TtWKIyFnE0xO+Lu5wWgbfYCepxYcRcLua6L7Cl6Pz9VMSyezfgRSYukEFnkPA69XvtuN49zYrAdpEgU9DjJOohPTU6cjdlR2YrQNv5MO2I4UmsAtP/4sPjLnxxfYmwR1yEmpvPIuwi53MYq8w6OL4W0Y7hN+2EVAAAAAElFTkSuQmCC`,hot_sauce_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAnklEQVRIiWNgGGTgPxQTDRhJMfz/f4jZjIyMROtlIsU15ACSfECOXpJ8sNrfkWG1vyMpWmgfREPfAmIj+T962Idu3E+UfmIswDCcFEuIsoCAPF4zWIiwgOHf/3lYxZkYkwjqJSuSbeYRNpgiC2atM6edBdd8ZpKknqg4IMdgGCDaB1pb0rGyCQGikimBVDQE8gGBnIwXDJ7CjkL9tAMAL4QnWOXkSy4AAAAASUVORK5CYII=`,rainbow_cheese_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABzUlEQVRIid2VvS9DURjGf5UrqZCwCBZNByQdhBvpQmLqH2BisIjqYrGQSNNEIo1BGCQsPrraDGKyaNIOGi4xSFiERGi6kDQ08XEM7j3t6a3bogvPcs77nvM+z3ve8wV/Ha4qcAgnzt8ICIDZ5oTiXMgMKLw1PyXX2EJjyzZgCspVfVdAWOROKBSpVEAAwhdM4gsmlYHFzKVjYDkBAYjRw4RC3BnsqjAv0JzII6lxrsRYWRJzY0ui1CkSAJHUOIAiYKx/Tj/f6FcC3Jyy0t6h+EI39QCuwhUIgFR8CIBd0+l1xZj3byrB/vATZ1Hn2luwBMTBjD9PMLijTJp+yQGwVLtMX3gKgO5wZ0UiVomU2/iWDRFzN0v7QkQAiM+9K8FGdNvMUucVg7X2YTlmlUieoofVAA+rAd6yIVsWd8ZRyez08IhiXz2f2ObYjunxcUaxr417vK4YAINz9lOtocvWW9frLHB6/Sj7Y7m8kEdvlf1s+oRs2p7pV7Cl9LR3q9iF5AD6RPHjqSJ0Uy/rD0UXrcfTWDajNr2Phpb8ZufoKSBHEltwusklsVjrLnY5PvllBYJa1OxZ7ff+EJtA0+Q+TCquavx6gPlyVovs/+ADoliAUUBEL7MAAAAASUVORK5CYII=`,salsa_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABQUlEQVRIie2ToU7DUBSGvzaIdZItRQ/sCAKDZWK2AbOXAMODkJBN42sgs3sCzAQZaoKKKZYMCRNLD4Ldw21v2y3o/urk9tzvO/e2hTp16uzMotGTRaMn/93vlT0YNbsSpSHBbMP36QEAY38JQJSGALSSmMeTSwBuvt4KWc7iqNkVGwIwGU7p355XTmrkeZGfhwcPC6I0pJXEum7gwWyjkwOs23MdIEpDojTUAZ0TmCvJx76isnVTt5KYVWfA2F/qSXxnpwUAdKOdyXCq8HV7rvWqM3A49n0J4ROvk2MADi/unGYzYb4G+Hy5B+Cs/w7La2VnBCKCd/QMoKIymQ1VMCAfV3jeHzv/FYnI7zsyorzMjoEaMJCBFwkyEm2yZJnGLVT7PHfosh/NkexKEbxKACBb0z7gUlaVICOqcuzBqFOeHxC+hOOYYjlcAAAAAElFTkSuQmCC`,soy_milk_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAz0lEQVRIiWNgGJHAysrqP00Nf/H45n+aWAIzHIapagm64cRawkSs4etWzscQL6lsJqiXoAX4DO9pr6XMAkoNxwtgYR4TE4MS5jD+/3dr//9/t5b8iEaOVJihyIYr1zAQZQFRkdzTXgsPFnHuKwwqfcEMTE/4iXIoURbAALLht/rmMbz8qkNdCxgYGEgynCwLSDGcgYGBgYUUw0kxGAZI9sHwsiAoPJHh2LFjjDSxgBjD8Vpw7NgxxqDwRIoMJwqgl0mklj1EuQLZUKq5nFoAAB8UtnDnOmpmAAAAAElFTkSuQmCC`,spicy_apple_jam_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZhJREFUSIljYBgFwx4wYhNcfv01Q6SmKIOJluZ/QgacuXadEaYeG2DCpZEYw4lRx4JPkl3LlKAFP6+dxiuPYcHy668ZeNjZGNi1TBkmzVxI0IK89HgGHnY2BlzBhBEHm+99ZOgoy/3f8/giQcNhoERWn6GiazKjrxI/YQusQ+JIMhzZkqNrFmGYhzcOGKI0CZu87DpeaewWQA22yFvO8O1QCwOXXQ1O+gRDJETPYcJuYWBggASRTTjD////////erAZTmftM0DhI9NZ+wz+W4fEEZWsGaxD4v7vYRRAMeS4uT4coxsOE8dlAc44OO7Qy2B5gIGBy66GgYFhDVwcFjzu02oZdhLhYKw52fnfe7gl3w61oMh9O9TCcNyhl6FhlQDUchKBdUgczrD+erD5/x5Ggf97GAUwxEkKoksXrjIwXIjEmopgwQZPRZOgqYiBDauDsccBNG3Dk+AFPDQsH8jqk2ABmkWUAIxIbvP2ZyzB4RpcoERWn6HN2x9r3YLhg2cWdgxtDAyMJVsZiMs4UEc9s7AjyVFUAwD/O/0eRzI1LwAAAABJRU5ErkJggg==`,spicy_cheese_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABZUlEQVRIid1UPWrDMBh9atrg3qCLSwYPhnbq2jVgaEyP0SP4ED6CzyEHCl27Zit4SCHEi2/gEFPUIZb49OOftF7aBwZL+vze+55kAX8dbAIO0cd58UtiUecR6jzC+90T6jyyBH/agWjJnLhevSrucwUEAPSRmyJjI9LiAIBNMsMmmVmF5tzlCOJOxw/p1+BcX0S9OVO0cbjAXB0M5mwSHneJVTNfpCcFF7HMUbY7hrBDQHWgxfH4sT69rLoJmRdAHLZqXMYFAMDnoV5H3Z/jsIwL+DxUQswLsF9yJSA7UMe0qTJ83j+jqTLLqemSOpVdiMPWcg+Qq2K/5NaiGYPVvhdoBlxQAj4P4fNQI6TvJnGXKbquCZgFZVxokbg+pobKuADzAswXKa5uXgDjLhJ0YyXx7VusEdCIZHzyvFMProEYOjnSeeuuk9CE+pOpQ7q5Qw7HQhx3iWiqTKC9OckzGSYn/B/4BhgmpsuPu4+VAAAAAElFTkSuQmCC`,spicy_pickled_garlic_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABEUlEQVRIS91VwQ3CMAxMxQZELMAGLIDon2cWYBBeDMIC6Y9/EQuwAQugsAEqMtJFrpuiJk0+9Gm1d2ffua5U4acqjK/+kEBr3c0dm3POT2YwouIEpN5a29Vn823kfWrV4lgPmlpeOvXa9/W1B6uMMb1i0GQQEDg9IQLOiPduD5dGQGCrzc4rBiDIsxCgC4AR4fN+9d1RPboDeMDHxNWjDj+SPJDz/+VLFMF2rb2PRMKBoVh6kY2Ajw4qSEQSgTRXJocnLIoAixYaR2g3klIkt3gs/+gyqgNu8phivs20F03TTN9kmSIOliVF5AEBYVtD+c8SU5oviHgXvD7LA77JUrH8h082GTch9rLJW0DfFz/6H7rf9hk80F8vAAAAAElFTkSuQmCC`,sun_butter_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DCgWHF/F+p8aFlqG/YabC2eADDdxkqKG+Qxn9j1jgFkyzCwAhQ+lwQQKHhDACCKQYHWM1/8vZw5RFA88JnYMrUu2YUYyzIIIWwGKLFhx+MMAWjBrYtP/wJg0inywfskshrT8OuxBNHwt4PnhijXYvnDsxhAnKYhwGYxuKrJFRFtArOEwy2CWEGUBLsNrA/nA5jWv/4QzyMi2AGY4zGRsloB8QZYF6IbjsoSgBaCyaGgXFZQWeOgFHcg8rJU+KKjIKZCQi2mYfpq3KgAeqqgZelcVKAAAAABJRU5ErkJgggAA`,chocolate_soy_milk_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyUlEQVRIiWNgGJHAysrqP00N/3Bl2X+aWAIzHIaJsYSRFMO3zcrBEPdKm8Jw7NgxnOYwUWJ4Tsc2gnoJWoDP8CkVXpRZQKnhDAwMDCyEDEc3DMZfM7ERKiKM1wKCQTSlwgse1siGt4vfJMYDxEUyzBJkw5me8FPPAhhANrycVYIhJL+euhYwMDCQZDhZFpBiOAMDnlSEDZBiMAyQ7IPhZQGhgo4iC4gxHK8Fx44dY/RKm0KR4XgtwGUJKYYzMBBZ4SDXXKQYThcAAIIOcW1FSq9sAAAAAElFTkSuQmCC`,olive_oil_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgJNZ8dlmB/8hqfz7+QJReohSBDKa5BXpuIv9F+N6APfHmkwjDpV1viHIcUYrApvJz/ndy/Q5m7tvNycDw8TtReolShGw4LB6ItYSwBUguR08QxFhC0ALksEe3gJi4wGsBPsNhlhGyZGAteLCV7T+bnhjevPjr0isGBe9fOB2K1wd0taBjuhCKTyoy34H5VPEByHBdQ0mGt28hhoKAZsZlBtPHItSzQEqOHcUHVLUAZDJNgwhfMqJKHNDMgqGfk7EV0+jBdfSkAAO+6pNgaQqyRM+cG8XcSye/IvgEKh7CFhDbKsChjuYWAAAtPZoZgsyz7QAAAABJRU5ErkJgggAA`,onion_rings_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABMUlEQVRIS+2UsQ0CMRAE/RExISlUQAs0gIQQGWQUQQUQkxKSIYREA7RABcSUAVqktfZPd28nn+EI8fbO3d7aTep5NT3rpz+g6HCVRYtR+qjS7V1vbREA8ct5m573R2bsr6/f7xpQJ8AT104Isj4pOASUxCkKyHg4yIzDcZNW61PuzgV02QIlzzL8h0UrAUYnVQBuhkAE3y0nLaeqASreOyCaC4rQDrSolkWadx7QpFjvddDRPckAiKuoVjSdz1oDtFGN/Me+H0DFtSp70Oad1rAAN0Uqjo3IMFcXQMW9MzlFHoA30esMcCuuN9da3VgR7QIH7UMHADvj3k6ANwN6GrUeRdJqoVM3RaVH3su9N7cWgHS1wAPxXpQSxlmFb1HURSkAGvPwsStZxO9eAPiNhXwBw/0AOoT0r0UAAAAASUVORK5CYIIA`,popcorn_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABgElEQVRIie2VP2vCQBjGn0taDSI4tKBLUYyD+Kdzp27uguAkfoAuLf0UdusH6NhJlCKOQqFbP4AWhxAFF4dKrUopmvPtUA2pNMk1trRDn+W4e3PP7/K8IQf867fFRB5qX++RXS1TGgl5OJob4zwR12k6uCXiujknrpMTXMicGxMirtO81ySiChFViBsTc50bE28Qq/l6tALmvSYZ47xZs4NIbiA+PYfEHgGpCv58DyyLoFkZu7HOe31wB0hV2/07TuY0K0MO3QC4AJZFLJ/SYMF9yKEjLPppyAcnkIPAom/vYQvIlEbQLo+hp1qIP/igpzTkch20Wv7V3I944wrq6Ry9hg+Zs5FzFJ+9QDsbJSISGgF468G2cuzBprovr+gmIgCA9DcdwIygpobJqpoaNiOCTTzCgE1zK8QN8OM9EAIkAwrqq+zXqiciSAYU171uTWaMMWpnoyhoww+QgjZE5zAGxhjg8Ff+UkTJgIKCNhQ6uSeAF4lcFiKf4HaXzp/WG0R0GZSwU81hAAAAAElFTkSuQmCC`,pumpkin_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EG0v1j4P0EnMjAwOPa+xRmXWCVgBitocBBjPsODGz/A6rBZhGIBqQaj247NIrgFIMPxufjTt38o5vFxMeH0HcgimG/AFpBqOMxkYiwhygKQgaT4AKQe5guUIAJJEBuxuMIHPR5QIrmqquq/68+ZcL3EWgYzFKRxN3s6Q1tbG9xcjGQKsqSkLBFsycVmC6KSqX7tCbC6nq75KIaDxLDmA2RLiLIBh+E4LQBJgCwB0TDf4LII5GoQQA4WZLUEi2uYRbgswGUwTD1BC4gNIlzqhr4FAOLAXRkvhyyAAAAAAElFTkSuQmCC`,salt_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3klEQVRIS2NkoDFgpLH5DANqwX8yfYfiaFw++K++6TjJ5t/0s4TpgZuLzQKyDQc5CmoJTgvIDRYGmI8JWlBz4S7JQdNioEyaBVcPKxFtibbtPQaqWLAuB2Jn0BRUu6liAczwR48eMcjJyaFYQrEFMMPRwwzmE4osABkOczXVLcDlcpBFyEFFsQ9gQYHsG+SIpsgCWLCADEdPPTA5qliAL1OQZQHRuQyqkOSMhmyB0R9lDPvOsaAWJ3SzAL2gA7kMvbj+T25hB/UmRvGPtT4gNQ6wOBRuxIDWyWR4BFMLAHg9rRn+GIpBAAAAAElFTkSuQmCC`,summer_salad_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABeUlEQVRIie2VL2/CQByGn9IlBQdJde303ASmAr4BBsMHIJmZQZA0TSZmMCT7AJgZvsACogYxNz1bTQIOKppOHNdey7UlW4biNb1c797nvT+/Fm666a8yake8rpLK95N+pcddnfF82Kv0f+IUoAR03nmh8RnofY0OlAe8rhLVeLO/zLzbLoAUSKPKfP1l0G0LA9nW9alB5sNe7ty0Z7DZC4OPEMZ2E3sZAeAFBnGYPU0Hxp9NeDymc4pqFNPLgV5gYDrQmQnz7cAiDmF3bwHCHKDzHeEF+ZWoq2ig0XSRHY00tJcRpgP2ISIOYdsS/btnAS6TFmA6WWL7IFagmqogCfYCfTloAb6bpBNlOtMR2wECFIcivVTZKrQAmWbbstK9Vtv24bRdyyg1fhnpC14AJn1DFkq3Db2HBN9NssQDK22rSSXUd5PcLVJrQXtN5Y2QqTozI217gYHvJkwXBm+jIz6UXlG4QiVf+Vv0C1CZcT2gACpVzf/g3/UD5wa+Sc12t5MAAAAASUVORK5CYII=`,sweet_potato_fries_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFElEQVRIS+1UMQ7CMAxsRngHG+IlCJ4AY/ukZmyfAE9BbLyDjiAHXXQ1DkklujVTGsd357NTV8283Mz41UKQdXix6L8WXU6rlyAe+6HY2uKLAr7d7ILi++OWJNEiAoEc5lQxAUjgD3ItEQ6HKVVQxGajEpxJriyrwkigVaUALTAm1EKjRczOaiyVINGqtWXyHZus/UMyK84Bc9XoS6wAQV2uRZQbfggRklEPuA+llqXIJF+IAoFWbzXSAtLVWtMVLKrrOpDsh340ahpUA/yaPLx4J+Bt20as63kd9ofu+SUaMQ5Y9xBvmuYzRZok18SSuIB7710cU9gkyVxRCRgrxl7AR++AgZhsCgFAOaf4bzqFiO++AQm8tH22dLVsAAAAAElFTkSuQmCC`,sweet_potato_pie_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4UlEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EF03o39P0EnMjAwGO76iTMusUrADFbz5iLGfIZbW7+B1WGzCMUCUg1Gtx2bRXALQIYT62JC3gJZBPMN2AJqGg6zHGYJfSyA+QJEEwqmV1xcDGLfIJGKDaDHA0okV1VV/Q890wvXR8gy5OCAsVebFDO0tbXBzcVIpiBLstyNwepft0YRik+wvGj1MjA9bedZFMNBYljzAbIlRNmAw3CcFoAkQJaAaJhvcFkEcjUIIAcLslqCxTXMIlwW4DIYpp6gBcQGES51Q98CAC9yVxnnyn4gAAAAAElFTkSuQmCC`,spaghetti_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBElEQVRIie2VIRLCMBBFfxngGhimAtEz9BBgEKgqLkANBgUX4ADY3AfBYLgGFYuAbXfThDSFGQxfZf4k/2W3mynw16+VhDaYEsTrxT6839YwFDwvDrhcb0inExhsKBbkBJgSxMFS7BkcyT7jg7YApgRl+Vp56XRSV8EgALXHUBdk4CtNBnfxsnytvpcTwK2JCZbevDi0IK0K+gT7PECPKdFqrGHLotV/2Xf2sNvq0NO9zmYAnSvCbNTwbFhIr1AAgMhK1BSdq6Z9ySjuTcmzCizW5NsUK749EBjTb8juw8dVyNu7AB9B7HAfoBfEFf4OAOD5IkMgMdrOrC6zGCol+h/xl9IDcxCDNEfiwBwAAAAASUVORK5CYII=`,strawberry_jam_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAVRJREFUSIljYBgFBAAjLon+MGsY8z8h/YWrjuJUwIRLgschgpDhDAwMDP+h6vC7AB0sv/6a4ffJTQxrnv4nZAFDiDQjI6u5H0OkpihWeRZcGtc8/f8//vtJQuYzLHxq/j8ST1DjtCDRxYJx/h6CQcSQ6GLB+AOPPIbNy6+/ZuBhZ2OYvXz1//qMZELmMzTOmMuQGhnK+OXnL6zBhBHJpBjOwMDAUJ+RzDB7+er/POxsWOUxLCDFcHRLsMlhjQMtFyOSLGBgYGBgCMnGKowzH1ALYLWA49w5Bo5z54gygJBanMkUpplSQHQQZe83ZMjeb0gbC2AG9xYzMvwwIi0BEO2D3mJEniTFEqIsmOp4nuz4wBrJMBeiG4rNErhvcOQDvKmI1PDGBjCCqFhKkDEch2twgfCQbIZiKUGsRTbW0lTqxCGG3mfvCRbVyI56ZmGHs9KhKQAAu7Vof/9SQdkAAAAASUVORK5CYII=`,sugar_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUBJREFUSIntlTFrAjEUx/8tdpBIN+lYpAURl3Np4XZHP4F0cG2/TUtcM/kJHN1v6KJbUXToKG5Fs1RIl+a4u7yX9Czi4h/C3Utyv/977wIBzjq1LgLr5r8sn4GZJgmaURQkz2czdOKY5FU4uNY6/biopNtFPJmkcTOKIIXAy25n/tCV1IAcUojcM/tepqUklIvt3EEGVMbF0ZDGNKQhDbh+pf8AAFS9jsFm42xqqyoAYPH0CAC4un53mKyBFIKEUmCrUgZaaydzDuwz4I5pDh4C++StoCy4VAVtVT0o46LYCr6/HpzJSm2ci/fbXi6mKrgMZTBUfQxV34HbtZDYFlk9D0YAgNc3BlAbO5VkxVawXK2D2SHTJm5/sEX4zdJWkpWdo9pn5b0PPqa3uL+78Rrvtz0sV2u0Op8k7+g32tH1Axo+8aH5Pi7fAAAAAElFTkSuQmCC`,tofu_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABLElEQVRIie1UuW3EMBAcmgTYgSAIduASHDhw6ALcgMu4Qq4MN+ACFCpQ4BIcUCYO14EACuvgjtLy0YmJHWnCITmzu7MgsGPHjj+HKLnUdy2VCj6/vAaamwZ919LDfYPRAVql55wfHXA+2cDkrkQcCEUmkvMdz5vBZgtYNeDio7twE0loBUgxBbwZLHyXRQZ8LLzKWFirRZzfAzBnlhjkxsJFOW8Gi6pukvOvj8NsEkyt71qq6gZmsCASECJcHs5VdTNXzrtR35/BmyQWrRA8jLdndICSEvbHgGd0Pi3iT+9H4Lqh2Qx4u0rK4IyH7LEmvmqg1bKKPFjP8QL4WGLx2ID4YymmJFhvptUlgy1xTtA1ebjHt1xTWWyJA5mQ4y3Ywi3x+KD4Q7uh8f/4BeeCk0AHVwhiAAAAAElFTkSuQmCC`,vegetable_oil_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS2NkoDFgpLH5DERbwL71y39kx/z05iFKL1GKQAbT3IKWatH/oT6/wJ5YvYWNoab1NVGOI0oRsuGwYCLWEoIWYDOcFEvwWoDPcGItGbWAYIoa2EgGReTQTkVeNvr/nz18gLc8lJJXYNh25CLOoMYpAQqa4JhDDMfPXIJbkBgTxjB/ySoGZPrGjRsMa5fY4Sw6iLIAm8Ewi4aGBbAwQvcJSNzSRI+8IAJppmkkw/IAMVUqvrqBYE4mxgJ8aoa+BQAVra8Zml1jUgAAAABJRU5ErkJgggAA`,yeast_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS+2Uv0vDQBTHvwc6RAIhOJToZinURYiC+RdchG7FvbropH+HTrpId+mmuPRfiKABFwNSN00dJBSCGRRP7poLaS6/sHQQfVtyl8/nvXe5RzDjIDPm419Q2uG/1SKa6kel6qts4mCntw0aKQgBzPa18BUy8hbjbDcOG+huNpGVfufGxe3JY7IwiZcloNZRA4zoe+/otdbjzAXp5XWEpZrGL1H76g66sQD2YB9z2QQzLeDwwAvxQSmHPw/HsLwQknlCoBqKJEkK6NaZCX8QYOSFuGiZuZmnZexMdi4daIYCva6iv+/ElUwKTk3+rf8U4JNSdK1VqfdJOGvVck1Dx37AHCHQV1S+3D8oEQjI2yDAF7JFLLNd2+UNX6yPwSIqC5IiaSxSGVwqsPaa0NeU0vlStMG/D2Gfu5lnwF7SaSRpuPTPRpn9SJIFzxPwSkQbWEVFEbVDbKl0k9O89JSQrkFRAlWG3VSH/vsF3ysBgRmuWgXeAAAAAElFTkSuQmCC`,wine_green_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/C9ujweYbeC4FUUTpJUoR1NX/z2+DWGDoNVQt2LIkD+wDn5hJtAkimseBR7oU2Ac7Zj6jug/+e6ZLo6To7TOfEmUJMakIw3CYTcRYMuAW4HQ9sb4g5AMUC/4zQEoKRqRMTCiYiLYAZHiQrhvYgnWXd8EtoYoFMMM9bZTBFmw/chduCcUWgNI+yOVetsoM/6FlKSMjA8O2wxBLCOUJgkE0a0oC2HBD41qG82dbGP7//89gYVPLcPJoM9iStJwFePMDURaAgoaRkZHB0LiGgY2DgeHkUYhFoKCiigU09QF6HIDCHwSoFgegMgg5icIyGCypUpyKEIUcrDqGWQHxCqUWgMxANxmlVCVUNxNKReiGkcwHAB32mBlT632HAAAAAElFTkSuQmCC`,wine_purple_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABWUlEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/bB5+sPlTv3wEUUTpJUoR1NXDwAIlCVmwZ+69eEybIIrSdwZbsOzi3qFnwX+Y62HJmlhfEJOKMAwnxZKBt0BAUPC/l6whw39YHgblMCZGBpDAskv7CEY2QR/w8PD8X7ZsGcN/mA2MjAyf/SIZ+DYtZ4iKimL48uULXjMIWsArKPh/+vvfDLybloFd/dk/mkF271qGx85BDJmCbAyf37+nzAJuHp7/2zeuZXjkHMQgu3cd2GDejcsYBHk4GDz9gxm+UsUHn/4zMPByMDB8+Ay25MOXHwwMjIwM0dQIIlApemjvToZH7uEMvOsWgVPo5+A4BgY2FoZMtr+UBxHIgkhdJ3DK+f8PkpTAqYjIIoNgJIMsQM/FQyuj0cUH9or6DNJ8IijV99NPbxgO3r9IeU6GVZc4GgcE45CgAhJbHRjKAc39ixlOVxPLAAAAAElFTkSuQmCC`,apple_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP1JREFUSIljYBhRoM1G5D+peljItUwpRQlu2b059xhxqcMpgQ3AfDBHgw+rPDaLmEixAB/A5Qu8PmgSQQ1zFg0I/ecGA8OCAD6GZ7ufMfx4+AOvGTglm0RE/kfFRTAwMDAwvD56GKua3XefMjAwMDDUvXlDWhwQYzgMiFrbMixbtAKnRRgCpBiOzSJ0S3BGMimGw9RHxUVgxBuKBU0iIv9dlaVJMpiQo7D6gFTX4wNUywcjxIK6N28YYZmHHCBqbYvfAkoBUfmAXF9gcz1WCwhpwAWwuR6nBXVv3jAuW7QCqyXYfIfPMSQV1wwMDAzmPj4MJ7dsweoofGYNXQAAcmlmvV0urLkAAAAASUVORK5CYII=`,apple_fruit_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAEhJREFUaIHt1rEJACAMBEBxIUv3rxxLZ4gYMHDXB1L8h7QGANSw5thrjh2d6znrwEdu2/GKllFCpChCDZSW8Rk4jAAAAAAAmQ7xkRFp1rUPoQAAAABJRU5ErkJggg==`,apple_fruit_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAJ1JREFUaIHt1T0OQEAQhuEhInEOlWZP5HhOpFE5h0RDpfCXmF3DivcpN2Q38/mWCAAAOFS6fCpdPmnfS6wO0xSViIjUQyd9O17eJ7U4UJR8I4Pa26Neff0h7biLV8ssp7ibwLLR2XSsp5htF96IKZg2Ms3z5tPQRvzNX0doq26N7Om76Z+RIRoWUXo3xqp932zZGdoHAAAAAAAAIDYzqQZOI+OkkEgAAAAASUVORK5CYII=`,apple_fruit_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAbpJREFUaIHtljFrg0AUx/+KIaSdHFw6FDKJkCFbln6KjCI4ZM236FfI2qEgjv0UWbKVUpAOpRBolgydEqGF2CFKTj3PO89s7wcOyt3zf3f/994BBEEQBEH0itFnsNC1cT+4QWzus+Lb8m5mvH694/njRyqG1acgAIjNfRaNvPOL7yF4eskecCu9cLNvQSXiRHnKdQV1QPnIQteufWP94Z8cI0iTjH3f4igd35D5CSumzbSysZqwAGA6nmC125RWFbr8QDzTLsczAziLUvk5DxMAVrtNFi3miEYeopFX2gEhcYJoMS8tRpeLhzpkhMo82aOsZVmQJvBPjnTdkBlfeG89PGTFMx1PuGMtVDLDPznG9u/Y6AVuFgnGs4lQ9R6vU3CzTGRM1SwKXRvr4eEiJidIE3y+/dYEWaKAuinchcZK3XTuPJFt5McsNVZYqXUbJfIdDV3AH9S994hvNUFldR3LAiOKXUxTO9G6fqh4rJf7kKhRNvW1ooV0pbWgVWGbaCmdzx5TviFWEe6QUtC8r3UxPku/FzQN4xdoCarWF9U+yENrctXYbX2NIAiCIAiCIAiCIAiCIAji2vwDnIL7S+vEpDgAAAAASUVORK5CYII=`,apple_tree_dead_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAvFJREFUaIHtmG9r00Acx7+XlcLqyorWrtW4MBwiiLQwopThA0F8Pb4UX48KIj4ILCIDwQcykWj8Qy0jrlnRdW18UC+9JmlyubsWB/k+WXc5Lh++vz/3a4FChQoVKlSoUKFCF1ONejVYxXs0nk2NejUw9NpKoLiAePXoSVn6DKVAL56eSZ+hFEiFcgEl5ZHqvOIC6vUHxHG92Poykl0oZMusthLvxl5/QAAEhl6jS4Gh1+C4Hn2mREIOOa4HBiymLAfTnktVWZI7WXmV9Zw7ZEgO20L92xOwwBQmLczK+xBbkawTPDDI61AeKOokdYq3AGIONerVgKessw6POsVbjYkhU93s8rSGWMjWd33iHIWJG4j2GJozeRVzaPxbvsexMHkbZ2LINm/4hDY/NnS37+eDFenisZC5hxPoHQ0tY0AcZxa67btjEgyGOGb2ds3p3y8jDe7hBOAI1c4+weiUhPujSnTIPZygogE3dwahU5/frQXV8npsr2VP97f35tcXuZMGsxCIvoiVodfgn4wTK69rAo2NjUx39I6WCpMKRLXXXkuchaJ6/soPP1N3dpmc29nnS6VUIMsGvBMP7TsBcVwPpLSF7eYfroO7JlAeTV3RO1pmqKgyrw7LBrqmD6AKACClrdiLF+n92wBAvv7KfblSlxqtW+Hax0+zliDaCIWALBvwh/7cGvvya009/Cw7QeYaPx50N4ltH8TWX1u/AtO8F/6fFkZlQJYNfPvhLnze+/4htn+pQKuSNFDjyqzqhsd92ePkgAy9BuvNMMyfn8MSjOunUuOCkpCx+VMqT4TzRxiI7UW8nZtXFz+paS+iLkWvkpUCpfUiFRWWGyhNKioMqnNItsIgChTNI5XKDZR1p8lKKmTRC1WFlObQ+ZkmNXpAJdDVyjmcr5ekfw8QBoqOtJXLdVkWcaCkkVaVLv5dtmwVQFkSAuqa89/FVErYIfpdTHW3Vhay/24eUiXhH84fP2ySZy8PmKuihO3WUHpA+wuNIFwWNqXUngAAAABJRU5ErkJggg==`,apple_tree_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAVdJREFUaIHtlTFLw0AYht+IOBYHoYOUm5NsQob8ASenkD/intGfI538Dx0Kbk1wDMVBcJCOLufQfHraJXf3BYK8z5JScs3T7973AhBCCCGEEEIIIYQQQgghhBAyT+rG2LoxdspnnPku6NoeU0olvgvqxtiu7QEAu7X/+kmQCeUVbFlAdVpR/7AsYA8rYLEHNludaXln6C+3L8vvzxqhjxZyZbq2jw69mlDX9kgzgzQzUVLB+14WAHDMEJzGicjjQz99A+vG2Lz6aVVZwN7nS9Wmjd4yyUiaGbhS2owScmUwbI9IXV1eA8O03PtDMzR6QiIj2ditkUh+hLyCzStEtS36YLy7uMHT5zMOq9Ngy1R9Aq5Se1cGzhR9ZQDgXENosT/9LrT20RN6/3iN/YlfBAsNB6M6wUKb7fEqtddC7V2mxf8RkgzNJtRTMTuh4INxaFmC4k31zf8FX1+FTiIxWQUAAAAASUVORK5CYII=`,apple_tree_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAfJJREFUaIHtljFrwkAUx/8pBaFgBwcDgmQUk0lQMFO3foDgF+nu6MeR7HXrZEEhkwkdD6ngakFwug7h2Ys5jZqobXm/JcmR3P3vvf97F4BhGIZhGIZhGIZhGIZhGIZhmD9Or2/JXt+S11jrXrc43Q8Hwuj1LRmFAk3buoaetCAAiEKRuG/aFoYDYVxDkHYRilIUCsx8/Ts3w/EgHQ+F+ueQJ7UpU6EIkSg1YjTp56vAeJIe16U5y5N3x+zG8SBnPoyZD4OE0cQA0F2bcDvJKEahgC4KWZ486A91N+oEJKppW6jOKyhNF3h/WKaipHpQF2EdmSnT7eZnUiGr5Yr2O/pmV4jjQV6sat1ObPgXx5S7KVPFqJAF9pk600NZPH+YqTGqTF16hgNhHGqyucLmdiC7axObdg1BGGBVj8fzpCR3hIhVPfZJ07b2VthFBbmd+DpqLPH2FeBxHj9npSSLk8K6W8qUMgCpsj+XoyOk9qSij5KTBe22e7Vjb9o17fsX9xCJoeqZ+TCoqggq9ygUZxs7d9m37BZK0wVGjeXWW+rvy6ktoJCyHzWW2yqDEsVz+lHmWXYMT+UWAgSJsZs1xtJ0kXeKBLkbY9GcLWg8ia+bdq3QKBV2lhXF/xFEHipNF9pufXVBl+LXCcp9dKjPRfx+fANh1PjAaOOmbwAAAABJRU5ErkJggg==`,apple_tree_growing_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAwFJREFUaIHtWKuO20AUPa5KNz9QRcaJkUFWMtpl5VZ4eVl5YEBZUb+gNPIfrNSilVowyA62wgoK0g+YAu91ricz4xnPrFRFPigZOzPH5577cIAZM2bMmDFjxowZM24X210qTeuma75440Pm2LRXpGg9FpwJmXBsWqzWKQ77NolDyQNZCQklRLRGCA2fVSHd5mqI6goJJxoavgEhTkC3eV0hsYUoavi2u1RmJWRWQtJnnfRqiMbWg0kRGdM9roSKTWSCtoP5YVxZTubjh1yaSNmMbzQ1mVU96OEuH2xMvuHmth0+ZnwtIXrqukKiOyhf5yg2kId9m6gmLjaQ+TqHaASefyHBi9mJlLfxTYYmUmPhyMrr67qwmvBWt6h7gl6pk9NzDXBsWtQVnBTxrhdZefERDwtYuPg1Cn1WQrqEyruX1RUS0QiAeUm9RzQC52VHnpRZrVPomnMwIReclx1xHiZKgDFoPcRBT8Sl7sIk+vBACdfC4DOXzBoQ4nIe9m3C64wJHQnR/0711djDqbgK2bFpQYUrZrN0nQQGCpEq3bf2pTBeb9Lfw0LDwxeCKw9xNaiQcXPyMIpGOBNxVduYZaSC2tN0G6u1x7Snt6k5mUvTvFTZS38Lmwpt5jYqxFWgXrRap4Ox5N37FL+Xf7QH2l6ZbObWKmSTlrcBW0mgqnzYtwmv2NEyV9f9t7tUfvv6Sdv9+eRJHnyVMVclZSLE7+FETLM6IaiXLU7A56cvVsJqTxtrssHNlY+0nAj3DcdYkx1tri4o7h8hGtFn4JhpvXrZVNDI4Tr3mDA59YoNAECel933xQl9lXbp6lEIUVEjb+hGVl8CKrz/H1KrdWw4EVIHNf6uVtw/au+f6iFnhYgM+aKukJB/CJTuNORNIeWU9iZz8tmZsgzM1LyfuRIKTvvnn9/x468YkCMCU5polML4cJdDQAzWpnbzYIV0pg7Bq7wohiCKh2Li9hSKjZnQGKIQipn6t6lQTEwmxIezmIimkOn/Rl/8dyELmoFVRWLM1P8A+D8tayWwTnoAAAAASUVORK5CYII=`,apple_tree_growing_4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAA59JREFUaIHtWE1rE1EUPRNrUZCAdFHRQgQRTLLQIFOYVXUhrtxEf0DX3XXvsj+nZO+qdhUwi+giaaEIDq2lbqVYsdpxkd545+Z9zZsXtSVn08zMe++euffcjykwwwwzzHAB8Op1LSu6vugeQsXl8J1h6kyK1vvCSsiVBBHeGaaoN2rY3EijEGcr0Wwjk4Y5mWYb4/u0VkXWBUoP6QyrQiE9Mugg4i9QNHwVScDVsHxGIDLNNjKv8JHLye3c/RwyFKpnpv2FQB4iYjqjpmc20t6Qhvnbmt6+DBkumQlRDzqIuHFZg6S+yLODDiKXjJJrjMKnw+la5RHpQelNm4b4Gq5d40ITAQjN6OqSjhBEIhkXmfQhMwkG3diMeetNGpehKmJUVnJdqLS9jMRWb9QAJnY6rN6o5e7ZSO0MU5D4AaDeqKFI09aGsIi7bd5Q2SjUkXmK6ryjSmObJ0tD5SWnzPGFrcCp6pXq2qenRXzT5kYacTGbujQnoFvrskaigvMMoLi7jgyUfXItf8FBBxHpxzWjIn6ITbASPI0hSoV8IbJReLSl+LtowCRuGLRo0qiy23M3y+ZpI0ke0HVx21g7p9vAxxCqzLxyq5Dfm2YydC5jbUV1IDfKvVVv1NDaWhgfbto76CAiT/AwDjqITDqa8JCK/R/hplkLC+CH2/aSV8C+SIJ9tyXxKHxJrB5xJRHTvKTbV4glEen2Jjs/vTEPpanfQVMCJkJmQ6vRAtDPAER3nuczhsjYQmJ65v1t3+3lq3qzjay67zHnhCJE2NxIoyQGqvsj731+Yy4NNhQK2Ug7/Wwctn21Rogkx9KjCg7en1ltlPaQNKyDCxm4Ekpi4NnKDdWj4MOYE6FuDzj+dpy7NwrbGMGIBfkPGgCsra6Pf7uGUQVnQt2e2lC3d/733Vvl/akRYoai/rDvZ80BwUIGANtbu7m24oNShFqNFpIYGemnuniC+GG5d/TaLcPG9TM3f+atH29CHKcn82WPyCGohkKgMKGXL5Zy18uPmyH5FCPU7QGHRwf0O6ejEBkGnwFNh+riCeKbFQBuTVSHoBoqm2HwJSR1FBI+rWOso2ng4qe9CT9/VEqNHghJ6OuX6+h9KJdhCDJTLz8BAKw8fQD+RftXCZVNbRMuj6jLileHy+OhacGLUBIDt29Np314e+jw6CBbW12f+Pz5Z4Qktrd2g5zz32nIa8JLYuDe3fv4+GkvV5lPv1+Jrl77Vapw/gbAXZxH6Oy2KgAAAABJRU5ErkJggg==`,apple_tree_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABwFJREFUaIHtWUFMG0cUfbOwDiHYmBDHEOyA41YtdiowEUioh5Jz1EZC4oAUqa2UU6McqqqnnHPuIUpPOfQQKYdIkXLwOe4JCaSQqAFaNYCJCYS4Sb22Q5ANnh7MH2Znd21jO1Ej5UsIe2Z25s1/b978BeBjfIzGgjVzsuhk+bfvZAfSL/M8EPSy9VQGC/feAyBaXI5A0Iv1VIYDwNT0CO7eeQhfr87Sm8WaQVUFJC9Mk0YngbGwjtnlIqe+M+ETbGX5Hz41PYJ0dlk8k4gbAMBqBaTJC9OP3BYIegGAB4JeU9/scpHfvtKFiQudmJoegRMYX69+KBaYuuPBU61saWMXAODr1ZHeLHJKP2kCOBg/caFTTLa16oU/lDGBOQxdJkAA+O0rXbh0898yGP9Rlt56Kxb0ecIWUARYBbW0uIbe0y62+axgolkOu/aFezYZoskTcQODkX6xYxkUgQUAFcy181ncSpZMGYIieLl98FQrljZ2+VhYZ7PLxQNRRyeB3tMubD4rCFCXBzRcf+CBP5QRdFAGaIzcTmAoSNBkA6SxRNygDHIAkJhhJkAA+MSFTmytegEA/lDGBEpoQ6FT1o5MW9+Aiz1PFoQNqIKXs0vgTYBUTagLSTvDF5+48MfTgmWsKmyVUgp1XqJRHPuFe0B6s4jggJsl4obpYZps4kInNp8VOIG5faULW6teQZe6gcFIv5iHxvhDGTFma9WLRNxAT1+70JQpQyQ8Sq9KFy2YiBu4faXL1OekOShilzfoD2XEQUHZSpg4ZW5PO3LZbYu50SJqmmWKnPrUDKtj6DmfJ4yLx1dx6ea/YLJ2BiP9thzbLaC22y3oBErOmJz1sbDOtLHwgZD9oQzODnULPdAkZ4e6K4KhDeyfFPGd9FULmN7TrrIPRSfLDi3zSym8/sCDs0PdgkKnU6K4s7CO/r4C3Cd68eTxK0sm7U4wAMa+//nAodUFacfU5wRuaXENXm8Hy2TyFnOlDdqBkkMAik4CwQE3UsmcSdCJuIHjvlYGAK/Tu6Y+JyNUDdMuq7SxJ49fmTZOPsTIodXTJaEWGVIntAMlG6UdtXZ3Y3DAzVLJHBbu7ddDsc/cjLxAjsFIv8lpKdLZZZwd6raY3tT0iBAyGaBdhuR5pqZHkErmRKGnuT3tmP8rZ3Jd1aXlyWiH6eyy6dTcfx0SbTJYOdN2obLCopPgapkBG3d18iKnPgK0tLiGvqCbPU/lxDqVCjkNCs9OYNRdUyZ9nrCjAfpDGUxNj+B5Ksf7gm62tLhmyjb5j1xVsi+/1bH2eI93nimBnFo1Lp8nbDnuTteAXT+J106P6ksACwxraGnj2Nth/PK1YQunTtdDpatBvZTtgDsB0tYflbC3U7707955CJ8nbHrYKdQTIwO8lSyZrh9IMpCvFLu3EgYAgWEN+jGO4hsmqLMrIVQayNzUXdtlxa683TdS01uJQCdTd/Gq2zIpXRuVjLGWkkOli4p7QRl1ytTJvqHeYf5QxgIGCoWyOTqNwX5xL7/9mgBRtLRxZqxoSMQNJOIG/KGM6X6jNlr4/o2cZUHVpe3MNhE38PVPBmI9LquG5AgMawDAg3qZ72ywfJcl4gaMlTL+zjMlGCsagnoJLX1tLJks8ItX3VVpo/uO5tGPcVZ8w7D+6EBbtoCOMo63nPGgXkKqqAkAHUc46ypxniqWwQDAdgnsSMiFjae7QntqNmRXNlY0tLRxRvKQwdgCIlDdLSW0a+AAkCpq6OlqYzy3DRcDj0VimF+cF8+nihr6Ahqer5d455mSxQDlzNhlRQ6Lhgh1u3YA+JuhIej5be52HbWMnZkrj9/Z3EVQL2eStCZniDJTCYwjIFpIjlgkhnx2j9uNHR8FTnZ0gMAbKxqMFQ33b+RM4PZ2KoOpCIjC6/GyfXoqRn47z2ORGAAgqJcQ1EtoO1I+sURV1UmqAZqZAzLZDDraO9j84jzGzkVRfOuqZV4AYK6Dl9GqVFG0VhswMweMj+bF97FzUVP/+Kjzs4sPOQBblh2jKmUUlKXxsQm5+XCrNQvQzByQ386b2kgvAHCqJyA+16K3hgFJC7Nff/vF0r7xYp3/8N2PclPdf26uGdDMHLDxYt25fzZhGf9OAb2vaBjQyW6/+Pz7gz8bna4xQLFIDC9fbQn9ePxvsVvQGvr/SVMok/XT6irVrZ+6AcledAjnrik+fFGTF1GW1KvkvQKq5EXNOGGHBlQpmnHC0GwNNXrCUC8gVUfNjEMDqnanNRoNUaZeqM2Ipmpot6BVrCBriaYBym4dRaur1HAFWTcgtaT96vznjWKpH5BdSdus+PDvsncdHwFVi/oKtFHzu1gzo+4M0btYs926aZT97+qhZkVdBdX4KBAe+BTLyb9NV0Vxp4XpbXsN1UT/AbUUA79aGpk9AAAAAElFTkSuQmCC`,apple_sapling_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAA60lEQVR4nO3UPw6CMBTH8R/GODh4A9IZ2EgYiFdwIhyHUW9jnDyEk5swN8TBxMEwutTBFEtMtOS9Sd9nJFC+9A+AEEIIIYQQ/6uslCkrZShjTDhjmlqjqTUoUWxBTa0RxQpRrMhRJEkBkxToX86xbN7KSg1enmcwm2Vq8gxsAd5LZvdIFCu4Udy8gtwYADjtEHyKoiyb9wzZmO1aBzaqC4f32P1EOW3B2AdceQazmqXY34/owmckgD7Ezqr9CB8sx96NAV6zODYGAKYcQYv2/drYEIs8Q9fbmTrEANufmosEffN7QYf5haOj9wCqOWHeZMY0fwAAAABJRU5ErkJggg==`,apple_tree_sapling_planted_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAARlJREFUaIHt1TGKg0AUBuDfsKTYIjeQqdVOsJC9QqrgcSw3twlWe4csCOmi9SBbBFIEy21mi2Si2YXFzDwIhP9rBIXn78y8J0BEREREREREREREREREREQuilKZolTGp0YgGaZtNAAgihU279qp9kwqUNtoRLFCFCu0jYbvSt0tz87XZAWTrHB9ucS2TVaU6ubleQazfktNnsHYgL4mb5k9I1GsMA4lbVKgcRgA2FcI/gvls22TV8iGsd2zrxD04fB8Ww/nqW2088H2avs8g1nOU3x879CH55C4rBBGnXfPCBBp+z4EFt3wcTaAyzx6kQi06P7ee9hgPJ6+fEvccA4kNXd+E/t1SHneQNtapo5zIBvg8/Ugk+TiB9HsZVMDm5FIAAAAAElFTkSuQmCC`,banana_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAARJJREFUSIndlD8OgjAYxR/+mfAELiSayOaOzHIMhw4OToYbeAHj1MGB3d1JVxMXL1AO4Anc0NSFRigt/mlNjG8itLzf1+97BfiyHPGQzPyPTQhlPJn5jvQOANAwKi83n456IJRx1boxQEgHadkwnyw6AID1uLpm7QQ6WQGEnovQc3HYDyttMgIQyvj1simBZFmZQVE8DeAMjlxcgd+dgWhP87z6DuBVWQfstydzQF17ojhD8b/0VopExnXmcvVKgO6nJYwBaAcrV18BEMo4TwMAwK07rxjUJUZVfQlAKOOj/oP3LH6yuap62EhRnTmKJxAb8msO0SoTc6iGLIN2y7bywyjOSvtfBsigKFan6pnx/+gOFz13YOwa2yQAAAAASUVORK5CYII=`,banana_fruit_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAixJREFUaIHtlrFv00AUh3+XOElBwRgbkCIk6FIxoEpdGLylexaGbggpa/6CTgydmJBgZMnAmIkqa5XxaKVKqQJIrVURIUWp2jo4bZHi1uYYwG7cNAlVz0ZI75t8d7rnT3f37h1AEARBEARBEARBEEMw2QHNpTnxs3cedn1thw2NAQB4zUpGyFyaE0ZOi/QddPvI5FPM8318rFuh2DgpqUKl508FANiuE/YZOQ0H3T5yMxnmDs6wvrYzMUZKplAgozCFAWBplma26+Be4TbcwZlgNwTmTR2L5YSEUq1t3PrhM0944DULvvDPx3QBpIEW76FRHR9DkSnE7mbZTOcQn77dx7ypj45np8eQukLi8BSrW0covdDR4r2RcYUpYaYlIgQAi2Xg3ZuNYQlmuw6MnAZPeGLafKlCq1tHkTavWfCEd6UY0lfouJO/1nzpQtdFupDyfTRxg3P0T4Tu3HQj7aueI+lCGScz8SaeRixnqFHFWKnB8UmyQkHqqxsPAACVoopsvw8A2Ld2YRYeoVJUkxMK+PC5E34/OR2IfWsXjbc14OuXiZdjrGlfKap4OPsYAH7L/CHouwypxfUiXUcH2ttieaWK968bAIDllSpevSyLcW8x6U/YYZ4tzGLPMURpwYz015scvL156b9j3bI9x4CRV1m9yf96Tuylwz6JFtx6k8PIq2N3JpFaVtCMyCpdlExMiLc3AQBdxw6lCpoR67klCIIgCIIgCIL4z/gFhUm39sdr3R0AAAAASUVORK5CYII=`,banana_fruit_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAnlJREFUaIHtljFoE1EYx/8vTWwq6XnmGmksiKCpQyNWtIXbkkUIDdYlW5ZzsBAoSqZODgXBSdCtLhkcg4M0IEJDwOWsYAmIQhOHVggJxJNrrNLQpM9Bk+aa5gZ7d4vfb7l379333o/vfXf3AIIgCIIgCIIgCILogVk9oZwI8YPvh9Ou50usZwwAoGbLzgjJiRCXhkVDX726A4/PxVrtNt7lyl2xQVKWCsWTMxwAtKbe7ZOGRdSrOxj2elhzbx/r+ZLpHC4rhToybuZmANgQG2JaU0cgeAbNvX3ekYkqDgm5Pm5i9GebtXgLaraMRq11OObn3XYh45AQGzvFvJVv2F7juCr7MX7OytlPwL37s4Z7ORHi8eQMlxMhPjDoL5bXUFQBnj99/8/xlgudFMuFzAp2e40jqsB02xzJkNdXxkJ6DCv5kBPLmRNVwM+fvcw719WNGDfLki1FvfBo3NC3kg8hvRjDlTtfDKJWr20qdfOWD1EF3YysbsQMbUeF0JOpXoHe9tEsdrD8+NFhfmoCjdkKJqUASlqdpxdjeHD3DS5cP8CkFGAlrW76Rlou0yE5N4JUROCXpl3869uXPBUReHJuZGCsba99KiIgFREQDoQBAIVn2e5YOBBGKiIcG+e2S6iq+/80tjb50nIGL54UAABLyxk8fqjwqu5nQKMvzpYamp+agMvjAQDUdInHp2XDeK6oQjz9g73+3H9Ys2XLXn2qoKZLqOkSJJ/AckW17xn91+ixsbYI3b4mQN36AADQdo3bkiuqkHzCwJ1x5F8WFCVDlrTdRlf4KLZ9h3qRL95AUJRQ1TUeFCVW1bWBQgRBEARBEARBEP8ZvwFFpOQ2GmcYagAAAABJRU5ErkJggg==`,banana_fruit_growing_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAuZJREFUaIHtlj9IG1Ecx78vmsZIvMa7pCQKpdBEBSO19A/cliyFoFQXh4IU0kUICMXJqYNQ6JShTk4OnYoUtAZCwSB0SaXUKtLSxFC0kCYQT86orSHR10HvzHmJ051L32fJy/vde+9z7/d7jwMYDAaDwWAwGAwGg8GogRg9oTjipye759OuJDOkJgYASM1tXo2QOOKngs2p6Svm92B1WEj1+Bif4puqWCMpQ4UGRx9QAJDKston2Jwo5vdga7GS8lEFK8nMpXNYjBRSZJpJMwFAmkgTkcoy3N7rKB9VaIUeok/kEYpckZBlI422w2NSpVWk5jZRKlTPYzxF4audunp26X7OgY52n/lCxHWNtOR2sL1E0Sfy8NwAtpeoGp9Jnhb1788eGnyCujtlqNBCcgfv10sYfMpD+sHTSluWKhK1xT6T9CP/N0vrzWF4DYUiQKvrr7obl8HbOs0XAoD1nxuatx+bcAEAYtMJTIyH1d/UW7tulwwX2s851LayuEJ63qf53z2cNXp5PfcfOdDR7qOhCGgoAqq0F1fDdHE1rLaVmOlCZ/eMRkCR6mj3afr6RF43vtloIVfPLrp8HhKbTtD0vA/dw8px9yOGBIDTYu8ezmrSayqhyGnqatNTL2WX3dimSI299OCCgNo+i+kw/PNDYai3E6WHOXQJbmSkIp0YD+P5sw+4efcEXYKbZKQilmfNWr2OjMLogB3RIEdv91vor4/vaDTI0dEBe8OxplyMABANcogGOQTcAQDA8us5NRZwBxANcnXHGX7KFPLy2ZHeStPJqVm8iS0DACanZvHqRYTmZZ4AJd04U2poqLcTFqsVAFCQBTrYL2ri8bUUnK37JPFd/7FmSsoWvuVQkAUUZAGCgyPxtZTuGflPW92xpgg9vsMhtfUFACAdaNMSX0tBcHANM2NaUdfidQqaXZIOSqrwRUy7h2oRb92D1ykgL0vU6xRIXpYaCjEYDAaDwWAwGAzGf8Y/wKIyp5xRIncAAAAASUVORK5CYII=`,banana_fruit_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAtlJREFUaIHtlj9ME1Ecx7+vVyyYtrR3kNASFGMJJJaIKJqbaBlcIIoDg0mXbqSjcWByYHJycGIw6eBISIxp4gI0cTmJUWtMjPxJAEltFYpHC4ZCy89B7ujZg+nOxfdZ7r3fu/feN9/f7949gMPhcDgcDofD4XA4nBqY1QvKY110tH2y7MLcEqsZAwA0NjOkny3ZL0ge6yLJ5TPENnM7aHA7WKVaxZvUskGYMr1sr6CR2AABQKGs6jHJ5cNmbgeuxgZW3j/Ewpy5MxoOKwVpYpzMyQAwgQmsUFbRGmhGef+QDmkPvbKIaPwfCXJ8WoRnr8oqVIEyvYxivnIyJhLyH5qopWebSlk3gv6Q/YJYyznWmN3C+iyhVxbRfbGI9VnSx7P5VQDAt7dtdH/8u6lTlgqirQO8/FjEg4c/Ufgi0pbzB2kiaos9m1/F+3yJzNawvIaicWAmI+pCzqJLbLJ6e3NB0TiIygJpTyoLNBIboL/jQX+oziXLHSpl3Xp7fkrA0HhV7y++CBn63aMrVm9fz43bbgT9IYrGQdE4SGtrTtW6ZOaQ5RyfMwYBmqigP2SI9cpi3XzLU9bSs43BfsaGxqtob7sEHH9V81OCIUXdoytweQ6s3r6eO1e9iMb/pM6suGtjtp9DGukk4Gnf1Z3Siru2PdjPTP+jll8/NO5eaUfxZhZyhxPKRoXmpwSEbhEuXDuC3OFkykYF6aRdu59BbLgJiYiXLvc56OvrGUpEvBQbPv1AtCVlGomIF+HWMAAg/XRaj4dbw0hEvKZznHYKyqkisLZIE5NJPH+SBgBMTCbx+FGccqrIgGLdHNtqCADu9XUir0o00icb4qmMAt/5Env1uf6yZmvK8qoEye1lqYxSN6b+8pjOsVUQABR2jWlJZRRIbu+pmbFdEAAEfJLBpcJuEcraO9N3ba0hDbnzOgI+CTm1QAGfxHJq4VRBHA6Hw+FwOBwOh/Of8RuWiD5UfcCbswAAAABJRU5ErkJggg==`,banana_tree_dead_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABndJREFUaIHtms1vE0cYxp8xdpINiRM7K/ERmqaUhKwgTWXA2K2QiIRyQkWqlFtVFSmX9i/opfce+wdEoofefAL1hJBAimAdk0RaDHKFqZpCAmllNs6axCSh3h7s2c7Ozq6z/qoq9ZEs2buzs7993nfedzYK8L/+YyLJ2TEclgNYWzBN9sSJS4RsFypQU/mOAgUpTDyWsJ3ILKTNYwlCkrNjANAxMDJxdtwBY0GtpAGfbtEHYOXnYSygcrlsOyFJkg2sHhQF6RkgeJWGFX6/oSdXvj6NtQXTnFSmbBAUkB7zguLzkD6gJEnIrKQRUUyipvJC9xxAydkxRKNh/Hq/ZAKACMwLioWhoeeviSgmEbnH68QlQggYu/v7e/E8Uxa65QaVnB3DZo44YMrlMrI5DUcvgADAxkNY7rkps5KuDmatp26xUCwQDwXAAuLB30uGyAt1vy4ITY9sTkOAPaGm8tB1Ax9+2k+yOc2WR2zSx2MJK196Bgh40bEv1H0zHks4YMrlsu0jSZL1IAF+Mgo1EpdINqdZx3koAAj1VnOCdyeb03DiYshBygOwIFQOIApVKu3YnpZXPJbAn8vVvOBDCgBri/u2+sY7wYPSNAjCpZgBqIbuvmblE3VJNCk7ObiccbuGJj69l14wEHTrZccSILpuYPhcD8kua67VnE/+bE7zhGEhAGAkLpFSaQe6bkBN5RGUwkTcy9JpEyDYxC6GPwHJPEib8VjC1SURjJsjFAIASqUdW6ENvlyEOalM2XJFkiTbxJkHaddiRiWC4WsSaGhqbogUoADsh64GKq+nhkvi8zDD57pJRDGJrhtALW9FuStcZSKweCxhdX9+bDanYVKZ8oT5K7CLzRwx2c9hOeCAsporPcC3DQhaBz+GPcbDeFVrUW8MbBcqiCgmiSgmocVQtBVhnXIbw4rmDF+tedfXFkybU669jHfLzSWRY/yK4xcMuO0N65Swl4ncOohL9OkpjKhVsGB0TrY3OjujwC0+P6gyK2nbZoyH4ceyEuVTRDGrrUMkutcZifeSbEbzLIp8WPjwolb5325V107PAKkV3n9UDZkJVyAWCiA2692g6PKnecGCvN2CbZcZUezR2S6YUFN595BR1QsdTWpw+2/WEQpy9YsL+Pmnh573qwvEQ0GwiWeB6r2hTCajkCd03L3RBBAErzmsW1TZnGaDOR45hZebzxxznZ/pw8uHR4XnDgzEgnUfJthYgu19LpvTcPQ8yO62id/vmMKb8Zq+DodTwl7mJTWVx+52NTccTXWjDDWVx9Uvo36nbRyI6uQHb2x7bgDoLr3F9HWgVxZve3ndvQEcj5xqHkhN5RF8/sZxvPvNLgDgh++yB55raEJvHshLpfU+X+OzapuBmlXLgYKbnsXfoZbkEKsjR47Yfkd6d31dz5eHpoEMw7D9DhVDmL7e+HwtCVn3oUO233dvoGEofwGvo6G+HujFEK6d6QcyALDue46WJXU8lkDu0PvWHufmE/8wLQWi+mPouAkA31wO4/uvLnQeKBwOW9/jH120vr8qRvHtj957n7YAUQ2Gw8g8WsT5yG++dxAtBSoWCrbfL5514+aTdWwUhzoHdO3MMEZOis9FByr4bCoMdXUZydFznQECgKXXp82ZyzMAgEFZhl4oYHxUgWr0294mPv94pv1AJtkHAGQeLXqOU1eX8ar42hdYYw6RdyjqWwCAqCzXhQJggbUHKPAOADA+qiDzaNFK7MreXl2w9gAxGh9VMMi5NNQfwmdTYddr2grEuxKPJaAWh+r+CbBtQKhtQfhcGurrwbUzw/8OkMglttF2HChaq0OotZCnq7mG5/IN5FWlUatN46MKwNSrtgKBqdJ8qNg8KupbAHnXGSDUnKAAeqGAqCxb7liggQ4A0TDQosiKwiw9XsH0sNHQNsS/Q0zbgEfrWN/YwS3NEJ5rLRATBtalSm2FBbq6gCaqdVtepZup1k0BVfb2rCXeKh34vWxubg4AYKwuARs7NijU2sdg2B6iW5qBubk5zM/PW9dTzc/PC+9TdyXQidgJ6L9nUJhAVxcqe3sYlGUEABQNA5mVNH55/FQ4vxdckB9IT4pAWJhmxM7JwwXcTrhZ6qVWrJAAPNzwggqHnUu6wny/cnkGE2fHfa+0IBumRsX2NAp1595t1xxixd/b918/ajcxUXOB7qcHZRl37t3mx/kW4XNHRO0mPiSNQrD6G0LRP+c+tRWxAAAAAElFTkSuQmCC`,banana_tree_growing_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAiNJREFUaIHtls9u00AQh3+blDjulsrgWkIGJPvEDSKO5OIcECdQy6PwYiBegFx6Dy+Q5IBycROstE5cQ70c6nUc/4tbBw5oPikHJ+vZb2bs2QAEQRAEQRAEQRAEQRAEQRAEQRAEQRBlsDqL+mcWuNGG794I+V1Xa7HAiwAA55+nexNq1V3ouzfCdjjkJ/AiAUAYpo7+mfXvhbjRZpOhj8nQBwDYDsfgtA93Nt+rVK2WIW4bbluFwIuE7XAAgKX18O3LOQxTZ+5s3rh9lUJlWXeOWgiv8lIAWFOhgyoZw9ThzuYi+1t4FUF7wtlk6Avb4Zh6o8pNyhIrki8USssMTvu5DeOKiMfPN1JVAtrJMbyL5VZiXa3F5Lq0WK5lu2QyUpAy8cPOygSyseTLkW1zrkLcaOdkUjdvcEaJzHU8jw4fqlhdroV3scwJZBOzHS7jinRhckJy3ky9USKSHoLxNSZDP6mA2VMBAKvLdZJIUWWziWXjllWIyc3kDYEXbfU57r3MKhGraEuhQDYuyp6hNFWv8eCtifCoI8yeCkXbzNiyyu6KVyh0F969OYHih0L5+BTKbRtzInedS6VzqA6KH25d6+MFVo9UtoZ674ld+yzbhaX1AACHP9eNjo97C314dQz+TAcAvLBey6OjMY0q5P+Yi5ef3u9NprHQ3+D/E5Lt0scL/OoeNBojexFK8yD4ja/fl41iNJpD17zD9PEi93+pCX8ACFAUE3a7dgUAAAAASUVORK5CYII=`,banana_tree_growing_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAA9tJREFUaIHtll2L41QYx/8nbaczZqZkbYNSFVr0TofdK13ITYt4I7I0Lrigt/kQ+xH8DDLeCF7sytJhWBC8mV5Y0EVkRhlF2bVFpOimdUO62Wb6kuPF5Jw9maSvznZvzg8KTXLa/PJ/nucQQCKRSCQSiUQikUgkEolEIpFIJJLnB2FfDLMEvZiH3elRrZAjTtcFADTr7bUKKeKB3enRas2A03UpAKoVcjDMEgyztH6hTe3sa9s5Qrmi4nmJiSWj5YoaW1DSruBwvwkAWEcplXkLkhLTi/lnllai0KkT8E+SmN3p0WdiAyCddDKrPfVkUlmhxxD2nGGWFirdtDSTfsuFVD1FWg0v1kdMRBQrV1S0Gh4Ve3CWhFbIsXKL5whbI4rxKDx7wqTQanixG2Q1BVlNiZSRpZQkoxfzAEABUKfr0mrNQLmizu1Hcv6P2I18J0icOpZWVlPQanhQ9RTx7Al/SnGDrdYMXmIklF+YYMJ+H2nqZr2NZr0N3wl4WkmwpMoVFZ49iTW4KCMOiJjyqRNE+pGROGXNentuCZMwzFJkgxUlxEERxcoVFb4T8Iea2pRIKCE7z0p56gToHA2wsa2Q4eOAl6pcUbnMLNiDqnqKfPPZg/lC58WQ0F9Mqlh6iXTa/9BqzcBv7R9nyjCRTU0hfthXrIcS96FZ+E6AjW0lskVUawYO95uxJj4vIDwU8Z0AvhPE9qK5CYlTI57XXlaJ87fHy9M5GkAslSghJsGYtqHOTGjaCIfjSl98TY0kJcpspSdk/NBHyh9BaY2RezIEAHz9+3BmAFOFkmTe/eEkvHoC1D7B4X6TyxSvbHGZbe8x0fpP4PbGkVSv7hICbMyUShQyzBJUPRWTqf+U42tMfIl25U2eDMJeyZ10AIC6AD565+zG180z6Rs3R3SeVGIPhVNFyxU1IlJQx6TrpVFQx+h6aQoA2Q9fAQB0jgbInXRw69MM/5879WgzXzdV3Lg5AgCytJCqp+DZE5r/418uAgAHxy6uXT4TJFoG1BlRJvX57p8xidvfb0SOr+4S8t3PdLmEmNTWowEA4IVHAxwcu7E1oRgXev/+rzEJfScgdj+6Jy3dQ1jhFfW9v4ZcRJSw+8rcyVpIaBUyW5uYjMbE7o+XkhCZ+069CB93n1Y+lUmvLHNhQhfJykLXLueQ38kssHI5VhKyLAvZS6+i1x/RD97WI9cyOzosy1qPkHijrxq/RK69/lYBAHDn2wcYug9hWdZKYitN2d7eXuQ498YO3Pt9hGnRL24fLPSelcSFNbXtn+LuPRsHxy6XWUtClmXxhMKbU9yzxeP/xX92wDVIcXKaVAAAAABJRU5ErkJggg==`,banana_tree_growing_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAA9hJREFUaIHtl09r20gYxp+RnFpFtarGETQpCzZd6KWQ0EMvutiH3VMJTo97NvuhFsN+g00wOS2U+OJDcwj2oYdCW5tSnAXZWa28InITe/aQjBjLI6tS5KQseiAw0d/fPM8778hApkyZMmXKlClTpkyZMmXKxImwgblXgrFVhDUYUX1DI/bQAQC09/u3CiTx/1iDEa3WTNhDhwKg+oYGc68Ec690+0CKfjXs2x2UKyruCoyPjJYr6sIFJX0HRwdtAMBtRClFXSByzNgqrsytnOjgxJ7543wgymvHKO8uEw+Z1MHIyBgcAwOAXsuFokvEs2f+i829EhRdhmdPqaLLxLOnc+dEEkH7QD//+hSuNRVCicB6LRcASHu/PweztXMfg8753LP1DY3FDe6YsB79abvWFKohk17LZS+bU16XkNeluTgVXVqAYSroKgBQANQeOrRaM1GuqJH1OFcH7ISiS/Ds2VK38rqEXstFYTNHxqeXPsygc46Hhkr+sVxarZno251Ql7kVTJhLC4XJwFRDjoyQQZUrKib2DIPOOXIKIZce9WFEC4QHY/X45vdPQNiyb+/3IyMM1fUUGQyLml8UfPzligrPntHA7WIFI2THmWvMFQDgitl3jIcQiU1UNWTy528fo4GCYBDUFw8FANWaiff9k6UwDIS1DnArTdgYl8mzZ7j3QCK9lutDVWsmjg7aCBZxEICbFPHsGfg+xhTpEP9Zwh/XH6vE/usKirnER8VD8E4whXXypQ7xMPzs2fax/oM65xQPw0OInAhTqENBmPf9k7nzz0ovcHTQhghGNWTiWtNE+1lkH/qWImV9ZdA5h7p2SdyLXOLNNTQy1hTDYFiN8B1aezfA9JGK9tu/E8EsBQIXA0JWSm7oYfLHGc2/foKtnfuYfFIgu18Tw0QC8asluFI8e4bi538X7pFkeTVA19sGXdYzdrc1f/zTl684vBHKEiD2jQOAxFmyaSjUoTgQvwwJrJSAIj/yb1uJgXa3NRQLa+nS3NSh0fiCvnppAAAMJX/3QEzaj4U0HgP8r2poVUoExDfEtBUbaHdbw+Z6Hte/ue4eCABOzyb+6mKyvMndAW2u58nhsYUgFNPutpY41thAza6D07MJioU1cngs3DDoTeJM5FCz62A0vhCeC3NtpUAiLYswjlIDYjCHxxaKhbVv+gG6UiBeo/EFml0n0b2pAX1Xm2uaigVUr9f9cdEIL+Bm10G9Xvf/VgIUfPDIsuirlwaePt8QXt9oNNBoNGLBxAJiLxHJ+TCO/eIwpVZDljdJpbAT9wtc7VkLW0Sz6xAEIo4T3X8sUS1ZmPdudgAAAABJRU5ErkJggg==`,banana_tree_growing_4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABJBJREFUaIHtmM2LIkcYxp/yY9T0apo4DRsTgrILuQRm2MNehOAektMyrDnmFpD8VfM3ZIbBS8hhJGAOnpx7iLIkZqF16Wg6o+tq5bBdNa9ld9t215DJsA8IQzv99s/n/SoF3ut/JqYzWL1ZBQCYhyU44ykX161KmdmjCbpnw50xUjphrEoZALgznvJnL+qoNQw8e1GHPZpwq1KWwLcOJGDs0USCDJ0+Fs4aQ6cvoaLEytCgVFHspRIwAgQAcua7z3t53pVp2yUmQPJmCnNnzfGuBpgznkYCqzersmZqDQMLZy1BAGDQcZE3U2zurKPVkGGlAYDPnTUXOfcKkpuHJdSb1Z25FzUTpKgwAJBx7RWvNQx5Yej0UWsYqJrHuDzvSscEVFBgkaogd6JK3r1w1vJFwcIcE+kK0z7ubADlzJR87QKjLRyULuFOZBJP7OvvH8G1VxwAaOrguUZTAECkEmSoBhYzALZvt2ZcewUALG+mMOi4G/Uk3AJp4aHTB2660jeoWjtBTeEHKy2tN6swrHRkt4QDfg6R9wCfVYKQ0SKf0D0bgrjFvKC+bgllCswXFgCKpgEAXF0lYfWIoOUa5paPE6gcFzaumQ8N5rxy5eSm94Kkn9ajcMl3l4W5RZ1S0zrouMh+wLZgRNeqXUzrUShwuXbPhuieDTF31jCsdCCUKu5VCoURIPR+EaPWMOTKAl2uVGpXuPYKnlMyhUFQb6+57FS/2qIa9a8BAIaVlqWz9d/0XENfWRQAgB08uElhzkyhclzAqH8t60kMyTCYQcelg5N55QGoRa2ea4TtpPhw8CDF+Jpj+Q+X7f559Qkuz7tQ60YtfiE6o9RZtDGHVBiakqDgAmrUv0ZQqtS55AcilAFpcxWGBhVwlePCFuCusWBYaebaq0hLluGmiCMXo9//qDNGXR+Rz0O7HuSXIpDW99t3g467lyu+QN6skS4JEPopxQKmcAJG1FASGIQtVz+76XwSZ/Dyb6+R++YTCbXP+TkUSH0gduS93qyiNJoiO3/LKdDB32/Y5U+jWDBbQPvq5KgEABJo8cMfWBgH7MdfxrFjavvmKpRz3yS6XztQUr0H2qX7C/TtWM9PTffToa9+T9bqVPfTIZ2KDXRyVMLDD3N6aYK+dUTVq78W/LsvPwUA2POFFqDEKfMD8ZZuLN1GDUX6tTVIWoGeP7USx9AK1O7ZKBeziUa29pRNZktcXE1j3x8LSC3a0uNibABVSRxKVLxBSpQyHUWsKjZQuZhl7Z6tlyYu0MXVFJPZUjsMdHaZldez17S3fbmYvTur4/lTC5PZ8u6sDh3SMhh1am+gk6MSPv4ohzs1GP98veDqULwTB7SwSR03rbGAgqY0uRY7nXsD7ZrSSfebtrZv9+z/5sR4clRCuZjdui5g2j0bn1n52KfGWA5NZsutLqNgL+357dZQq9WSf6vH00dfHAI+y/XiaopWq7Vxb2IgEez09HSvoEJx7rv1XSagojoVp6hl/dA02fOFljORFoemv850hAF0p6z0uIh2z8bF1TR22+/964f3sJu2/pm8mRAGAP4FlBPshc8G1hUAAAAASUVORK5CYII=`,banana_tree_grown_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAABuNJREFUaIHtmF9oW1Ucx7/nkibXpEnb/BHp2iKm1dFGWhAjKZ1YGMJo6UCoTyIW86JP80V98V2GD/N9WB8EHwrCxmQvk8IMBq5MN5Zl2DbSdW03aZuluU2aZDXXh+TcnXtybpKbtBHBL1zI/Xfu535/v/P7nRvgf/3HRCLzI3D5JeR2yxp7wuWXSG63jPjSakeBbBQmOGU3nEjFSprcQ0hkfgQAOgZGIvMjNTAMFGDRLfoCrKy8jER/FDNlwwYAwSk7glN25HbLmssvCR/GgkTmRyD3EADQ6NboPl42l18iqVhJC4dHsWdf009QKEevhOCUHalYSXP5JRKZH6l5YzYPC/saglN2FDNlOHolpGIlDQCBiXu8SGR+BF6vB+l0VgMAEZijt2JkKlaqCR8LQ0PP30OB5B6Cwr6m1WJU5PJLxEDudjuhqnmhW2ZQ1XtrYHylYShKEo7uyjOKBxUQs3ylYxPeeuoWC8UC8VBVaWyY6DXdvXZykCk1BKHpsZk4epbUqM6GdDoLr9dDFCUJX2kYqOYRvYkOTutWNYkNovcdZEoanRg8ALs5eiX9RSR+MArldjuJoiT14zwUAHQ5KznBu6MoSbg89hpSHoAFoaoBolCqmje8La/glB1P85W84EMKALlsyVDfeCdY+UrDehrYUGc6VkOn5xN1STSoYXAkIYIRXasoSaSQhNfrIendrHkvk3sIKexrcDpl5PMF0yk9ELLp+/QB9WDoNVRut5PQaMSXVmF7zkNMexkA5PMFOPsIScUqITBzSQRj5ggLoap5Q6G1HWY1bSBkMyQsrc48XD2JYPiapIcmnTXtbxIFYDe2n6FBDYFJ4vMwTqdMAJB0OgswvU8IxEsEVu1nwmsVJYmBkK0uzN9SEWzTNWu85OxHrxgSmm8baJDI/DEepl61FvVGqVr+CQBCiyEfArYoBqfs2Ewc1RRJPsnpTOKrNe86v7Qx7WW8W2YuiRzjZxw/YcAtb1inhL1M5JbIJd7JYqZsgBG1ChaMjsn2xtrOKHCLOiXq+mwfK2bK2Ewcge9tYJbDVKJ8AkBMgSgUXSOZVWr68H7ny9jOr2AzcWQIIQWhlR8mCzVhyHiJmqyo61OxMKlYCalYCXIPIQBIYV9DfGkV8aVVVMEIu9GZVtchNBG6VKyEcHgUAPQJQEGoI3RKz773Oq5992vd5zUE4qFQjT+ziEc4PIrt/ErNjBG1h1cjXvhPp7G8KH5W3ZBRsbNP7iGETVAKA0Gh6++rbSl342moW93Cc2jWIVaR+RE4XATFXGWl6CsN68nscBFSzGl4cEPD9pO1hmNNL6DGqaYcYhVfWkUxV8mNYqYM9/Pdz04+PkR8aRWz73utDts6EFVfIUeKP2wBALZvHyKw8hccagHTC4DTf9jUGMuLqAldS0DxpVXYNg5qjjsOigCAS1/cbXos3+l0+0Cs/lj/zbCvbnWbXivS3fgxAx232gY6vH/fsG97YjO9VqRjySFWHwZG0edY1/f7nEVL9/PloW2gnYIRoCvThemF1sc7lhz6JPKGYX95ES1DWQt4A/m6ZaQzXTg/5gYUANiyPMaxzbLZcADpTJe+xrlyzzrMsQIx0gDg47c8+PKD1zsPFJAd+u9PL23rvx9lvPj82/prnxMBopo+dxYXL/RjcLhoeQVxrECeYXd1pArHwzUHrtzbwuOMr3NA58dOYegl8TlvTxlz4x7E128h8uJrnQECgIcrbu2zr1QAQHZNxcaD3zEzKWMvlzN8Tbwz8fbJA2nkKQDg4oX+utfF12/hUWbPElhrDpEjaLaKO/Ko0hAKgA52MkDSEQBgZlLGxQv9emIHQ/6GYCcDxGhmUkZ2TTUc87m7MDfuaWm8toF4V2bDAeypTxv+BXhiQKguQYYGJwzHfN0yzo+d+neARC6xjbbjQEODE9h4eBsAMPbun/jxl0LLY1kGqlelUa1NM5MywNSrEwUCU6X5ULE1SbOpADnqDBCqTlCAjYe3MTQ4obujg0odAKJhoEWRFYX5+pv7OPWCs6VliHWHmLYBNkyS8flbj/O4eifbASAmDKxLiZ9uYvrcWaQSu0Ab1fpEPqXbqdZtfQYFQ37MYLedIWrUtEPRaBTRaBRywFiE6Iziv2ABoMsdMNzPjmOmhjMhGo3i8uXLhmNz4x5tNhzQYVKJXQRDfmTXVISmz2D5+g1cU3bg6h8j31+PN35bRoaQseQ8BA/TjKzCGIBETlhVaPpMW/eD5lC9mJpBsh+IVInln/XfC28OYG7cU3emifKJ0APNukNDFpAdz77JqqIrx51CEdeUHVy9k7VcrW1WYADQh2gAsIABHSq7pmLx5iZ/nWVZdogVH5JWIVj9A/RCJ8Szd97YAAAAAElFTkSuQmCC`,banana_sapling_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAABZElEQVR4nO2WvW6DMBSFP0Na0VJVLCztkrxB9yx5hTxpXiFL9r5BsrQLC6pKS3/AHRrQhQAywdl8JCQwxvp8fK4NODk5OTk5OTk5OQ1JmXRarueEsU+WFLpqCyJP5WkJwG5zsAbkmXbMkkIvViHVlaelBnQY+yzXc2tAM9OOYeyr/TbTQA0FcGwzctpERg7tNgeypABQQeSp/TZrvA8iz5pLo2cm8yRcIox9lSXF5DyNApIuXN95fL+XDShASaA+14agjYG6Ku3+cabeXn71YhXWQPKbIPKq8Mu2weo0CnXXMsF/oOUz0IDO05L2+6ow2vCjgCRMFWhZaV/HGV/dqhPotsQYndVpBNSGARr3D083APx86E6Yjqqsl+0sILkHcTqrOiOtgPcC5GnZG2xThxog1WCyiqSDYwDOAjIZTLiixgC0ZXyWGUrBtMPWNtDkndoK0Ovzp41hgAs4NFU2gaz8gvwB9BbCFUm9pKAAAAAASUVORK5CYII=`,banana_tree_sapling_planted_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABICAYAAACeNle5AAAAAXNSR0IArs4c6QAAAXRJREFUaIHtlj1Sg1AUhc+D6KA4Dg2NNskO7NNkC1lptpAmvTtIGm1oGEcUf+BZCHhByFzCS3e+mRQB8uZ7h3MhACGEEEIIIYQQQgghhBBCCCGEEHIujOai5XqOMPaRJYWtjwWRZ/K0BADsNgdnQp72wiwp7GIVov7kaWkB2DD2sVzPnQnNtBeGsW/228wCaKQAoDqmSlqDKqHd5oAsKQDABJFn9tusdT6IPGcpjd6Z7JNICWHsmywpJvdplJBM4fLGw+dr2ZICYKTQUGrHpNVCfZN2ez8zL0/fdrEKGyH5myDy6vLLY0enU1XqvtuEqtDyO37L30jnaYnu+XowhsJQCUmZutBy0j6qHV9cm3/SXcQavdOpEurK4K8zAIC7hysAwNeb7ZXpmcrmtp0kJJ9BPbtqOtIp+KBAnpaDxdYm1BKpF5NTJBMcI3CSkGYxkYoZI9BF/S5TYjDxZetaaPKT2onQ8+O7i2WAcyQ0FZdCTv6C/AAIicIVov1ikAAAAABJRU5ErkJggg==`,asparagus_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAV9JREFUSInFVTuOgzAUHKJttlmlJF2UFIgr0EUpkNiaC3AGjsEZuAA1kVKg7SjpIkSRgg4phyBF8pCxn8GglTJVHL/PvBk/AXwCjmf3/5Wz4QKd7WlRk6kcSw703WA4X+sLmrKz5KQlORsxEAB+fm1T4iM8Djf2/5FEYRwNwY/DDWEcTUrleHYfxtFQnGsyNGjKzsqSFPe6AAAc3bMR8yxJR2eZlGIy4V4XSjIHZ3tClbdaUl8mBeD99bLZorn7XYBrfgFQoMpbvcnkAQBUeQvfDbDffcN3g1W7MWpA4MbUvRB6DLr7UQPZZLEAoJonI4wjRR52AuAljyjX3Iuaule2lFhSA5pIZEd+idNy7NkJmrKzOLk4iUx2RbsHU4U4AjrM7gHwkkknARE4ukCWpMq+sBPIO6G7FyfLktTMA5kZB5KIMCUV28DUZBMPVpm8BKtNfv/upbOC2c/hXIGP4wnebtncsEc6vwAAAABJRU5ErkJggg==`,asparagus_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIljYBgFIxOoW0n8p5ZaJmwa1AUcibKEGLWM6BrcNb3g/J3XtzHcPPaCEUMXCWpZ0AV2Xt9GyOFkqR2hgJiEgJGKSDGcmNSGNYUQYzixqQ0jFRELXitdRXCu41ZHtgXntj4kVysqULeS+E9K0YEO8MYBLCIZGBgYbn7YjzOc8QGcQYQekTc/kGo0AQsYGEaLguECAF6gPZZVZb3GAAAAAElFTkSuQmCC`,asparagus_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQdJREFUSIljYBgF5AB1K4n/1FLLhE2DuoAjUZYQo5YRXYO7phecv/P6Noabx14wYugiQS2GD14rXSXkcJLUwy1Qt5L4H1qSBNdEjEUwNfjUYvhAWdOZ4dzWhwzntj5kCC1Jwhq+MMfA1J3b+pCgY8gCxCQEDB+QYjgxqQ1rCiHGcGJTGws5FjAwoEXsddzqyA4iYgFBC9StJP4TCmdcqY2gBfCIxBOZyprOeB2IMw7QI/LmB4R4aEkSw+qeeQwMDAwM57ZCaIoi+bXSVXhE3jz2grElqI0YbQwMDASCCLnIwBfOJFuAXC4xMBAOZ5ItQDf47vW9DKt75uEMZ3wApwb04CDH8OEBAFoqeOiVTrE/AAAAAElFTkSuQmCC`,asparagus_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUBJREFUSInFUz3KwkAQnYgHsIyVosVia5lGxELQwsoLeAaPkTPkAqks8oFFCpuU6WRJkSJdwMYbxMZdxv2b1U/wQSAhM/Pe/DyAX4BFYfet2J4pgQ2WXiQ+sYGasJ5t5PeZ/0FVtIGW9Uas1sFtcqWEvxUvCVgUdvvjQSb5EIkYV6zWwXS2ku/748E4XyyGgiSoijZI4wRqnmtENpRZQ4rROhCoeQ5pnBgXJ8SwwRLKrHGK6ZMyDcAXNB5uII0TSfwVAgBlsdxcXCN4BnX4W8zVVoCCtoOqaAPxSKcSbrUtWOsAQ3VqdTfHUddmvSIMPG/VA65rIwmwo9UxYOW7aGEdkZFAVYmLqYak4OxAFKbGcCou1n/W02NR2M23oxcyTIJH4jphL6OZLsXXF14ENc+hzJqPzOZ1pv+BU5HvnH+KB+Rns9NcWsNEAAAAAElFTkSuQmCC`,asparagus_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVRIie1VwQ2AIAw8jJMYV2CRDuoirkBYRT9CxJS2Up9ewsNiubO9IvBDQWBih7LvIjjWZakPKWc3yT25OfwrkpkLEkUAwLbtUq6plBMXVA4Grq8t60HWYKQH9R2iWMX0SjniokZEIXlDoOGVGUbdYbazx+MmF2kE7qmWkqxlEEX0CKyNVEWwg1ZQJtoqghs6kcAKotgV0yMIKefmypCsKF0tXhepPXD/UAwifsg4AawtUVA+F49vAAAAAElFTkSuQmCC`,carrot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UMQ7DIAxFTVUJZcnIBTggU0+RKQfMBTJmQUx0aEDY2FSkdMvbwMn//o4VgJshrFOEdYr/N+m57xalKYaloqKd4o9uk4TzqnrmcqJW5+lOEH92m3BnmqZALJyU86+rDeFEK0E8Fp0Ps/PYyHklzrwwbnWADAAA5lfAJkSMQ9qiLL7tIV9Sw9OsuTmSO+p+2wNYU4zrk0QhAyEJl6Dq3hqNkiCS8JU1TcLWaJRANGGgBdQ9Fc0f+ft6Z8QEzMy7hLkX4rFo1PkvwokqgTV6iLBEhPL3cAMAb8x5cUBYehurAAAAAElFTkSuQmCC`,carrot_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFFJREFUSIljYBgFo2AUjAIagYmc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIH+JSQElKId7Ro2B4AAAM7CorC4ZVKwAAAABJRU5ErkJggg==`,carrot_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAG1JREFUSIljYBgFo2AUkAcmcv6nnYFUM3wi53+sBqOLoasj2xJcNAHAhFc2/zsjyQ4hCyC7Gt1XBAwmzoXIliADInxIvAXolhAZfMRagC8Y8JpBjAX/P3Wz45TkK/2J1xxcEpRkJtKCfRQMfQAAPQYyLlPDfzcAAAAASUVORK5CYII=`,carrot_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHNJREFUSIljYBgFo2CYgomc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIHxJvAbolRAYfsRbgCwa8ZhBjwf9P3ew4JflKf+I1h5AFeA0nxhJcFlCSW0mL11Ew9AEAw2E2LwiWHwcAAAAASUVORK5CYII=`,carrot_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAp0lEQVRIie2U3Q2AMAiErXEZGcShHeQcpz4YkipQ8CdqjN8bacvBlbZpfj4HEWUiyhx3VycfenCUASRVgCsAkGrrtT2MENCqsNf1PaaAPLyPRWjdvXkH40Rq+2WSMpEVC7ZTcAtnRN0x9S7doz1S1W0CEetci7TR4+QR60Jfhef7IqSLCIuiEwMgjRO5xVVesj8xln2mQEmtbSlis7Io2vZpHvkuXssMLP56RC4nRRUAAAAASUVORK5CYII=`,garlic_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS82VvQ3CQAyFnRUoGIGWgoYSMQUVJQswBwtQUjEFoqShoGUEClYAOZLRi3P+OaRISRUS8z4/2+c0NPDVDKxP4wIsF5PP7f6uSiodzOLn4542uwPVQMYH4KGocZFyIOXBictC0oDL9UGv54mms23LWa/mqV6EAM6exflCQBbiAlC8BMhATIDUXUoi2WsX/NvrRxFgiUuTayA9gBYvlUYDJKbkpAPIiFsuLMgPgLMudbcaGz1HJy2gVjxygae9A8DMvSw9gC6V6yAqhU5I4nsO/imTNUl6GfamiAN470eNts4C/x+/F+ZBExBuUDzVerNqYXkf7iIUsu69L1y4TTMAL+YLkFzsGSkFyYQAAAAASUVORK5CYIIA`,garlic_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAADtJREFUSIljYBgFo2AUjIJRMNxA6nS1/6TqYSLFcB19LZItIdoCcsEIsyBWZxrJFjASoQZfpBKjf4gDABs7CRP3VfqlAAAAAElFTkSuQmCC`,garlic_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJ1JREFUSIljYBgFo2AUDDPg2WH+37PD/D8+eXz6sMkzYdOMTaFnh/l/Gf73GHLI/O0VJxnR9bHAFKFLwjRi04QOiFGDE8As8uww/586Xe0/IZ+iAyZCCrZXnGTEFWTEuJxor8Hi4MlHQbjFxOgj6ANsgJQwJ9oCGf735LiFdB+QahFJFujoa5FkOMkWxOpMI9kCYiILX1onP4MNGQAAbEJDfI/EtV8AAAAASUVORK5CYII=`,garlic_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALxJREFUSIljYBgqwLPD/D/NDSfJEs8O8//oGrAZQIwaol2XOl0NxVJiDGPBZ/v2ipOM2ytOMuJy+faKk4wkuxSXGLIPsAULXt/gk8QXRNgcQZRvsFlCbBygizGRZSMD7jhAFyM6kjw7zP/L8L9nePJREKtBuADOVITPAHQ5ovQRShnERDI2Pm5BNDlSMhpZuRndAkKGwORpHslkJVNSigiy88HQtEBHX4u2FsTqTCPZAmIiC19yJL4+GLIAAIDwnt7DsMsUAAAAAElFTkSuQmCC`,garlic_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAsElEQVRIS2NkoDFgpLH5DKMWEAzh0SCibRBZGAv9P3H2Hd5gJjsOQIbvO3CRwclBnwGfJWRZADMcFj74LCHZApDhK2YVM4ipxcHDnyoWgAwGmQgKFnRAsQXYXA2z5NWtRQwRab0444FgEIEMz80JZQgMqcGaJKkSyeiRSqzrQeoI+gBmGLIloGABAXxBA9NHtAUgDbCIhmkmlMlI8gHBMgGHApJ8QI4loxYQDDWaBxEAZwZJGciZbVQAAAAASUVORK5CYIIA`,grape_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAdUlEQVRIDWNgGAWjITC8QiDTTPk/zEcbwrXhbJgYWTSyoSADkPk0s4Qsl6JrwuU6mDiyT9D1Es2HGQbTAOOjGw4Th6kjmUY3ENkAmhmOz1JkBxDNRjYQmU2RD9A1IxsMchm6PNGuRVZIFUOQDRxlj4bA4AsBAEAiL1mYqo82AAAAAElFTkSuQmCC`,grape_green_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA`,grape_purple_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA`,grape_green_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DKMWEAzhwRFEQtm8/3E59d3Uz3gdiVcSZvAPxW9w8zn5OFHs+n+RkQGfJTgtABmOz2BkW/BZgtUCdMNBhqG4nAspxL5BjMBlCYYFJBnOwMDAEizM8GfxOypZgOTyim3/GUo/qDIIR91hYMDjC9J8gGRB1aqv4KBpC+OGRMc3Rqy+INsCjGQ7aCwAuQxvRCOnIGjQkJSKYF4nmJqQwojkfIBsCYyNLdOBDAYBsnIyeiRiK48IlUMgMwZHaUqw0MejYNQHBEMPACcseBmTrgJTAAAAAElFTkSuQmCC`,grape_purple_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2ElEQVRIS2NkoDFgpLH5DKMWEAzhwRFEOpx2/3E59cr3Q3gdiVcSZrD4H1G4+eyMHCh2PWJ+zIDPEpwWgAzHZzCyLfgswWoBuuEgw5BdLsAmBDf/w693YDYuSzAsIMXwTc1HGLgz3jIY89tSxwJklxv6zWUo/aDKwOPKxGBXroXTFyT5ANkCY6fJYEPP7ssF06CgwhZMZFuAnmwHjwUgl+GLaORgggUNSakI5nVCqYmifIBsCYyNnulAEQoDZOVk9EhEL48IlUEw/YOjNCVY6ONRMOoDgqEHAPCIbxlb63vgAAAAAElFTkSuQmCC`,jalapeno_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7klEQVRIS2NkoDFgJMH8/1C1pOhhIFbxf6cwUbD5+1a9BlHE6iNeIQMDA1mWEO0SkAV+adIMXz78IskXxFoANxwWZ8QGFdEWwOIAOVEQYwlBC9w5WP+nSUviTGyznj5n2PnjN05z8FqAbLitrgrD4ct3sFqEzxKiLMBnOMhGsiwg1vUwL+GyBKcPYBYQcj1dLPgkyMyw4soTrJFNFR9QFAeEggif6/EWWoTSPyzsybYAZAAxllAto2HLYYRcT7Bcx+cDYgwnaAGuYCLWcLIsIMVwoixA9gWphhNtAcwSEI2vaMaWEAjWByS0OrAqBQDXPaUZstITfAAAAABJRU5ErkJgggAA`,jalapeno_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAwUlEQVRIS2NkoDFgpLH5DKMWEAzh0SAiP4hswh3+w3QfWXkAZ1DC1OFSg1UjSJO27Ue4664e5mf4/ekOnH9y+xOwPmR1IDXYLMGwAJvhMI3mnjJwX7HyqTAgOwJkITZLSLIAOTjQHUKWBcguwhYcMAthPiHKB7CwBdGwoMEXbNjUIyctojIaIQvwpVWSLcCVWnBZQpQFyMEASq6wZEowlzEwkFZcw5LpqAWgoIXnWGLCGU0NSrwSHclkWATWMvQtAAA9on8Z/HlQTAAAAABJRU5ErkJgggAA`,jalapeno_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/klEQVRIS+VUMQoCQQzcK2z1A5Z2PsBGwdYX+EZfcK2gjQ+ws/QD2lqczMHAXMwtWeREMc3BksxMMrlUaeCoBsZP30Ww2Eyb0XjmNn3c7V2x2Q6W23VDtMf9kgA+X93S+TBpvxp480h6CQCuIBY0SuISWHAoBSDCkvLtrQ5YTA9IwncIKvKAHVA15q/hGR0m8GYPcACgA0uk3TBPc1488AiojgSn+trW5XJJkiVQ47iyXFdVaT3JdkBl2q4q9daVgEX/AYv6PLHrGjbZ3oGPEmA88AAm6xnpUw+xoWuqBqOIWxQ59SECAtk1/W+CzkmIjEJyOmMv8qCQqE3/fYInGwy8GfZ6sOcAAAAASUVORK5CYIIA`,jalapeno_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABH0lEQVRIS2NkoDFgpLH5DIPLAnNPmf+sfCoonj6y8gBeR+KVtAl3+A8z7fenOwwgw7VtPzJcPcwPpkEAxMZnCU4LQIbDDIEZhI1PlgXohsMsANHoloDEKPYBzJWwOEAOHlgQ4rIEbxChawZZABJDjmhCcYHVAmzhD4pkGDi5/QkjrmBE9wmGBdgMh2mC+QDmC+T4wJWiiLYAOcmCDOPmvM/w9bsi2FP4ggmvBbDIhfkKPf2DLNm54CE4uHClJpxxANOAHGToFrx/eJXh6onX5OdkkCXIrkfPzSALwGGPxxKiCjuQJaCIRk6mIL62hSg4aCi2AJY8YRaAkikxhoP0EeUDbBYQW48MXwvg9QCxQYGkDiVUSAoiMiwjLZIHpQUAD3LJGUbvuUIAAAAASUVORK5CYIIA`,jalapeno_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAhElEQVRIiWNgGAVDDtzebPH/9maL/zQz/P+zS///P7v0/9zUDKIsYSLFcBXjWSQ7imgLyAWMpCi+vdni/+dHBgwMDAwMRtkzSNI7CoYwoFvGw2UJ2fkAPePBki/VLKAawBe+tzdb/D83NYPocgmrAaQUbGQZTmrpiQ4GtrAbLdwYGBgYAFTPX5fT1wXtAAAAAElFTkSuQmCC`,pea_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbVJREFUSIntlMtKw0AUhr/YokRqkSAGurAUgiLSraZvkT5BnsGlO3d5jj5B8wKum7qTrlqE0o0QkFm0xWys40InTm3Sm7gQ/GFIzgx855x/LvAXZNdMAFmtlwD4/KbxVlIQNfzAkYA8udhHj40fFC79wJmb6HcFUSjwA4fWzSPVesnYOkG1XmLUm0oAP3Dod0W6FoWC08uyMbgf85MOMA8KJJOZVLHrWZxdWQBpBzvbgMtHRQCZTGbS9SyuW+e4nkUUfnXhBw6j3lQWNwErW8bPr7jeR6WNpk3ldJ9G004TqL2wa+b6HSi4Hzi4nkWjadNo2nTaMU+DFzrtGPiwRtkUDxPW6kCH97sirVp10GnHRKHAPCgYyWQm9Q1f2cF3uK6nwctcnExmWJVdIwoFVmXXAJafoqzKATrteO4/CgXlo6Ixfn5dYOQmWGaL7vnZlUXr5jGXlWnRurYoeLVeyi00b2GlLTp81Jvm8RcT2DWTeJhIdRSX2bIKDhkWxcNk4RHLs2UVPDMBkFqjLhFsZouuzIumX/9tbNFVyJi7hTcOj/dSeBQKHu7ExvA8ye/j8/X81+/oHfIfC2frtx3xAAAAAElFTkSuQmCC`,pea_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAelJREFUSIntlDFoE2EUx3+f3hESUbQXKFypQyg1iFNU6C0B41K7ZJIuSiI4NIJKFx0Es7YIWTK0QwsRBDchGDsUCprBG1pKx6pBkEiG4nWpJLWJfi7ekbP5rqkIXfqfvseD//+9/3vvg2McNURQMluM+uIz5yJUtuoS4NGlWyKTyhPWRgIFTgSR61qIatuR2kkdgMpWXeasBGkjTiaVl/10oAUlV1oNmTbilJ1NH1nZ2SRanhKj5pV/E8gWo0ROh2AbzNEIORIAzNnrAKSNOItfVmSysRFoMShm8ODFec8OlxSgO74WGhQ/f3UAKN3/phToOYNu8vEBUyR1Y18hobBGte3IsQs3aHVqSoGeFj21smLy6hOp70yLjQ+2L5ezPLtk17CVVvUUOMUgxcpDMf95SU4MDIul7bo3ZNcit8Ozr+6Ki8Njh+vgzdoC1bbjbZBbdS88//pOXnc+Ha4D8A5JmquTvqoBJowhMWevy5yVoPGx6a7xgRvlQ6tTo2TfIVYQ8l5piKlFk1hByGf2ZRkrCOnGrU5Nzi/fVvIoLzmsjfB27TVJ3RDNnR/sNvd8+d3mHrPWY1FZXRCZVF4pEHjJ3fv9978EcNOa+fOa2Zdzoezgf6FvgfcvvwfGKgRNvq/fsk+uYxwhfgNZt7hllq/TVQAAAABJRU5ErkJggg==`,pea_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQFJREFUSIntlD0KwkAQhV/EI/jTpYt2CjYBFYSQRhSsxSOJeIxcQlIG0gS0U7t0MbnD2iQhGXaXWbX0gxTDvjA782YH+GOC77kAIKpvs14ptZOp3dIulo5UZ5FYJFGAXn8IALAdT6aptcfTAaPxAACw256l2o7szyLPlDenPO4v7bk0wa+T1FAPylgK9aCMzeGaqUJlYBOWmSqUHlB0fdaNd5ebQJfkEsZ0vAW4VTLNFEkUiCQKRPoMKy0ARgW3a4rmbcpYicl4s2GPt8ku+pS6j7SXFabvQupBkWf1RFBu15S+C+3EfLyLuPunVYHvudZsvhfN+BLGXycx4mdL7k/FG2sdid9DA0ygAAAAAElFTkSuQmCC`,pumpkin_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAu0lEQVRIie1UuxGDMAyVOUomYA52yRzpU9IzR3bJHExArzQg54S+puIur0On97GFBXB3lAYOZvhZA5wfE3283h9Xo2sVj6JPM4CSAwRuIHMCjtD1SidAoaaJub3cAPEpMBZRyOolk+IRWlCWqi3OYN3yohrnMKD06wYwDj6Z18ah1nYt/DUwk3FDLmjhym8awt/guoE2TG34HOJDi5I1Q/ehZcUtDl9i6rrYU9VGu0/cRcSVqecwwb6b4wsIwjy5qWuN/wAAAABJRU5ErkJggg==`,pumpkin_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAgklEQVRIS2NkoDFgpLH5DKMWEAzh0SAaDSLsIVC1zu7/lYtPGTY13iWYSHAq8KtX/q+jLw22oS3oEFwdzHCQOMUWwNwPsghkCchSmBgxhoPUEvQisqGkGk6UBTBDYRYR63KYPoI+GLUAPYjgqYRgGYBfAdxcouOAXAtHLSAYcjQPIgAOZi8ZT91aaQAAAABJRU5ErkJgggAA`,pumpkin_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLkQUwg1+9+4PiEzEhFgaYJWRZgMtgZFtglpBsAchwdBeDDP786jvcfF4xTgayLMBmOMxgkKEU+QCX4egGgywhKg5g4QyLLGQL8LkaZAHBVIRsGMg1IAALd5DhyK6GyaMbDAsujEiGGY5uEHqOghmM7FpsuQ7FAnTDkcPSIlcenJmINRivD2CSyK6DWXBi8kOSkjbRioeMBSiFFsGiErcC6hR2xDiA6DggxjCCyZRcQ/DpG/o+AACfiHQZOpMMxAAAAABJRU5ErkJgggAA`,pumpkin_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA20lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYUk1H4AMwuZKqllAcx/ASkdQWYPsE2r5AKXYpaC2o7y4JtZykjINsYaSlZPJMRxvTibXQHR9AG+ifxnYavyUAAAAAElFTkSuQmCC`,pumpkin_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA90lEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLtgXIhr569wfFJ2JCLAwwS8iyAGQ4uqHoYQWzhGQL0A3//Oo73GxeMU44mywLkA2HGYxsKLIvyLLAIlceHJkgw7EZDDIUBkiOA5jr0Q2HGYqccpB9QnQcwFwP0kzIUIosODH5IdGOAlmEUzEsSGCRBfMBVSyAGQ4yDDloQC6i2AJkw5HDkmo+ABmEzZWyfEwo5c3jT/+IigsMRdh8ADL8YrYeSmmgP/USAzGWYHUFckFmcEscbHCBwjeqWIASDAQLe9wKKC+uibWcqIgi1jBs6mhuAQBXJIAZAYF9rQAAAABJRU5ErkJgggAA`,pumpkin_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/0lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYQmz6OnCxyh56vGnf3iDDEMSZBA2V4LEQYZfzNZDsUB/6iUGfJZgWIDLB7J8TP/RDYfZhM8SrN5DLsgMbonDXVyg8A1r/USMBSjFLRVrOUaS0jQ5Fo9aQDDUALfWiRlPIsF9AAAAAElFTkSuQmCC`,pumpkin_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIid1UwQ3EIAxzK/7dI2MwCaMxScfIHkzAPSoQnJKS0uvj6h8SOI7jALwWRJSJKN+957RHPqTjECkz8zJ7bx0p9CHB0okGsQAzL3vcZjntsMzBOqv/RZ1626aWmhm4Ql7jBoiRKwKuFhf34BvWvZCEuHqINot8SGoRSUjt4Iy0COhsNMJkUVtkJOZxDBfv15vZWXQlLe0bQLfNPAON/PZ3bSI/QdfBbFL2uD2TrPd/1QDwAfx6iTTKaBYOAAAAAElFTkSuQmCC`,spinach_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7klEQVRIie1VXQqDMAz+OkfBu3gtnz1Ln3et3kUYSPegwTRNjNsYbLAPSjUmX/6aCvzxqyjbchEOCCzdgtSvT9PscmnCgjECQ1dLiYzI87LupLd+b/gumlcM3U5ASD0wRp08L+S4yVx63NO3iHgQGkQmV13LIeFyGYSA3QOLzMomL8Dt3nD6TdYiPIr6VIm4oVUmz9EGeYrqJksyWRaZpXJU9WPKjTw5OXpqDngz+bsWNe3GHEgHAdNcT6eVCc/gQMe7iwK0vmjNNUpkDZrumJeqvuhMG7vJ3LAl46S03kbBGAtSf/pf8JqTD5J/Jx5qr2HmmdxT5AAAAABJRU5ErkJggg==`,spinach_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdklEQVRIie2S0QnAIAxEzwpO41pO5VpOI4j9UmyrMelfSx4ICnrPgwCKonwfI7odXO37mFlvDzKsrRFvn7JXgllYOwuYC4KrPWz1Y29ZLegG90AASOXaZCOZC2I2SIUvFQsoibdgybcCStJgiFazzBpBYabyV07e8yJJjGp+5wAAAABJRU5ErkJggg==`,spinach_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAW0AE3Rtv+dDBT/D7Q7BhA0RdtSzftM2AQPXH1CkiE0jw9q+pi2gC4upUp40yUTDcqIczJQ/D8oHTawgKySFVc4Ui18sblohJf/QxoAANEqIe1OcIVOAAAAAElFTkSuQmCC`,strawberry_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAR1JREFUSInlVbENwjAQPCNIhSjp0oUGJohYgClIxRCZgDnYgg0yAGXS0aVOQ5AwTWzZzv8TU8JJkWznfee/s2TgH6GdT6oBAKhY8uKc2cmlbAyHIVSmxvybRQqoYSMAYBDTxTmz49GGCPLRZqIbu2Y6mCKgAaBP89GP5F55IoGYAoBPFuk+zS153XZYHGaTyb2BJMAhuVd2zIQvdiCS120HfdrDdOiG74LrwCOv2w7b4wrP64sspuyKuqab9ZIlJ0g9UAK6T3MvUAnGqkvZkFaxDNypQ2FTx+UVZiAGy8HNyLlZKhT4itzFQO4dWjQ5tEOaU+Thgg1XupJTT84KxCD0m8I8ijGCmCsgbarbDrvHTdo3WQDgn8LY1+9H8AYaOaFdHXkaZAAAAABJRU5ErkJggg==`,strawberry_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZpJREFUSIntVDFPwkAYfWdQoAYMgdiIcSHK0ASHslgGBiTGGBLZXJmMHXCE0ZmasGDSVf8BA4MhTiyd7OhiogMBAhEMDmrCcA7mCpUWMDI48KZe79173/u+ywELLPDvQWYhZUoBeH0cKp06Ta1vkbfXd1xnX/5mkCkFTOvaoEtlSYSq6WAmo7AzXJpUcW3QpZzHCRe3YuzJkohKp04BGByvj7NN4LATr3TqrGLKhFVNBwAcrG0QAD85lt2wTMAOMjy0c8b3kX+TVPstWu23DM7o/tQEnMcJ9ABV0zFqki0ngTSgarohrGr6RHHLBLe9pklAlkQIvAKBV0w8VdNxyu8SgVfwGGzbXpaxBFeOFEmUBYr0UGi0/8yc9V6WRBxrN7YzGDNINAQA3y0ReAUXnjg5Ke+ZDBlkSUS2nMRhMEIiuLZMYDlkAOTe/UyUjyTZbvCGIUN82U/OV6OE/dtp8jYyFglchYJp/ZnPo+LVSc59R2UMh372tA/M+BJMRTjmQqhI6KUWpaEioeGYa+azkyqgv6xjPmkWmDu+ABYSnXTgyhitAAAAAElFTkSuQmCC`,strawberry_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAmJJREFUSIntlL9P1GAYxz/vtbw5rw1X7gwOhKRAIrtMjCYmJCbEyb+BBRddWJxcWHTBxb/BRUNiojExrsawuAgJeAlBPQ/uCrRHeend63Bt0/uJTjrwTG369vs83x/vA1f1r0v8yaHXj+4A6Gl3jmOvLtyFRVRL6byZF2bOZGpp9e8bHLx9nj5/3/1K48c+Z81AjzsTwl1YRBpSx9+Ef1QFoOiUuPXgRRdO7pLhNaCvu7OcNQMAceI1kIZMhhNCtznxGrrolPQgAHMUetSORBiFWhqSe0/f9zEDOK3XmHbnaAa+KFj26AYfntwHOlSnllbZ3lwHEKqlBjFDtZQoOiWs8qSwypPY5RujG5x4DT3tzkHszfzyGgBbGytsbaz0MePsPEYxsYtlHbWjPk+7GmSpZqXY+fSRolPSzcAX1Z0vWO4Mh5U9YQJjCN1S58JXPra0NT3B6TVZFCwby50hakepFAD7lV0Klq0TZoeVPX5W9jTAxXmINKRQLTWaQRKx7c11wijUtrQT6Rh3JsSxV6folNLzU7M3RRuwrlnM3H3Yi92ZOPuS6DzmOKlh0pCp4XE8kYbEVz55M4+ZMzUghl22LomagQ+gLzwPacgUMCnVUjq5YABhFGqA8PS4LwgDGxzVqunPcTR11I5Sw/NmvotxonujegCg4wGHN4h1TkF85ScSML+8hpkzIZbVlnbK8rRe6wpBtobuoqzmymsQHP0COkH49uYZGanE53evGHcmALj9+GUXztBVkb1kzcCnYNm6l12yTZM1MqguW3YAFCxb71d20/fYHxFG4chVfVX/R/0G94oNtjdxwCgAAAAASUVORK5CYII=`,sugarcane_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAaZJREFUSIntVT1PwlAUPSVNXNgMTdwaZCWmG+pqIouGONGNyYE/0N8APwEWtzoZI0ubsArdCHFwqcQNxfADSAh1sO/xPm4BcfUsXN4995x377sEAwpcr5ioZ35rYuzCo/hSoesVE6dU1QpGcSAVZfEovlZkFZaYfZmczL6zIpEXDvua+OXphcQ3xSRZFP8UOagCXiCJU12Ew0A65wZ+a2LA65Oth8OAm6jiVmGZcmhDcq5iJ2LLTqnKP1WemNPegBJn30dxIJmwmOKxNxIXIqePow+/NTFGccBvJt6SLQAlDmKlJQORuHg9AuYz8BiAnV/Bzq+kM8xn65hAjrmqu86RmjBhKU5zDO1uU/vx8Q6YeLvbTCjivf9Cxqq4Wqvd+O7xNmFzjnpjfl53y1xYjAGgcnUCpAvSqHUkTX0kokk6gmgwRd0tax1VztLZH1qkOKgtAoBGrWOIt9+GqDcmxTMNKGx7gyyYm5LvbwseU28g5vcysI8PAAAfn2uTTXkKO49oX2R28PD0bADnmf9afzZYmwA317RRNJhKPAqZCRWqySbRf/wK36wQGKXFDcrEAAAAAElFTkSuQmCC`,sugarcane_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALJJREFUSIljYBgFo4DuICvV9z9NDX/6bOZ/mliSler7//adOf9v35lDkiVMpFjy4MFDBgYGBoZv35gZXrx8R5QeoizISvX9X93owzB90j64JcQCoix48fIdw7dvzAyTZ8SRbAlJQYRsCU0sYGBgYGit30KSepIs6O/cyBAYbsBQXBFAfQtghnNx8ZHiJuItIMdwkiwgFxBtATmuJ8kCcgEjsQqD/KxRyp51m44SrXcU4AUAXQNE1DhUevgAAAAASUVORK5CYII=`,sugarcane_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAVtJREFUSIntVCFvg0AYfSzVcyCWrElNp3BzJPUYBArSZEk9Fl1VhRyi/wDUxNKEX4CrQw1DQpOJzU2TMNOPHNe7K5TJPXXhfXnve/d9hwYFgtBuASCOMk3GyXiClAhCu50vFwCAuqx6Iiwn4q8asAKG3uDre9aJEGfoDY75aVoCOj9bj50JKy5LOCoBCZAJL84n5LXuZOJ1WaEuKxh6g/ly0V0HL37MT10Nm1powIrHUabFUaaxApSEFacaAEIT4frxUYPQbj8/fnp1D0/3ws3ir0o6ZBauY7Web/a+pUmBt/f8ohG+uYsZTMGgIfNwHavFuWMCeyZeBqWB61jt6/4FAOD5JtKkQJoUoOsiXmUyGyJO4OfA86MT/AWUBrvtoTvLZsDWjDZYb1adgGgGu+0B683qdgMyIXi+2ZvDNfFBBlMh3aLzK1Xu+BBM+lVwzdxuAMGLVYn+YxR+Ad5z26tYeOTaAAAAAElFTkSuQmCC`,sugarcane_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAK5JREFUSIljYBgFo2AUDD6Qler7n6aGP3028z8pljCTYnhguAEDN7cgg7ObKsOPT4wNp8/daiSkj4lYw6sbfRimT9rH8ODBQ4Zv35gZXrx8R5TDiLLgxct3DN++MTNMnhEHt4RYQJQFMPDtGzODhLgQw/RJ+2hjQX/nRobAcAOG4ooA6lsAM5yLi48UNxFvATmGk2QBOYaTZAG5gJFYhUF+1ii5d92mo0TrHQV4AQCQmDoaSzRzBAAAAABJRU5ErkJggg==`,compost_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIljYBgFo2AUjAKCgJFYhSbafP8NlP8xXLjLxMDAwMBw5uonovQSpchEm+8/Pnl8lrFQariB8j8GBgaIGmwWMWHTlOLH899Em+8/suEQg0h3DIYFJtp8/2HhjAyQxXwc5LGKYwN4ZZENQgZbDjzEKl6cZIThC7wWIBtUnGSETymDj4M8Q++8cwwMDKhBhREphCKVWACLcPwBiOQ6YsSQAcyhTNgE0cGTx/cxxHDFAzrA6gP0JImcUgjFBbp+eBxgcz1y0cDAQHzxQFcAAE2zRkug2a02AAAAAElFTkSuQmCC`,corn_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbRJREFUSInVlDFrwkAYhh+lKB2CToVupW5C6VgQOrl07OoiCrp37WKhS/5CQUERxNVR/0CgowhxUtwEJyWDxKHpkNxpktNYLYV+S+AueZ/3e7/cwX+v2C9oOIf04ueKr6cVlsMc62klCDsb4CyHOWzLhLmBbZlKyKkAZzGrA7BJleE6txdycZLzPrBqwtwg4UE0LYttmW5HO/VTgLOeVrAtk6SWxQaSWhZWTWwPlFg1fR/Iqd89u22Nenv/LGcxq4cEAJgbbkxA+t7w6caFeKmYoavXJEjlPLFquo6Fc7YzSGrZkLgEiBqMOyqIs+wjY7HiD248XtYJbxaXt42QeAiggDjraUU6tC0T7etTwkQn6SeU4hAxZOEcAs+5IYeavqnuFVd24CvPuXAqn976VYS4BIx6xFrtSWhzN2vbMtmkyrKDfZkH62BEu4PNv1QBA8/QUeKRAJF1/q1BV69t13UovL47B87McYDHDwCDrl5jMO749rp6jQLREN9JLhUzcqPVniiFg9VqTw6dfnUHrfaEUjGjFA/+DFEdHH3ZCeFjct8t38viighGdYqwEhAEnSP8Z/UN/uTZrzroGIUAAAAASUVORK5CYII=`,corn_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFJJREFUSIljYBgFo2AUjALaAZdGhv8ujQz/CaljItfwPZfZiFJLsgWkGE4eCGH7zxDCRlTwkG0B7QxngAQRKerJiuRBZQEjDnFKwhiXmaNggAAALTwUmwa1nZEAAAAASUVORK5CYII=`,corn_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIhJREFUSIntlMENgCAMRb/GdBu36AjsY9jHEboF23DBExyMUijhxjvDf9A2BRaL6bBHYo9kvb9r4QAggWCVVAU5fFTShqMER93lUn9QuOPW/aguwYekZQD6BK9wCaT2xiTI4QDAZ6yePSwCCVSC5UK1NyYBn1ENNjNvTI1MF/zVcWQlzOnNwswDkWwuFghkVfgAAAAASUVORK5CYII=`,corn_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3UlEQVRIS9WVsQ3CMBREnQFoGQBqiqxCBkIMxCwU1JkiA4Au0kUfy/Y/W7EQaVLY/u/f3XcyhM7P0Ll++C1gup3fVPi4z8lmuCe3XlSAw8/XsjLGyyHYIiycW2djkkWn63FVQohaHGckADZaCLtOKYuHRgYQAhUAxJblptEFxCF6oVYpsF5b/3MTk1IhTxH9xns3ADsqjav3JXAziCFquFX3wEKsRUrgsgILQQaqbU0AwOwnohR8E4AXTZmoJoBSuClkHIL3u98DO+t/A9j+ZN5NTax/5Vodci2wO+ADXJmJGbhBn08AAAAASUVORK5CYIIA`,corn_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAvRIJBSpJMUBckTCXAwSw5ViKEpFsPAG0VSzAOYibMmVUNjD5AnGAbolxEYuyRZgy7XERDjRPkD2CSgOiA02sixAz8X4Ip4sC2AZjZgURZYFxBhMViTDIprq+QA5zVM1J2PLTNSyAF6TEZtjkdShxCvJkUyqhTS3AADroZQZ0g/6xwAAAABJRU5ErkJgggAA`,corn_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABBklEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAlhYJ4poMoAimFCkkhQHyBEJcjG7KB/Dz9efwJFNyOUweaJTESy8QTTVLIC5AltypYoPkA2BWUJs5BIVROiuRI5gUK6e/+Y6WAm+ICM6spCDCxbZVM1oyBag52J8viDLB7CMRih4SCoq0H1AbFIlywfEGk62D4aEBfCajNgci6QOJdhJjgNSLaS5BQCfTpUZV5cHzQAAAABJRU5ErkJgggAA`,corn_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA2UlEQVRYhWNgGAWjYBQMRuCtxfDfW4vhPz3sYsFmuYetHpR36f/WawyM+AxAdygh9QQdAAPn774nqBnZsTD13gyPCToaGTCRazkl6pEBVpfCgpUYn1AaBXQB+BI1zjRATcvxJWqsaYAWAFc6oYsDKEmkVAH0LNhIBjizDL2yF85yAJFyIXH48tljmjgCbzYkN/GQUpBhdQBE4yWyooDUygxnCFAjuMWlZAlWTlQvCWGhJy4lS22jSQPE5n2SghnZQGrlCKINQW98UCtbklwXULtcH/AoGAUDDgAvcmw2gDIKjQAAAABJRU5ErkJggg==`,potato_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArUlEQVRIie2UsRWAIAxET58jULuJm1m6mZtQuwMWyhNjOAgWNl6FIP8IpwF+fa2ucV+oZVkNAgCsy/HgN2B0x3iadZ7FIERwVGqQM+mtcL9dkyk8p5oKHidnklWUKqiCp1VJMYOwLvfNcszAJQP15KPTM2BZaBmY7jzVm6+oWdRA3jG789yPZq5ACz0HB4CBwWR4WpgMzhaKQZ9gCi8tqo2tFmx5Sbbm1hb/6yPtXRM6Z/YOWwgAAAAASUVORK5CYII=`,potato_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIntlDEKwzAMRb+Tdg3oAJm9detBfFIfJFs2zT2AIWtI3KGkQ6gixR0KxW8y2H5PYDBQqfwMHyj7QFk7dymVd7fltQZljslJZ8WNvRAAOCbnA2Wm+b137xtMYwsp0linZZqxlwPA8FgP76sBTeLTVZzeHNhEZ+WmAMfkPoksclNgi5TIzYFvqAEV6aHUP6bAWflXnpbpO+4f7cK2AAAAAElFTkSuQmCC`,potato_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP1JREFUSIntlD0OwjAMhV8L3VAlH4DZWzcOkitwwR6EjS0zB4jEGpUwFAc3JJS/CfVNUWP7s1+SAot+ITYU2FD4JLd+pXjbDbDkkUI0uNTEOlcQAGzvKjYULHnglAdb8thtazDGnLYbwKBge1dJXJUmtd2Aw+kCdk2ElKaz5MGuiWsA2G1rnI8rCCRapIvHZJngNpF8t+THbqV47ypZS75ocgZ6k12DthsmMB17Pq7uIDPaIpAsQAeUutF7uqkUos9gMkEuIJX4XrIlzX24ptHrZKIctGTLW9Les6GA/ebhvj+7abMP7Zldr8TMAr7VAphV6XA++jXP1Fz0r7oCqWWiCeEH+pYAAAAASUVORK5CYII=`,potato_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQ0lEQVRIS+WULQ7CQBSEtwLBj6nClIQEj+Ai3AKJ5R5IBHfgIgg8CQEMCsOPQJS8pdPMvnbbpoAg1PRnu/O9mX27gfnyFXxZ3/wJYDSOYolyvTpax/q9KObSiESsO2yb3eFmmmfLMfcwMP1ey5w211QbcA3LALg6eRYxXAyQb/LOMIFodw5AV8sTdGUiDICMsSNxLO5kfgpgca6Yf4YjOMEYYIgP7jIAHQeyxwQIcOUshgYA0AHoQa4mD6Cr1RFi0Z2ImFy0wOKA1wfOsQ7cUWlfcytyv+dBAUDVXIweSwGoIm+yD8ixcAPkOuBKfTvTJ8JO9IZz1sC3G3UU2uVbR0WVGD4FsAfRaBxJB0Gz9Cwr/SFRihfTgX08Xx4m7DTsfbbcy6dCjSoAKw5hHcdkvi2E+ACvc7ne5WhWcVAPk8z6fcATQYkRKFHnkOsAAAAASUVORK5CYIIA`,potato_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdElEQVRIiWNgGAUjD+R5MfwnR9+UVIb/2PQyoSsi12G3nmIXZ8IujAmI8dmkbQyMxDsJiwXkBh/RgJIgHAWDDFAzMrHmg1tPqWcJzoyGK2cOGMCVCalaVBAs7HABYuJj0jYGRjVpTHGifUAMyJlNQWE3cgEAMasir1+5WT8AAAAASUVORK5CYII=`,sweet_potato_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWMEQZ8P5HD+ZlFz7DQ4asIEI2tDlIE2z+1TuXGbRVdMHs2nXXGWCWkGQBzGCYobgSCMkWEGswzEKSLAAZjsvFoGCBAVjwkBRE2AzHZShycBHlA1yGI7uUojhAtwA5lRDK/QR9QIzhyBbiSqIgh2AkU2IMx+cDZNdjWAAzHFdwEAomdMNRLAAZ3lmQxvDr0WFCQYxVHpvhFFmA7huSLEDXjC9oQAaDAHIBh+xFlEjGl2uxhQsuV+O0ACSBraREz6UwPi5X47UAWZJQWU9MaiCpuCbGQHQ1Q98CAPnipBlXIGtSAAAAAElFTkSuQmCC`,sweet_potato_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABE0lEQVRIS+1VIQ7CQBC8fgNXQ4KrxRE0CoWo4g1oBJo3oCpQKDTBYetIMHV8o2SaTLPd7vXO1DScau72ZmZn97aJG3klI+O7P0HQ4QlblO3SmvmX16qXqTxHnBWDfdMiXN6fV+5dfhuOV/HpAOB8mc9b/xfZzF0OT5PEVCbBiSJJNAFifCQdAuviEAFIsZCNzpL3gt4ycLtJ3TF/NPGnYl3f7lUDTOW+OnhrQI+hjOAABokkoIAoixCsbfIRgIidRDEWSa8GVvdI5czAssvquJZAt6YO1iS0hvvMRr+HDoH03SoawLAv1fPbN5R6Fg29SqplJ4XAvS/ZUkP1PIsBjyVoZ9LAbPZO5QmP6+CvKjJgdIt+t2zOGYhEhSEAAAAASUVORK5CYIIA`,sweet_potato_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS+WVoQ7CQBBEj9/AYUhwtTiCRqEQVXwDGoHmG1AIFApNcFgcCQbHb5RMk2m22927MxWEc727zuvOTu8Goecx6Fk//CGgWI0q2Po4vbOqdzdRiD2CIOam5ThMimE4bG5ZEBMAofV+Fp6PT5OB+/EVIM5BiA6JrqwDsMQhogGxOQlpAWiBFV0AMGQVFlTb1wBS4vwq7rOA2j6806nA+vrlYhS25bXeuzvOq/Pl3VTigTDfAUBAVsJNFAZEA7CmGw4bTYC2yQMAxBizJ9J7rNHSVg9kNCGurWEFMbvMmHq5lwBpE/sEu2Q11t9dV6B951FAAS3oPVsBaVlknTESkgJGAd694AE0zHs/60S0IL8FYIKkDYxq6srNsai+YBLD1ckBpMSj670Dvl62CygLcuKEAAAAAElFTkSuQmCC`,sweet_potato_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABSUlEQVRIS+WVoW4CURBFZ38Dh2lSh8WR6qqqChTfgK5A8w1VK6qqqpu6WhwJBsdv0NxN7ubu7Oy8Lckq1gDz3jt35s7so7KJn2pivt2hwOJ1fqWth49z0YHBDQoCEDDEluuHhv+4mNn79qeJZ30MFwHa7Fd2PFzas7/1yQhnkCIq4AV7AhEcgEjAx6KqOgJqgS8bMDxaRVYVK2kFSnCCCY0EvXUQ6VUQNUyzpg2IaQ98f5BATwBwrUSzzazxzcbeUMDblAmw0mhswQl7oKOpDaTfbLJf0/6EY5rNPWAvz3N7W39Xu/rp+vl17rx0ak/00jVN9r4jBihhAFNAhbLMaWFnTHkl4JNQ/Y4YfkOEiemZaALTe8SLKNwnMXQfFW/DqBLCdO1mgcwuWvXv2zQ6QP+5NgaOvUWLzKz9g0kyHeSMEcgcKK5NLvAHBzcHKPX7AFMAAAAASUVORK5CYIIA`,sweet_potato_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQElEQVRIS92ULQ7CQBCFt9fA1ZDganEEjUIhqjgDGoHmDKgKFApNcNg6Ekwd1yiZJm8znZ3ubCA1rIHuz3z73sxs5kYe2cjx3Z8Cik3ewrr63PykMjhMwbfHhXvW747xqF6OQzic1q0L9ABacK6E1ufl1NfFrJi40+4ehXiAPEw358HkNyg0z4dUFCjAZm4TrOJAbU5TpOZABkIw+rVUSUigYCg4zeMw/efWDJ0hu3o5IFsoaXJoicUch/JzqL4OIKtH+mslHBBuYQCIeasBcFtNHe8PrwAbtXKUfmOPZo9szB6AFrXylJ3NrZAQFRDLgwyOQrCsgYVfdXKKNQEAKnip8bysV7m7XBvfaNYToQJk/ePlpIY5VMtWAqyXlOKZbz0F3pe3bh8gKc90kgJsosBcHYBByysTpoKUILE9owM+Bp4PKJgW4PEAAAAASUVORK5CYIIA`,sweet_potato_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABUElEQVRIS2NkoDFgpLH5DMPIguRM+f+w4Jo7/SGGz2Dy2OTwBTPYIJDmyAR9uLrlCy4yIBsEkq8tTgbLN/fORZEjFIeMyJrvvD2DYQmyPEwS3RJ8vkexAGYAzCKQT2Au//tEhoFZ5gncATBLCPkeHkQwg5C9DDIEBG5v/8Iwf0E3Q2JCKYOqJw9YDBSE6L5DdhgsiOGRCfMmsotBBh568JbRTkH4P8gCEEAWA/FB4jCfYQtirPkAZiDMMJBByGIgvpevF0NosCPY0raVjRhxjeEDdBXoloD4IEO3bd4GNhxEwwDIl7hSE04JXBaADAIZjs9QZMvwFhXYgoUUw0EWEbQAFBwwV8OChljXE7QAFrkwS0gNHqIsgFkCSzlUDaK//5/+Z2aUBgcjciqiahCBLMGVBGGW45InOohgPsFFU2QBcjDhYlNkAT7NxMgN/ToZAJfI8RlnygRTAAAAAElFTkSuQmCC`,olive_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABdklEQVRIS2NkoDFgpLH5DKMWEAxhioMor0rvP8yWSW2XMMyjyAKQ4bpGInBfXD73hgHdErItgBn+9s1HuAVaGVcY/Bh+opiJ0wJkr4NMQHYZSE5KjhUj/Im2YCMDx//rM7TBBgiL8INpkPdhFuGy4Nmj38QFEbIFMGciW4TN9dgMB+nFGkS4XAizDGQYyBIQjQ0gByfeOMDmUpCBYIMZ/zJIyXKhmC8swgvmP77/laGp9CTYbAwL0CMXYsI/Bik5djDr2aM/DAwM8KQPFf8HNwoUlOIhR+CpCcWCvCrd/xCDYML/IZH8n4Xh8vnnYHGIrxgZYK4FRT5ED8hSkL5/DMipCcUCSOTqYgSrsLAQkgVsDFoZl8BqXq6xYbh87jXUgr8MDAzMcF9OajuPGUS4LIAEzU+oDxAWXJuhA44PkA+ePfwDjhf0PEMgiBCegVjwH+pahDZQnMBciy1FERnJiJyML4cTZQHWhE2BINmFHbF2jlpAMKQAvHOcGReApVIAAAAASUVORK5CYIIA`,olive_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS2NkoDFgRDZf20LqP4h/9cQzFHFK3AA3CGS4e4Aq2KydG27DLaHUUqwWwCwB0dgsJcVHGEGEbCCMje4rfBag+xgjrEEKqqN1GVqXXkZxPXrcYAs6bMGM1QIZJQ6wI5/c+wGmkfmgBAAyCJsYNh9jBBFMI8jgeEtVhoXHb8NDBGYhsqUwh4B8feYrxEHIiQQlktFdi42PHEcwx4AcAjIcZDB6UIItQA87mCJYOINct+fwc4aTj97A4wWkxoSbAyWusCUGDAtwJVFclsBcjSs5Y80HIJfBwhNmobmcCIOLrSTYJyAalMqQgwNXhsRaVMAMg4UrKOUkhen9BxkMAiDD0VMRrryBtcxBToagCAS5GgRgPgDFBXJqA6UuXOUX3nyAnARhLgRZNm/VJax5AZsvCGY0WPAg+wBkASz1oSdLdEtwBhG6RlgcwHyAK8yJsgCb5lELCAbpkA8icGMADRDVMCBKEcHww6MAAJp4MShPAj9kAAAAAElFTkSuQmCC`,olive_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6UlEQVRIS2NkoDFgpLH5DKMWEAzhgQ2i+BCL/wvXnMDrCJAaZG+gq8epGaSxLESfoWvNRQZslsAMBqmRMTFheHLmDNgedPVYLQBpntSRjFMTujzIYJglRFuA7DJkTTCfIRsKY+dVzMXwLYYPcLkOphlZHl/QwOIFqwXIrsfmdfSIBRmGKzHgtAA9geOKbEIZgWAQ4Yo8QgbjDCKQBHpEYos8qlhAafiDHIE3o8FcCYtAXEkUX/wQXRbBDIf5CjmJgti4gpFoC9DjBl/uRY4fkiyAWYIewfgKRJItIDb14E2mpBqCT/3Q9wEAeMK+GRpnxQAAAAAASUVORK5CYIIA`,onion_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAOxJREFUSInVVCsWgzAQnPCIqeUc2MqaCu5QhazkAlW9QGUlqndA1FRie45aTHhQ0/RBPpvl8ehnVFiWmZ0su8C3sVrL3nV2PbsQhRKaWgkO0Sy4XHBFgw7mYpLAsPqmVoLzDStJk+53WwDA+XIFV2DxKwpWEUfoAeB02IzixfEGAGg7moN8GUfoVZWTBcisJEW8VzQif9zthFdMVfnbJVvAIk9SixhJyhKZ1mQt5nLkgSXgrd50ArBc/NYk/4dA20HIrJxM5JsH2sHwj9HnUOMNeCeQnAUjRk3z4quCvexMId2nWcvOJaQRIv4YnrKKcGJDnEswAAAAAElFTkSuQmCC`,onion_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAExJREFUSIljYBgFo2AUjIJRgAm4zFj/c5mx/qeZ4a1LY/63Lo0h2hIWUgyvzg9nePv6DUmOYiJFMamGk2wBOYARixg1IhCbuaNguAIAavoTMVykVcgAAAAASUVORK5CYII=`,onion_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAl0lEQVRIS2NkoDFgpLH5DKMWEAxhkoJIwpT3/4vTn+F60PnYbCNoAbIhQ9MCkLdx+YIqQUQXC5AtgbmaGNeD9BGMZFjKQDd4aFqAnM6R8wO+3EZSEJXkhYPN6pm0EkwTYwlJFiREuoANFhEVBltCMwtAlixYvmfUAtS0AUr3sDigNIj+EyzkCSuAJx6iUxFhM7GrGPoWAABQhIsZroeW7AAAAABJRU5ErkJgggAA`,onion_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA70lEQVRIS2NkoDFgpLH5DIPDAglT3v8vTn8GOwYXG1dI4PQBMYbC1CCrRbdocFiAHDTYXE2WD3CFN1UtwOdyYiObYDJFdzGID7IYW6rClpIosgDdMoosIBTRJOcDZA3YggkURPhSD0w/wSBCdzlMI1UtgFlSkhcONr9n0kowDYtofAUmUT6AWZAQ6QI2S0RUGGwJzSwAWbJg+R6qWgBO+zgA3lAgFERggz+v9mNgElJk+PfuPgbNG7oJb4LBZ8H/r3vzMQyFmYZuGbfzRJAUhnnYLMAXHPgSDLIc3FxCQUSsgeRFEMWmYwszahiKbAYAYw7wGetnhO0AAAAASUVORK5CYIIA`,onion_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAQklEQVRIiWNgGAVIQEFB4f9AuwECiHXJ4HExtQBFPhpawTG0XEspGPy+RXfh4HcxTcEI9z4UUCUUhk5QDh2X0hIAAFsvEdRqfNUJAAAAAElFTkSuQmCC`,soybean_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVRIie2VPQ6DMAyFX3+Wbp27IuVuHXsajsCdkHqHbkyVO4RExDiOQ9NOPAkJiPO+h2MJYNcfRfOV6NDKvOv9zfOe+h4bAbJqAYjpfwGg20Mv+AZAXQ9cHDCN7QFJWzTIFoDac67aMSU3AO+XvMhHFKj7gpj8dLVvsgLitIT0HCKlF19I5iH5NPoD5cqZWwCrA+UQzRzQW1SclpJ5bpEAwA3+QZqY2bhoLhUkqcNBLiGW1EudtUXBuMo8V7z6aWwx3mXWB53sOFv+9drCAAAAAElFTkSuQmCC`,soybean_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAApUlEQVRIie2TwQ2AIAxFq/HCCg7Afk7ifgzgChzxYBp+qq0VboZ3Eoz/t/2VaDDoZWr5aN2o4PnYdZ3ZI4aC/BzidQ7xbug2WDcqLIQiIRLlVE0s1NZkpTnVdyickz2ixXLnSp+q5ntLnMiRQYj3UWDVMiOJ6S7njgZ4Z3XjXlMMHOGxaVl8+g/YRAZuBf2agQYLdm2R18SiuQMvWgXq2nVoDv7KCeIgQHNazaXdAAAAAElFTkSuQmCC`,soybean_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAr0lEQVRIiWNgGAWkgt97Ov+fm5rxn1rmMaIbDmNfvnmfwSh7BiOmFtwOu3zzPgMDAwOKPiYqOBLuMF11RQw5FAtYXcoZL9+8zwBzCTUA0UGADyDHGSnBOjQASd7BlVLwAaJTEb6UQhULKAbE5OBzUzNIzuXwcIQFAak5mBCgeRDBLYDl4kEP0OOSqtkaW2lMUj4glIKwBTFRPiClnoA5AqaGhRgLSAFkJ3FyMhldAADK8WmxC7dL5gAAAABJRU5ErkJggg==`,sunflower_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABTUlEQVRIS7WVPQrCQBCFJzFdOlsVb2AnKIinEDyj4ClEULDzBqK2duliIhN4YXZ2N9kYTZM1bt43b342Ef35in6hX+Zp+T5nNFikFCWZodkbAPHhOqbXobAgTkBTRNKxFMdzDbEAbRFJQH6kkiPnazaN6XorqjVDkhVV2gYgJKJeDkIi0k3R5riXA8A6dVFTRC6h8ZxKBm22I9rvnvS4mGkP7iIXeLLMamEJYChABgB/8F2+0FR8QNgFO9BuaoAU1Zvaii/f1amyHGAD7gy7n1LiowA9j17H0QAAXMg6WDXQmwGSEDmtXxXZZ1l2EedeprJTF2kXLMS2XWBAXOmxjgoMjq/gPjHddXLaW9sUm13FRzGDAL6oZTfxGqnQgxVUA51jnVdfOwY50Pl3Fc0n1AnAwl2FMAvoNm+RpQus5VQ2CenvBH73/uj7hPH8Azk1pyhepQfHAAAAAElFTkSuQmCC`,sunflower_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGlJREFUSInt0MEJwCAMBdBv19A13ERwRsFNXEPnsCchxKQg7aWQdwyJ3wQwxhjzVyFihoh5OiPVL6kxZY+UvTqkzUj9W0BvcLUMADgK0WwBVC0DvcHx334WwD2dYm3NOalIH6AbaHXzyg1mdiJmJYRz+AAAAABJRU5ErkJggg==`,sunflower_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHFJREFUSIljYBgFo2AUjIKRDGRMGf5TwxwmXIaHhEuTZAkutVgtIBXgcxCGBciKiPEFzHBcAMUCdMVrVj5leHKagRGXAxgYGBienGZgXLPyKXEWwBTjchE5cYMRRIRchAvg0sOITRDZhchBhEt8FFAEAPyuLmpSKFsiAAAAAElFTkSuQmCC`,sunflower_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKlJREFUSIntkdENwyAMRI+qW5A1sgkSMyKxCWvAHMmXI5ecSVH/Kt4XAdt3FwOLxeJP2XYc245jtofdv1hhiB4herPJ6mH1N4Fa4HJqADAlYnET0OTUUAvctyLM0FAAGMeX996QKcCGhOg/kkiNnEP0Q4OXAHPaD9fLl8E5NYxELgFZri7Wkfvly5u+Z7z1Ry1wGe0xNvvXjwn6JLNYPdSF3oN2at0vfuIEQtBnyE8BEcQAAAAASUVORK5CYII=`,sunflower_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIntUkEKwyAQHKW/0EM/4U8C+UYLeUY/EvAZOQT8hv6iYE+mG7ubWNqjA0Gi4+6Ms0BHR8cO1iH/u6amxYfRwDrk5/L+WkQ1861Dvj1MpuuRK44vOgCAGKD8nDCMZtsrrrgGHL/maulSKe7nhBigJBeUzwn6aEBRireGzwk6bADsw5fOa0H0XEtkThWdljIA9P05sGPKFbcOeVoNptXgescWbB2y2ICbCGpZCr8OucaF/sQA5ZFObZ9NFuugdvItpDusCpoDVSrtd/yEF231okoU8YDYAAAAAElFTkSuQmCC`,sunflower_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPNJREFUSIntVDEOgzAMPBC/SIZ+IluXjt2R+EYr8Yx+BIm9YxcGJL4Bv0BKhyrEuE5CRUdOQkBy9p1jK8CBA3uRSYtzB+u+i7PM2covJPLruf6PiaT4OSVr4538HdrA3h7KagM7d/7ZEreZT0XcO1aVxOec1RGNA7K2mVBWalkrKxU8OonPuXkoyCVvmwnjEG4y5UuGvgQoXHIXkDpryVBUAPiUTF3RkXT73BDdT44pd3W5eq4Tj2ER4E55cm1g616h7hVOdyyN5U0OCkgTQZ2Hms+bzLG6KsYBWYspWXZqssQKeCW/IhQjuqB9oE5D6wd24Q0PlLoJNXPrzwAAAABJRU5ErkJggg==`,sunflower_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA40lEQVRIS81UwQkCQQzMVSFiURbhQxAswPPtWYAg3MMiLErEKpR5LOztTTYxsOh+j5vJZCbTSePXNcaX3xActut3qew83kPDzH4C+HDqJ/jPx0su15tESCYECRyA5dMIcrVsAKpgv9u4CHK1mkq6V48HTC1TGTLOC441/C9B7lMtYWEFicCKr2mylv0UBOs2zEPrj0PowFLOVQLkerlaSFMCTGHt2GrjqoJmBJ4IsmvHQKXpZhexFbHGBTjrIzWmUFFrUFQ6a91yreqhYcraDbDGZZ6FLhlAYQ+s2H37PazAS/QBL7jGGVi1//gAAAAASUVORK5CYIIA`,watermelon_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAW5JREFUSIntVbFuglAUPS81rTTwQpcmNowMGAddXDv1D/oVTv0WJ7/CP3By7SKDKQOjCUkXyYOITnTQ+/qA56MmDh08CQkh3HPuudzzAG7417h7uQeA0nSd3jkLpnv44D/iEO9KAOCTnpFAzBKqYYd4ZxawX5+QL7clAHjTvpawO7Dl/X6dy/vNxxdxsHy5bQpYIwfFKiv9xVgWiig1dk/ggSuF47dPWCOHFaus4aD0pv0K6fO7VyFSO1ah1vDAJTcMADoAYA0dFGEGEaXggdtKSKCuuwO74fr0HaWD0l+MG8SXjEgV3K9z6aJDL33PN62F9QYI1IiuISmgjqaOtlHpagWSqoBOXVdYdwPo3RMqDuo7rhM1NaLWUwAZ8JtcPukZR/UXiCiFmCWwhg4rwuzogCLOA7ex0wTdaHTbxgMXAgmKsBY0SrJ6RFy6psDxyDiXZCkCALpc1KHZ+wp5Q0AKHZN9ldPUiGv8D25oxQ++q8nB7rJdfQAAAABJRU5ErkJggg==`,watermelon_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAWNJREFUSIntkj9Lw0AYxp+T1jYxViPFYtFJFMSl3CBE3Lp0cHR0yGhAt34FwcGthawufgOHog5SLBWEIl0LBf+QgjS1rdUMVc7pwiVpqTg45Qc33MvzPs+9xwuEhISETISMKuqFJLI0hX2qMq4j0m1AI3J21J4cIDaVhzYzNIp8RsJ9s0+2NusejTwbQ6ljMQDYXVwh/bfPkSFT4iVLUygPbRaLR93aqlnB3YsDvZCEXkgiocooD21W6ljM0CgMjeLi9ZklVDkwVWAC5uyw0wcHZrXm1gyNwqzWkFtIEwDgxgCQz0gAAN6jOMvkqfWNbtEaH8Ab/PBQHggAneYSlLU5VzNo9BBRoqR98jg2AFeNdxxc15lY5y8WOT5veczFkG7Rcn0DW+T/x7g8jctey/0W8fUAAhMA8ARE/AH+TVjfjgN7Xo10M0MiHwN8bSiMmwqMXH0/7C9HzqmYP0z/xj/kH/kBY5CYjlZ/xP0AAAAASUVORK5CYII=`,watermelon_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAN9JREFUSIntVNsRgzAMU3odTKN4lIySUTwKm7gfJTkIsSHQz+qHOzvIL9nAH18YSajqwZFmWESkfUk2cgCVPG3sAIDXTIBSiomIqeow25FtBLfcNVtTVavVVBuArc0nrwRBNiMy8x6/PUcQIAFAKeVgG2E4A5JYlsX75zFauSICEbk8vFvBgnlEYmiIZOoOrvpyztGb0wBY9R4u4+32nfTf0771m/wEfXvaDm2NU6eiw9Qd22XiqeNq20JynEhTVS3nHAXZwW2Rpw6SIGndqag4tG32VKTqf4LT5fnjp/gAHB6L7zj2AgcAAAAASUVORK5CYII=`,wheat_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABIElEQVRIib1VuxGEIBBd6MAxsZwLDC3DMggtgzIMDSzHxLEDuQSY3XVB/Nxtgp/Hvo8gAImyRrvUuyul32hSRMAUOzZmHeXeRYJ+2JUHumWqAQDAj84a7fphV1fVEwJPAtbQ1KzR0A97TnGZW6TeWaPJGFyc4SXcgWSZajIpXAvwg5BAikEaq+k+FYzzRrqM8wbdp4oNcQQBj0ceUfxw1mgXANKkcd4Af2gJL+HwKorqE81J9qVucURwMgnCcg0rLRNRdHE3ImeNhkxEsffdiIrcEoKSSV7IpYh4JTcax53smYgX/6ZcUQ6TcysRqKZdyQN/z+2qpl3FiDhechBJEs1FJym3Tw6cIrdPT7RTt/87MlkpvBt/QfBK8zcreYp9ARnARYgSAH7PAAAAAElFTkSuQmCC`,wheat_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAf0lEQVRIiWNgGAWjABfYsIb1PzHqmMg1XEVZlihLiLLgynklolxLFrhyXun/hjWs/9EtoWkQUQUguxib65F9gM83WH1w5bzS/zt3H+O1JCDkNyPMcHwRTlQQ6RjeYyRGHUkA3cXIfHTXkhxE1ASjFhAE2FIHpcUC9VPcKBjcAAAkzD98KD5/RAAAAABJRU5ErkJggg==`,wheat_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAWo4D+6ABM1Db8xA7slRLmEWEuIUjQjm+E/BZZQzSW0dcCNGQPnS9paOuDxR3WbkTMavoxCNYuxGj7g4UpzyweDD4choJqXsVU4/2dk47WEKpbjNHwgS9GBAQB1RDSsD2ft+gAAAABJRU5ErkJggg==`,tomato_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPlJREFUSInlVbENgzAQPCJLVJ6ABtGlSpMJWIANskeKVBTZIxt4ASagSUUXpWECqkhIThHkfJwHbBAoUk5y43/u/t7mDfwdolRqn/zNkuTeAlMQuCT1VV4XjdP3Q9AduVlRKs0eifWirwINAFEqoe7NRyCLJQCY/SyWqAuT88XHnYEuE56cElOUyWuBcWML6C6RJaKgTnaHoxGyRaiAIR+DLX69nHtFJl/TIRGKVf8D5xaNYX97cy/uYPVRMbtNtD0A40CFYp6CBW5U6NNWIHu03mR29QB/BkFetV5OVChYcnaDQAPAkBsVCuSVibFcLvN87BWb/Sb8Np74sVisxYmO1AAAAABJRU5ErkJggg==`,tomato_growing1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGZJREFUSIljYBgFo2AUjHAQWqHxP7RC4z/VDLEpEv1vUyT6nxTDGYm1hIGBgeH5r7cMDAwMDJJswgwMDAwMqztuENTPRIwF2AwixnCSAXIQEQuI8gElYOhbgC2iKEvXRKbMUTCMAAAvbR7j6+Sr/gAAAABJRU5ErkJggg==`,tomato_growing2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJFJREFUSIljYBgF5ILQCo3/oRUa/+lqiU2R6H+bIlEMSylyDLJmdAuIMZiRWEsYGBgYnv96y8DAwMAgySYMl1vdcQOvGURZALME2QJCBsMAE7EWEGsg2RaQaxlZFsAAMZFM0AJchsDEqBLJuFIRMUFFVBBhM4jcSMcLcOVkfICiSB4ZFmCLKEqLaOpH/igY3AAAKrlIKa6/Bn8AAAAASUVORK5CYII=`,tomato_growing3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DIPLAs8Ctf8gH2+fcItoh6EojC0zARsAA4u7zqDI47MAl164ASAFyAbCNCCL4bIAXS/IgTAxsAXYFMDEQTTMEmwW4NILCwWCYYnsE3QLCBkOsoSgBcg+efPrE9hhImx8YBo9jrAleaIsgFmCbAExhhPtA5jLYEEE8gFFFmBLQSBL8KUiXEGGEUTIEYduEbZIRjYYW6QTjANcqQiXL9EjmqAFwzMVkV3YEaobKC5Nh40FKHUCIV9hkUdJmUQlUzIsgWsZ+hYAAF7KnRnkpkjpAAAAAElFTkSuQmCC`,tomato_growing4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABC0lEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+HYNGPzATafgsyE6ScYychxgm4BNoehp0qCFsB8CKLf/PoE1i/Cxgem0eMIW5InaAFyUCFbgC2VkWUBsiZYEIF8gM0C5BQH04fVB7jyAq5kii/vYFiAHHEwjYr6WgygjINsASzfIKd7bJGOYgG6F9ENQbYAl6vRzSAYyYRSEaHCkigLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLh74FACQg3hnrDTBLAAAAAElFTkSuQmCC`,tomato_growing5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABGElEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+EPrwf+l9dcz4gsh80HMHmYepgDYZYTjGTkOEG3AJvD0FMlQQtgPgTRb359AusXYeMD0+hxhC3JE7QAOZyRLcCWysiyAFkTLIhAPsBmAXKKg+nD6gNceQFXMsWXdzAsQI44mEZFfS0GUMZBtgCUamrmP4bHBa7UiGIBuhfRDUG2AJer0c0gGMmEUhGhwpIoC2CWoKcibJFKVj6AaSK2sEO2hGgfgDSNWgALOnClQgFACXaS4oAcS4e+BQAsoN4Zr8Q2BQAAAABJRU5ErkJgggAA`,tomato_growing6_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABIElEQVRIS2NkoDFgpLH5DMPQgtgyk/+gYFvcdQbDd54FamC57RNu4fV53dK4/03Ri8Bq4ApBgvcvXoMbDLIIZAmyYnwWwByG7ji4BTADkSMdXQzdApjl6OqQ+WALsBn+IsDjv8SGHYzIcth8AJOHqYc5EGY5wVSEHCfoFmBzGHqyJ2gBzIcg+s2vT2D9Imx8YBo9jrDlKYIWIIczsgXYUhlZFiBrggURyAfYLEBOcTB9WH2AKy/gSqb48g6GBcgRB9OoqK/FAMo4yBY8vB74v2b+Y3hc4EqNKBagexGU9ErV3sANQbYAl6vRzSAYyYRSEaHSmCgLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLaW4BAFsM3RnfTMpLAAAAAElFTkSuQmCC`,tomato_seed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAWUgorEwP+UyNPfkorEwP/4NFDFxQNiOCmOGBQOoVpwMFHDEKoCXGFMlI/JDRaaGk4RoKmPKLGELuUTVQDZlpCT3anmI1wGDZ1wH3kAAGHuPqjrva2eAAAAAElFTkSuQmCC`,fertilizer_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArElEQVRIiWNgGOqAEYf4f2qZh82C/0EzfMgyfV3GFgwzWQgoJhrgchROCxgYGBim5JoSZXjO5NM45fBagAyyd6AaMtWDOMuJtoAUQ5EBEymKs3ecxvAJITC4fEAOINoCclzPwEAgiPAlP4otIDc3E20BAwPxuRmfYwimov9nHfDKMxofwCtPdDI9f/YrCt/QmJsofURbQKyBJFtAKAgosoAaKYnmOZnmVebQBwBEGSTr3HTDzQAAAABJRU5ErkJggg==`,rainbow_fertilizer_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA9UlEQVRIidWVOwrCQBCGv4gIor0n0CaVSHqxyhG8gJV6ABsbG7uAj8LK1iNYib0Ee8+hWK5FDMlCspn4wvywZHYnmW9m2CFQdFkp5+pT8ZIASnl2YA0aAExqTQDmLILzaQWA6uwCwJYWAP0gXFrSGkARVCFeO1RoayqbSKuxk5UMAKPlKdVnBMQ13EdB1q4MDFASv/kMvHYdDZYlcQUQVfFXFeQCvCIxIN6WPC1K0m/mQHl27klOkvEWWfXD0wqfG81/j9J5DQCg/K7Rb3WORr94Ds7+Tdu3OzXRd2KANGBuQFYL3gKoaw/IvkUmfX2Sv/7LLL4egFJcIh1wkL8AAAAASUVORK5CYII=`,mulch_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAWBJREFUSInNlaFvwkAUh78tk7UkU03aNHU0QUyMhIoqUgECi5ucmJiYwC2ZRPAH4LCITRBURZd0ArGk+IoqEmw9U9dQ6O5asib7qff6cr/v3t01DxrWlaR2+Auv3wAH7f6WScfD1DUWyxXdOxegkJu6RpJmvH0HZF+7Ur9r2Zb6Xjs363vtszxJM0xdk7Z1I60C45EPwDrYnuWmrmFbhnS9tIPedIZtGflOxfGI3LYMetPZ5QAB6XttbMvg4f2jcDwqc1SXXEcXXfKxHLeF47ZqQSsDHLdFHO6Jw31tiBIgzIVOISqg9JmempdByurHavySlT8aQBzt8tjp1gMrAXG0K5gKmPh2Wq8FKFt8bEyFjv7HjzbpeMyHg9JYJSVgPhwQbUKSNDuLq6hSB68vj7nxeOTnsWoWKAGfz08slivWwZbxyC8dOKpOpK9IGAMkaUaSbgsDJ9qEgCsFND70G9cPCX+r1Lc361oAAAAASUVORK5CYII=`,rainbow_mulch_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQFJREFUSIljYBjqgBGP3H9qmMWEy3AeSwmGD1NdGf5+SWOY86eaofT3Dwaz6m8MHAwXGGbJfWUo/f2DYc6faoa/X9IYeCwlcDoIlwVUAwNrgcySywQN4HfdhFceVyT/h4Yr0eDL8RdYzSM6iPTsRBn07ERJspRoC/TsRBkuHXrNcOnQa5ItIWgBzHAYQLeEkIUspBiOzRJs8siA5pGM1wcwcOnYCzhbz4o0iwlacOnYCxRDYZbBxNDlSbIAm2ZkgxmI8NHgyGgTDiczZB56wKDldI/hz/EdDH1P7zJkHnpAlMUELfi42w+vxRRZ8CRGl6AB+BxA0AJqAJpbQPM6meYAAHXOYpMBqH4dAAAAAElFTkSuQmCC`,wood_chips_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAdtJREFUSIntlSFPw0AYhh8IgYTM7BRqycYys0wgMJAgqhrsJib4A/sBm5yH6WUJGoEAS2qoIAGDmFgwC4xkqqo1CwkzRXR3XK9lKwgSEj61fum9z3fPtSv8158sIUQohAiz3Lv+k/B20+ZwdzsTaOM7wQCDToNKubjo3nGwf0Tv0gkBfN9fM9clGsumLhVyTKYzAPXbtmqMn1+ZTGf0Lh1M0EpFQohw0GkAUCkXsa0aABfXN5QKORx3BIBt1Wg3bQadBrq2LwHS7+15m8l0RqmQo3vax3FHlAo5ACbTGQ+Pd1TKRdVvnV2tViSECA93tzmpH6vJu6d9DvaPsK2aCpPgi+sbeRZY1S3cp3elKQGQSqTrh8foIM2pAU7qx1TKRcbPr7TOrrCqWwAxwIYZ3m7ascODKFzuItrVZ89xR2pyADbzgJdUJIQI5fZYPI76tFKPVCV3d//yFoVv5qOgeZCuSAJkmSDdOaAOU4XPg9jaVEX6FBImg/T3IKFEC1+pyASZO4pNrd+zuHaH3pIXTV80D6LrRU/CY0r08HmQCI8p8n1/zR0SWns7cYgOxktV4g49lYFRsTOQEIBUUAYlSwH6FKkgXaXxOGYGLAd5K5WYlenvGu17kDX41+oDGp4mCPU5SPMAAAAASUVORK5CYII=`,scarecrow_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4UlEQVRIieWUvQ3CMBCF3yHEIEhsEadKQUHLEkgpvECWyBi0FBRUeIV0bEJjChzkOP45WyBF4kmWT9a9+86OY2Bh0mawRTnFn9d3sNnzvVzAp/goLmTFBBQr1EHWOcfqhXZA1oC+HDHOduzL5QK+JjbA6ngSp8S+RW5ROpxZ/qz/oMTLPSJd9wqDBAYJ1L3yAYsBepDzRbOWhKQAnC6jOeuAgez5tFW47QQaKACwYgE3F8638e3Am9g8lDeOeUIAuxsAoHsrZklmjQKeCZmromuapa6C7qq8h3A5b9H/An6uF4WMRHW3ug60AAAAAElFTkSuQmCC`,sprinkler_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlklEQVRIie1VQQqAMAzLxO/5AP+y4/7iA3zgPDikbG1XrYKIAWFsWRLSgcCPNyOXz8UL0qWUEgAgxujiDb14RYBLeIhrkJI1AlVC7cxsIAnBKm4xaEwoeuKAYQZenKqIg6eipv913tfTYp+DVBE7XAq6pzzl/gyUdIEzbkjKWa44mVZE9zWt8aK5mff4M/0Nbof1J/QhbIFgQxZVKNMbAAAAAElFTkSuQmCC`,lightning_rod_basic_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIdJREFUSIntlUEOwCAIBNd+Ex+CL6i/ppfSaKOi1UMP7pHAzoYYAX4i+Tp49Jh7ohpELHgNYCUWABKYEZh7+vPhwCyvdOKJJDEu9RTlGhAAwBnjUyzUavMmAJpMTVW3uWk8omw1o/vueUVuJnEPYEobsAEbsAELAXo20TifRY38kqnp0nswpQtltzTIu+xVhgAAAABJRU5ErkJggg==`,lightning_rod_superior_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIZJREFUSIntlTEOwCAMA03/x+MYeIkfmC6lolUgoTB0wGOU+KwIEeAnkq+Dh8c8p9SCiAVvAazEAkBIgqSn/zlMUl7pJKcklbHWoyp0IACAGONdVGqteROAkqyYFl3mpvGIHqsZ3bfnFYWZxB7AlDZgAzZgAxYCytlE53yqGvkla9Ol92BKJ/RIO3xwMn1QAAAAAElFTkSuQmCC`,lightning_rod_ultimate_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAItJREFUSIntlbENwCAMBE3GQkLZly1oMgW7fApEAglgEyhS8KXl/7MshIl+Inw1bpJwb00NAg5eA3ATg4gApwlOS/pzM5zGYzp4a5AEl3qKUg1IaNiPu/iu1fwsgOJkMfQyhHA2uEfZanr3LXlFamRiCWBIC7AAC7AAEwHxbFLjfBbV80umoVPvwZBOeOk68oFQoKYAAAAASUVORK5CYII=`,cow_feed_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABaUlEQVRIie1VO46DMBAdom18idRQEMk3oKfbK1ClQZyFxhXHoPcNkOKCPpdw6S3Qc8aOnZBNmpV2GpBt3m8YIPqvT9U6Sfeb5w57gM/fpSMiUkPpXiV6SqCNpb4VRETU1CIgfptgnaRrakHjbImI/FUNm6M9JFmCdZJOGxuswQlKG/uUJEmwTtKNs/WR9O3NhTbbOt+Ho90EyH2cLcEF1F+uNzcg5b2Jq8g5SJFyIO6kbwVV3ZLEunOA7Hn+2livHHsgOx3zou4IkGVTCw+ArHlETS28AP6WpUi+uHK+Mc6WTsctayjOzQRcgIhXwcEBmmsaokKDc2d5PzxB3EQA8BjiOYjJ4RI4VbcUBw6ujfU2+1YEvQA4sscV5y9XCmbDO1BD6WA7pQjKeTzxmUf3QQ/imF5Z4875Od8M/hal1OaaytdTLoLpU0PpUtOaUl91S/HoQ5ebbO8kfnidpMMPJ/dxU0OZ3fu79QOnNyLrGvOANgAAAABJRU5ErkJggg==`,hugging_machine_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAgUlEQVRYhe2W0QrAIAhFbexT/Sz/tb2skKYPw+kGuwd6CemeJEgiAP5Oc/Z7VZ4l0Jk5JV1ELpmrwAw/ix9jOXfmblaxLlLdaJE970KmQCUQgAAEIAABCLz+HWuBzswkIpQ5kIyMkb17hVWYb8AYLqLL7eqnHqE1CXtT810yzwYxDkKWK8nSGBQGAAAAAElFTkSuQmCC`,milk_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlElEQVRIie2UwRGAMAgEL45F2IIV0IB2bQNUoCXYBf70YYBkIuND+cLckoMABEcqqJEWDQ8gzGwWEJGp0zmA5gi3qC/pQiTPSMnv71WLBNC7PwWuV2S1NIB4wgrophdukTrkeQsGAMAylmwxMK26ne6aCg9mPtFu5sNn8AM+AHDX1FvDJoD1gUoj/Ni557qGUVn/TByjTiCJ3SiEogAAAABJRU5ErkJggg==`,milk_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIicWUwREDIQhFv5ktwhZSAQ0kHVimJaQBKkhKsAty2s0hKrCGyT8q8x8CAgQrGWJkxUMDCDNPA4ho6nNRAMsKL9FmyUKkz0hJz++vJRJgnP1h8HlF12sEEM14APryCy/RsMn3VzAAAB5XyxQDt+e4nOqYCufpfaI2vQ/vgQtQqaEqGZ8GVGoonFE4uyAmwG6+ywMxAUqn0b2z04AVqWOqjeESYPaBrApfduq69jCc8b/RG+oJMonZquS9AAAAAElFTkSuQmCC`,milk_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwUlEQVRIicWUwRECMQhFfxwryCktWAENaNc2QAVaQk5pAS9GHU0CbDYjp50J8x98WIDFEQw5MqOhAYSZhwlENNQ5KIDpWG7R0VKFSJsRgl7fXy0SoF/9S+DdRVOrBxBNuAP60VtuUXfIl/tiAABcT5YtBs63vp3qmgqn4XugPHx3zaBQRlEENwMKZUROiJxcEBOgitcOPBDTqaiC8TmPz28tXB18A3cDtKq1dqBapK3hFGD0A1lj+bFTz7WH4czfJx6xwUOYVCI2qwAAAABJRU5ErkJggg==`,rainbow_milk_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3UlEQVRIie2UQQrCMBBFX0WE4gH0AtKFB8i+p/AC0ivUhW7cuBM8hVfJEfQEHqBQXI2LgCg2k5ZYCuKHbDKT/yeTn4GekbTIkRiOkIBYa9UEY4zKMwoIRKP3FrW6gVQ5pRSUUoDc3dqGdDsIxEATEECkyv0Z7haC0saxj1yOy3B5QMoFgJpMaHiPwVwk56B53rFyVB98vha9HgpCK0YVABA7V+OJuanxQW36F/gRgaBNQzaMEuj6m5vgHRXPYbeeAbCZLgA4cHL7uwkA6f4KQE3WyKfNgq7lt5sr38YDiBMyusgc/RoAAAAASUVORK5CYII=`,rainbow_milk_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABAElEQVRIicWUsY0CMRBFHwidhCiAbeBEQAHOqWEDGjhtC1zAJZeQIVEFwTbiEqCCLQAJXTQEq0WH8M7YGMSXnNiz/43HswMv1iAiRnI8LIB479UA55zqMzQA2Xp5iaJuIKcFK6lYSQXy1661xU0A5EgDCCByWvRHtLcQlDKO+sxlO7fTA8YcADgzEwLv8bYukr3ZPLdatlZ3fn0l+v+RKS0ZFQAgvlDPB65Rz9/apneqXUNtZPwwoHYNpS8ofZEEiQJ05p1SIFGAMvDQob2HATky29RqwyxA6t8cUu+ouA67rykA35NPADbs2v2fDwDGv0cAzsyCftosSE0/bq48WxfOzkS6fPRuuQAAAABJRU5ErkJggg==`,rainbow_milk_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABB0lEQVRIicWUOwrCQBCGP0UEsUtjLiAWHmB7T+EFxCtooY2NneApvMoeQU+QKpUgVmMRFR/JzK5R/CEQdjf/N4/NwI/VCDgjdTwsgHjv1QPOOdWnaQBq6+clCspAjiNmMmUmU5Bz8SwsbgSgjjSAACLHUfWJIgtBKWOrylw2Qzs8oMMegBMDoaQff7tFsjMvz7PGhdWbX1WJHj8ypQWjAgDEp+p+w2XqflQPcpeRG4YfA3KXkfiUxKdRkCDAzfyWQQzE7AFwN0yu/Xh8txSVwSvwa4CyaEMzMEtkXcNagNi/uUyVo+I+7CY9AObdPgBrtsX6sg1AZ3UA4MSg1E+bBbHhh82Vb+sCloZVyeeaHwgAAAAASUVORK5CYII=`,chocolate_milk_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAo0lEQVRIiWNgoDFgJELNf0rMIGTB/5MnT+JVYG5ujtccJgIWUAxoHkQsxLhiS7wGVnGfhTcI6h3QIPrPwIDb9TCA5AusZuGy4D8hg3FYhGEezYMIZyRP/XGdRKOwBwbeVLR9JTGpmIHBMxx3SiaYTP+flMArz2j+Aq88zeNg1IIRYAHBZEooGVJkAb4MRLEF2RyaJBm0HYc4weKaBEBcuUJtAAAZkx6s4XKlkgAAAABJRU5ErkJggg==`,weed_yellow_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJVJREFUSIljYBgFAw0YiVX44aHBfxhbQP4C0fqYSHHNyTM/SFFOugXmJhwkW4ABPjw0+A/D6HLSSboYYoQAVh9gCwpshuNzDF4LsAXF03mX4RErnaT7H2YhOfECB+iuRjaYgYE4H5BkCTlxQJIl6D6guiU0MxzZElL1EMxouAylqm+Q44BUw4kutJANRc4To2AU0B4AAKGOTyVh8wmJAAAAAElFTkSuQmCC`,weed_orange_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKRJREFUSIljYBgFAw0YiVX4YZ3BfxhbIOgC0fqYSHHNyf8/SFFOugXmjBwkW0ASkE7S/U9YFSpgocRwYuIFpwXomp/Ou8wIswTZspP/f+ANOrxxgC1SpZN0/z+dd5nx6bzLjAwMhOMFbxDBNMMMZWBgYIDRDAykJVe8ADloyIlooi2hmeHIlpCqh2BGw2UoVX2DnjxJMZzoVIBsKHJKGgWjgPYAAKhMQnagnSlUAAAAAElFTkSuQmCC`,weed_pink_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJNJREFUSIljYBgFAw0YiVV4w+DDfxhb44IA0fqYSHHNw1oLUpQzMDDQwQdYDYJhdDnpJF0MMUIAaxBhCwpshuNzDF4L5JtPYIg9nXcZa7CQEy9wgO5qZL50ku5/YnxAkiUwNjlxQZQl0km6/6luOLIlNDMc2RJS9RDMybgMpapv0COXFMOJzvLIhuLKE6NgFNAGAACdX07JsB31AgAAAABJRU5ErkJggg==`,inventory_box_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAUEACMeuf/UMAuXBf8v9/GTZLpu0Ues5mGzgGTD8VmCbgHZhuOyBNkCig3HZgnMAlIjlFjAyAJj/TsUQlWTmezWQGiqmorNolELRi0YtWAYWEDzwo5G5tIRAAC2nxYih/81pwAAAABJRU5ErkJggg==`,scarecrow_animated_default=``+new URL(`scarecrow-animated-Bwzq1lj5.gif`,import.meta.url).href,tumbleweed_default=``+new URL(`tumbleweed-bTBlbTRd.gif`,import.meta.url).href,axe_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMhJREFUSIljZCATKCsp/Iex7957wIhLHU4JQgY3NDYzXLt6lYGBgYFh1aoVOC1hIdVwmMEwwwkBon2AbDg2gMsXTMRaQAiEhUWgxAvJFty994Cxob6WGKUolpDkg7v3HjCuWrWCYdWqFQy3r1/HJs8wL0sdxRKSIpkBNUn+P3/5IoOhrj6DqqYmQ3tHB8O8LHWGV6/fkmokfgAN9//zstT/d4SK/GdgYPiPLS4oARiGU9MCFMOpZeio4aOGjxo+ajgtDYdbQk3DAf7opSv4aVYzAAAAAElFTkSuQmCC`,axe_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMBJREFUSIljZCATKCsp/Iex7957wIhLHQu5Bl+u02b49O4VAwMDA4P1FIb/uCwhyQJlJYX/MINhhhMCOL2Gz3BswHrKa6xBxUSsBYTA0RxRlHgh2YK79x4w6jZdJUYpiiUk+eDuvQeM1lNeM1hPec1w5M4nbPIM87LUMSwhCygrKfxXVlL4vyZL/f+LPtP/DAwM/+dlqf/vCBX5TxULkC1CNxxbXFACMAynpgW0CZZRw0cNHzV81HAaGg63hJqGAwAUOabJn4ZdhgAAAABJRU5ErkJggg==`,axe_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALlJREFUSIljZCATKCsp/Iex7957wIhLHU4JQgY3NDYzfPjwgYGBgYFhQn8vTktYSDUcZjDMcEKAaB8gG44N4PIFE7EWEAIFhcUo8UKyBXfvPWBsqK8lRimKJWRHsqGuPoO9iwuKXG5uLsO8LHWGpGk34WaTFMkMqEny//nLF+EWwQx/9fotqUbiB1Af/Z+Xpf6/I1TkPwMDw39scUEJwDCcmhagGE4tQ0cNHzV81PBRw2lpONwSahoOALJMnzT9kEEcAAAAAElFTkSuQmCC`,axe_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALlJREFUSIljZCATKCsp/Iex7957wIhLHU4JQgYvn7+Q4eWnTwwMDAwMBfm5OC1hIdVwmMEwwwkBon2AbDg2gMsXTMRaQAhMmDgZJV5ItuDuvQeMkYnxxChFsYQkH9y994CxID+XoSA/l+HWtWvY5BnmZaljWEIWUFZS+K+spPC/t7Pz/+bNm/8zMDD8n5el/r8jVOQ/VSxAtgjdcGxxQQnAMJyaFtAmWEYNHzV81PBRw2loONwSahoOADMdpw7laSIwAAAAAElFTkSuQmCC`,axe_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMJJREFUSIljZCATKCsp/Iex7957wIhLHQu5Bt9YF8LA8vEYAwMDA4NKIsN/XJaQZIGyksJ/uMFQwwkBnF7DazgWoJL4DGtQMRFrASFwZ74USryQbMHdew8YNYLWEKMUxRKSfHD33gNGlcRnDCqJzxhuXMIMqrv3HjDMy1LHsIQsoKyk8F9ZSeH/9ckM//8ftPrPwMDwf16W+v+OUJH/VLEA2SJ0w7HFBSUAw3BqWkCbYBk1fNTwUcNHDaeh4XBLqGk4AGtcorcNDPQ+AAAAAElFTkSuQmCC`,hoe_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAuklEQVRIic2UwQ3DIAxFPx2ALNSJOPRMJmjOnal7pReIHGMIGFfKl5CsyP/9YBDAjbWnxeuTHhNwl+s1RoQQ8vfpAArHGiMAYPFebB4NKP6cStqFdkSiFu+LkJkA9942MYRqNMChcluo0uj2bNCoeRZpZw5Q3qLv6wgB2Kgo/FQMwvH8FP4jkBpGAlrwqnoDVPDeRjW8p3kKfmWYhrdMJvCa0QwumU3hHGAOp5C/wAH2FlnDuS6f4VvqB7TESLgVFsd2AAAAAElFTkSuQmCC`,hoe_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVRIic2Uuw3DMAxETxnAdQYwkAncaaIUKTKIi8yRMdJlEW/hNJJBUx9LJAP4AAGEwXtnUYKAE2sNi9c7XRRwF+tlnvC+3+J3dQCFY5knAIAfh2xzb0Dy51S5XUhHlJUfhyREE+Cuz282hKo3wKFwW6jC6NZokKh6FmFnDhDeos9jCwHYqCh8V3TC4V+Jfwukhp6AGryo1gARvLVRDG9pVsGPDGp4zWQCLxnN4DmzKZwDzOEU8hc4wN4iazjX4TN8Sv0AN2RJwOjZLUAAAAAASUVORK5CYII=`,hoe_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAtUlEQVRIic2Uyw3EIAxEhy3DtaQl9k4bcUvpK3uByDGfgGGljIRkRZ43wSCAF+uMS9c3fSbgLtXMjBBC+j4dIOFgZgAAERWbRwOyP5cq7cI6oqKIKAuZCXDe+2KI1GiAQ+W2SMXRnclgUfMs4s4cYLxFx/cKAdSoJPxWDMKx7Zn/CpSGkYAWvKreABO8t9EM72megj8ZpuEt0xJ4zbgMXjIvhWvAcriE/AUOqLdoNVzr8Rl+pX42rEn4TvbkRQAAAABJRU5ErkJggg==`,hoe_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIic2U/QnEIAzFnzdIJukKrnLDFJwkK3Sv3j9aUr+qMQd9IISS93s1isCLdcaV1zd9FuAu1cyMEEL6vhwg4WBmAAARVZtnA4o/l6rtQjuiqoioCFkJcN77aojUbIBD47ZIxdGdyaBR9yzizhygvEXH9woBslFJ+K2YhGPbC/8VKA0zAT14U6MBKvhooxo+0rwEfzIsw3smE3jLaAavmU3hOcAcLiF/gQPZW2QNz/X4DL9SP/ScS3hB0In3AAAAAElFTkSuQmCC`,hoe_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvUlEQVRIic2UUQrDIBBE35Ycpl89QCnkRj1Me6JCyRV6HPvRROKqia4WMiCIum+cTRAOLDcPPQ90aoDLMnevK5+nXw8kesEC97Bxipi1CbJwIJnC2qKkzpe4VbUtWieARAoIW1WbQMj8LcEtfqbOuxi0+S1aEgC4992bAMgMjOAAgxGuJTJO3jDYsMBvj/LaUgMTvPSgGV5yuAm+V9AM3yrqAs8VdoOnirvCNaA7fA35CxzUW9QbrrX7DB9SX0XaUBQX3euqAAAAAElFTkSuQmCC`,scythe_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS+2V2w3DIAxFnb06S9QF6DBlgSqz9C/qTES2SoQcbjCPfFQq3+QcfGU7E118pov59BdwwoEIJ9EbUbjPM72WhUVZVo8geO+lRz7rCiWtgvB+EN2eRCVJi0DgfFjAJ0qcc4eoagUaHr+XuHJR1QgQXDoJVWEVnMHjMhCJjskisMBhFSWBFQ6rOBPUwvcq0piQoAW+V5FOdU7QAz9sfy0YCtdTNxyeFXzHv9Rd5h9hCuK9DteumaguDnspesDvCzbc3VkZpaP6uQAAAABJRU5ErkJgggAA`,scythe_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMBhriPw/e+MNzpCgKIhAhrd6ijNUb3/JgMsSsi0AGb41TRGcRi48/obTEnIt+H8kj4Ehf5cIAyFLyLEAbDgI2ExiAMUB3BLvWfcxgopUC1AMZ2CAJHNYcGELKlIswGo4sgUgNroviLUAp+GwkgDmC3IsIGg4Pl8Q8gFRhuPzBT4LSDIc2RfIwYTLApINR/YFcq7GZgHZhmMr+tEtoKrhIAuRLaC64VgtAGV/NIspqvRQfAA1iVDSJclCqhpGTCST5DpiFNPcBwAgan0Z4Vp7jQAAAABJRU5ErkJgggAA`,scythe_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2klEQVRIS2NkoDFgpLH5DKMWMORlRP2fNGMZzpCgKIhAhqsqyzHcvvuIAZclZFsAMtzY1AqcRj69e4LTEnIt+H8kj4Fh1a8oBkKWkGMB2HAQsJnEAIoDuCVnTx/DCCpSLUAxnIEBksxhwYUtqEixAKvhyBaA2Oi+INYCnIbDSgKYL8ixgKDh+HxByAdEGY7PF/gsIMlwZF8gBxMuC0g2HNkXyLkamwVkG46t6Ee3gKqGgyxEtoDqhmO1AJT90SymqNJD8QHUJEJJlyQLqWoYMZFMkuuIUUxzHwAAb2p9GTK1pfkAAAAASUVORK5CYIIA`,scythe_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAz0lEQVRIS+2VuxHDIBBEV305oAyqcKQyiDwugjIIHFKJm5DnZOM5YX6HIDORAs172uVACyavZTIffwG01pu1NtvEqYoIrpSCcw45SbeA4Ou67jPivc9KegXb4wrcnxo1SY9gh9O63EB78JUYY36qkgoOcOA95qGuVFUSQRLOBfQcp2gVZOHhJggpegRVeClFLUETvJSiJBDBeQpeU04ghvMU/FSnBN3w1NUfC4bCScgFw+FJAR3/SHzqp3dI8CHVRlckHApr2WTR17W8PD3BC4S6fRnQ192VAAAAAElFTkSuQmCC`,scythe_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMDQW2/2v7z2EMyQoCiKQ4YZa/Aznr31kwGUJ2RaADC9MVAGnkQMnX+O0hFwL/h/JY2DYy2rHQMgSciwAGw4CNpMYQHEAt6R//h2MoCLVAhTDGRggyRwWXNiCihQLsBqObAGIje4LYi3AaTisJID5ghwLCBqOzxeEfECU4fh8gc8CkgxH9gVyMOGygGTDkX2BnKuxWUC24diKfnQLqGo4yEJkC6huOFYLQNkfzWKKKj0UH0BNIpR0SbKQqoYRE8kkuY4YxTT3AQBP8HwZfM9pkQAAAABJRU5ErkJgggAA`,shovel_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALJJREFUSInV1cENgzAMBdDfqovQOToT5zBBOXeL7MEcMIp7akWM3Vi2OdRHK37fKAKAk+uS5JDmRgMIAKZSmuZznr/2LYJzeN023Ieh6V0zcak8ASrOt/cGmHHAf8k0lSLi+wsGAk/Q2zwSQMsI1FoPON/eE0DLeABVXGxY8Mermf28xaJlDdDwblkOunHL4RDeGwjjv4ZScG0wDZeGU3EOpON75BQcYJ+KbJwX/3H/R70B5PVOSsiwgM8AAAAASUVORK5CYII=`,shovel_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS7WVoQ7CMBCGbxa9BIXAVZLsIQjhPfBYPBrPexDCQ5Ag5xDYaWzJLbnmVjp69G7Vzfe1/+3vKph4VRb8xtWec+5tF7gqAYEvu+XgnNvzE0hSLEB4DH683rBazEAtGIPjNdSCHBwlqhvEAoyFTk6DUAkQQpIcHPeWDtk3robjZt5nzhc/fanA3/auZx6uHfAvKYaXCAJ8fWoxqiBIwf8VDOAUL5WNt5dHJp1BEi55ZiSCYrgkIhU8J1DDfwlM4GMCM3hKYAqPBeZwLpgE/iXA+isewGTveNHwxy0pnqTAYY85MLZ/AKAsiRkhT8wtAAAAAElFTkSuQmCC`,shovel_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7UlEQVRIS2NkoDFgpIb5eRlR/5HNmTRjGdxciiyAGWxsaoXizrOnjzHALCHbApDh6AZ/eveEgU9IhoFiC3AZDvIGxRYQMhxkCUU+QLcAFCwwl8MigiILQIbALCFkOEgtuZH8Py8jikFVWQ4c5sgA2fXkWvB/Z6EG2Myt340YkFMSuuHkWAA33L3/Biio4BZgM5xUC1AMhwUvLLMh517kICM2DrAaTkwxQ4wFZBtOTBBRZDghCyg2HJ8FVDEclwVUMxybBVQ1HN0CqhuObAFNDMewAJT9KSgAseY75IwGqriJyXjEZGC4GqobiG47AJ1ZiBlTJ5acAAAAAElFTkSuQmCC`,shovel_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS7WVwQ3DIAxFnW167IEBuHUF1qjEGEgdoVdW6A4M0A06BpUjGTmUFIIdzug9+M4nC5y8Fg2+cy5zToyxcEUCAnvvN+cMIQBJpgUIr8EpJTDGgFiwB8driAU9OEpEN6gFGAudnAYhEiCEJD047p0dcnbOgbV2zZwvfvpZQX7dLyvz+bkC/5Jq+IygwG+PN0ZVBC34UcEGTvFS2Xh7eWSjM2jCR56ZEcE0fCQiEbwnEMP/CVTgewI1eEugCq8F6nAuOAX+I8D6Cx7AZu940fDHPVK8kQKXPerA2v4F7oGIGVytZc4AAAAASUVORK5CYIIA`,shovel_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7ElEQVRIS7WVsQ3CMBBFLyxABRNQIDoquoiOORghygAoA6CMwBx0iAo2oGADhnB0kc66GAcfvotr6z37X75TwMSrsOA3dek453S+e65KQODquBqcs728gSTZAoSH4NvzA/vdAtSCMTheQy1IwVGiukEowFjo5DQIlQAhJEnBcW/ukF1Tl7DdzPvM+eKnzxW4a7XumY/ZEviXFMJzBB5+aF8YlRfE4P8KBnCKl8rG28sjk84gCpc8MxJBNlwSkQqeEqjhvwQm8DGBGTwmMIWHAnM4F0wC/xJg/RUPYLR3vGj445YUT1Jgv8ccGNo7Yi6HGb8waRoAAAAASUVORK5CYIIA`,picker_pole_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMNJREFUSInt07ENwjAQBdAfhNJdmwVc0KbKAl6EiiL70LigzRRZ4FfeJQMcDY4CmCDsuIjEl2I5zTvd2QZ2EH180RxycZIgid6YaJFjLg4A3lq0GdAnXEmqE1GSCgBO5K2LrBF5a9GOIwJ+mabKiehyXCkFlOQTHvahk/MwIBx8Ugcx/HWf0wF806ziXdcBQDUvCVEn8hVPjd76kwLQ3pjlLVp9cD/j4X8rOIZvmrL4ta53iu935v8DjeIlxzIXKYkXyx3NFIrQtrXu7gAAAABJRU5ErkJggg==`,picker_pole_bronze_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMVJREFUSInt07ENgzAQBdBPFNFdywJegCYs4EVSpWCYdGm8AFOwwK8YIz0DXJoYEeIQxcYFUr6EZZp3urMN7CD6/II5pOIkQRKtMcEix1QcAAZrUSdAn3AlqU5ESSoAOJG3LpJGNFiLuu/h8cs4Fk5E5+OKKaAkX3C/952cuw7+4KM6COHLfUoHGKpqFW+aBgCKaYmIOpGveGz0fj0pAG2Nmd+i1Qf3M+7/t4JD+KbJi9/Kcqf4fmf+P9AgnnMsU5GceLY8ANzvjrB3K5O7AAAAAElFTkSuQmCC`,picker_pole_iron_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMJJREFUSInt07ENgzAQBdBPFNFdywJegIoFvEiqFKyD0ngBpmCBX7ELA1yaGJHEIYqNC0v5EpZp3unONlBA9PEFc0rFSYIkemOCRc6pOADM1qJNgD7hSlKdiJJUAHAib10kjWi2Fu00wePXZamciG7HFVNAST7hfu87uYwj/MFHdRDCX/cpHWBuml286zoAqNYlIupEvuKx0WEYFID2xmxv0e6D+xn3/0fBIfzQ5MVvdV0oXu7M/wcaxHOOZS2SE8+WO1CxjyD9waCMAAAAAElFTkSuQmCC`,picker_pole_silver_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMNJREFUSInt07ENgzAQBdBPFNFdywJegIoFvEiqFOyTxgswADUL/IpdGODSxIgkDlFsXFjKl7BM8053toECoo8vmFMqThIk0RsTLHJOxQFgthZtAvQJV5LqRJSkAoATeesiaUSztWinCR6/LkvlRHQ7rpgCSvIJ93vfyWUY4A8+qoMQ/rpP6QBz0+ziXdcBQLUuEVEn8hWPjY7jqAC0N2Z7i3Yf3M+4/z8KDuGHJi9+q+tC8XJn/j/QIJ5zLGuRnHi23AFsB5Igc4ovIAAAAABJRU5ErkJggg==`,picker_pole_gold_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAMNJREFUSInt07ENwjAQBdAfhNJdmwW8QCoXtF6EiiL70HiBTJGC9lfZJQMcDY4CmCDsuIjEl2I5zTvd2QZ2EH180RxycZIgic6YaJFjLg4Ao3NoM6BPuJJUL6IkFQC8yFsXWSManUM7DAj4ZZoqL6LLcaUUUJJPeNiHTs59j3DwSR3E8Nd9TgcYm2YVt9YCQDUvCVEv8hVPjertpAC0M2Z5i1Yf3M94+N8KjuGbpix+reud4vud+f9Ao3jJscxFSuLFcgcutJEoVhTynQAAAABJRU5ErkJggg==`,watering_can_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA0klEQVRIie1UwRGEMAgkV8JVYAOWRjWUZgNWYAvxYzJkDwg697vbGWeMJLuyQIj+mKAEsZrc90igikhfMPNjkVdEfhHTta7G3inwr5C8WILOWROYQQGSASLSH0pmZFnUyQhqYcVnAqkiNxzLSu99G77NGiBsUy1yLGt/vyPiWoTQpFqMKLbLEzAtikQ8hHNgoYmgTVmBkBxFGpjZtSldAw+KXIt0IavyqSwaOcG0Y+zWHDjkH2d0zLMovDKivsfY7MJyU/f2YyxzI5qpfxtDZ/wWThNOcCnuawEeAAAAAElFTkSuQmCC`,applewood_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP9JREFUSIntkzEOgkAQRT+JV1ALiYnG2FsQ72BCZesNPIAdhR0H4CQk3oFQ0BMiicECOAQWZCfLLCAghQW/2iW778+fYYFJk36VNgbENPRC3rt+QtzZGND5cgEA2K5X4lMhTHol4FAJWNHz9UaeZnD9ROuUQIDboAIMlEnyNAPQ0iK52qNxaITJqjMnAz4oDuXALknIwDT04n67Vg5ZtkPD+wbk0MYWhVEMANjvNq3QtvZ4fkADBgBNVB9GMYHF2rIdahWvUJbnB7SW34CSQIaLNPKf0RWqGHBoXfQ+0IpBefBRXM4npUUc3BWqJABQScDhQ8BCdJG/A2BYxZP+Tx/oyoY1054VqwAAAABJRU5ErkJggg==`,coal_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAThJREFUSIntlK9zg0AQhb/WrEecw8cwCE4wmHj+zriaKDyGqSAiLh53vuJiiOjsFQYSYCJqeIqf39t9t3ew67/18ca//RrWVoMAPRwOOOcwxiAiXK/XWd4Wgz6KIowxWGtp2xYRoes6AOI4njVZa9CnaYr3PjxwzgWw9x7n3KzJ59rKFSIiIRqFiwjGmFEBaw36NE0xxuCcoyxLvPfhPkkSRIQ8y0ZdDbUUUchdAXp9LAq+LxfyLKNumvDudruNuK86CNVrLHEccywKRIS6acizjJ/7PcCttZs66IejeCwK6qYBCLF8nc/A30IDkw5eGkRRRFmWYSSTJKGqqvDBEGyt5XQ6TZiLHcB08XQddD88y3/JYGSiMPiNSMdWs5+rfo0BDI4H3Ww6shrds2NircGs2ZucXbs26AE1fqYGir1jrgAAAABJRU5ErkJggg==`,stone_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA8ElEQVRIidWVwRnDIAhGSb9ukyUYwxFcIqcs4Tgu4Tz2In6EIGjaS/+zvgeGKMC/Z1tcX1cZnuACTCndFsQYTdZIUEdAnpwzIKIp0gR1BgwAHc7TRJ371uC8slmw5JCEd3CpXMJGUlnAvu9wHEdnUwe3Y+HgmaoJLvPyNiEiIGIXrcBdAQ9JpMiCmwLtzGU3I/h5ngBt1Kc7kCKCl1LMtY8EPJ5EFXgj6Z27K1iN1QX9B1uMsYYQTBB93NnqueC2UZt7C0xdyDXyLjJhGkALvyrkbVrbDA/jSThcE3wlkfCR4JFEg1sCAP39tbL6vv8mH84SiYSmpt3xAAAAAElFTkSuQmCC`,salt_rock_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS+2VMQ6DMAxFzUm6s1XiCsz0OpyA65SZKyCxsfckqRzJlXE+sauKrVkq1OQ/5zmBhi4ezcX59Ae4hr9RlExaaG1oEhGltK6H/Kbr+Nld707g8Oc00dD3hY4IxAPkyudlOQD4mQdDPUgNcNAiEAvLniq6zgCFc121dfUzAFUdhaAd5KaK40g4z3mMIzxVECBHMhp+b1u6DUMIABt7dl25AA7f9j3/IojdAWyuvQPScA6VwRCkSQOKcFmsVUnVaFcIEgJwmK5alCCI1eQCkA4OPoPUALyuaLL2bCtGEA/wgdRca5CGRE6RrE2veXY/JlpV9B7oUPuB8YDwvea9rr1Q9/83lhuWGQG9q4IAAAAASUVORK5CYIIA`,bronze_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAYlJREFUSIntlDFPwkAYhh8bE2JhgM2pTCasEP0dMjKSsNCJRB0c3WAAYzccSBgZ+R+akjgRnCAOTopJIXFpHeAu17uCja68C+1x97xv7/vu4KCD/qujlPOivzJ+M4gAOt0e+VwWgGWwom6NABiGNW5vrvfy9hlEnW4vBhPPAN6iYixoPzwazF0GUafb4+ttJgdajh+bMLYbAFTXg1iA06unGNfal7zl+BRLZYqlsgEXYKG6NWIY1gyYbhC931/IRMOwJkEisfhV/xMSdVKlbpGEC6mJ9MXLYEU+l5Umak3UWhzrji8fJwD4+UsJrq4HeFOzqF8AzuariqXNWHU9oK3MiRmM7QbYMJ9OIJhJiEdFFlkvrnge2w2WwcrY9JjBfDoB4h2jF1TtGnXbxPnQu0hv06jf7xuFFQn15Hev5wAUMqEc089CUptKmP6uwr1FhUImpJAJaTk+n9+WcVaSvgC210PTdWPJ1MUiuXw/ewYwtmeXgTRquq4BSoJvwYm8VJddCqW9lQ8y9QNiZaVNTKTieAAAAABJRU5ErkJggg==`,bronze_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DKMWEAzh0SD6jxZGGCFCahChGFjnwsXgaakJtmP78esMTXu+gZgoZhKyAKeBuGLXsvksiiXYLIAbiuxCgskFSQGyJegW/CfXUGQHIAcXsgVgw0EAFq6kuBoWD5rS/AwKclIMMF+gWHC81hhs5oNHz8CKCAGQS0EGwgCyHrwW4LIEn4HojsFqAXr4k2IgMXEAUoMSyaQEFTQPINsDDn6syRTmE1wWIKUSDAPRgwpXRkPxCSkGEmsBOLgIlTOEUhmuICJGH9FqCJVFRBuES+HQtwAAGJ1YGe/MnNkAAAAASUVORK5CYIIA`,iron_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZZJREFUSIntlLFKA0EQhr+onHfYHCG6RXIKFj5AykCeSgufQCyUFNZWwSqQlwikkqusUgjxkmKjSBpJDISz2mF3cwlJJYJ/d8fONzP/zg7867dV2vF8vitz2wQ5QLfTBqDXTwFoNurOocFwwvXVpcM92Ab81H4kCgOB2+DZfAFApqeFgHUd5AAPrRvKFUWmp1ycnThwAzaJB8MJejxCVWtOF0Ud5N1Om8FwQrkSA3C0/02vn3J+eixwGwwI/OLsxIHtrYMnKpbWX9/eaTbqlCuK2XzB54cuhBfJTpA/tR8FHoUBnx9agk3VURhQrSVikR6PxDa/evHJrzwKA5kUVa3JP1u25z7cnibnDowtxu+v5eEKfDZfkOnpWrj/vWcHRmHAc/qyMt8+fJMGw4ncjZPABDYbdcajrLB6I7/6Xj8VsN/N2oeWqJhMT8U2uwgDNlLVmiT1k5gOStdXl1LF1/KwEK7HI2dqjCXmXKJiJwZWX7Iss9u7+0Jb7Or8NZGomOf0BYBWqwVQ2rTsttmcm7Trpv7XX9UPRxDlZCE0bRgAAAAASUVORK5CYII=`,iron_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwklEQVRIiWNgGAWjYNADRgr1/ydkHqkWoBiYmxHNYGxqxcDAwMBw9vQxhskzlmKYScgCnAbiAgnJ2SjmYrMAbigxBhKyBN2C/+QaigyQg4sJ3XBVZXmyDf707inD2dPHUBzIgqwAOcKI8cWnd08Zbt99iKLfWEgaRQ0LuiaYQmyWEGMgOkCxANlQY1MrsgyEmQMDeCOZ2KBCilRkwIjhAwYGBsbJM5b+z2VgwGswPgOJEmTA4hNiDSRFEcFyZhQMDQAAaMBZ6FnVQEEAAAAASUVORK5CYII=`,silver_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQhJREFUSIntlD1uhDAQhb9EuUOK5BBbeGsoOARHoF8XOUIKp+cCvgWFqTNFbkQajIgZbHaVkichIWZ4PzOW4cSJE0cwzc9DeCqR930PQNd1R/o3eD7aKCLwQJqco2kmTUVimiMc+QSpAIAxBhGhbVs+3RcUEhVHpImsv5VE9gSW5UbH6/cQAhdzBaCpq6zBbAJjzK7zSD6EMZviJUeeEoYQALiYa9F5hHYCJhHBObcp7I1lCCMAH/a24UwFpjnuQhJ/buoK5xzWWtXpEEZVQN2BRg5grcV7v9RiPULbhTqidYpUBMB7z+vb+5+epq7iociOKCuyxo98LzsBff45Abj/Br37IvwX/AKZJHqzxczScgAAAABJRU5ErkJggg==`,silver_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAs0lEQVRIie2Uyw3DIBBEJ1HOThFTgSN6oUY3E1ewRZgGnEuIWAPmk0si8SQuCN7sAgIYDH6ey5f795KvNUAJl2UBSQCAiMBaGzlLAVlhDmOM8qYCPtIaYSnkGLD3SkPC47oe5Y957hbfpwkiogoMA0ASm3MQkSahH5tzUfe31EaSUSVe+FxXta50nCoglJLsEnqP5/SSU13khO9LDUm+IhWSCzgTVk0i0UmtsGVR8Z8Z/AcvcvFbDaU3IKgAAAAASUVORK5CYII=`,gold_ore_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAXZJREFUSIntlC1vwkAYx38s+wALroIvQBAVbfAkJJVIbB0OAQLRTE1MbAIz2+BQaBIS0hAMLwJBENgKXFNXycS45ijXg5GphX/SNL3r83+5J/fAAw/8CxxPz114uka8n7k0m827hQp55MnWIYwMprsqALXygumuSqvVulZ7BlWCY7J1LhZLxQO18oL9zOW0f1OirIuUPIwMSsWDsiiMDEbLCpv1iuFwqOLRJmAwb5y9sygVD2zWK0zLZj9zQZNE1+RcEXlttKxoRWSBY7J1GMwbaUNVhIN5gyAIMC0bgLYz4fUryTX4fC2BSkSg7Uzoj+uYFqIXeoEwMqiVF7kiQRAAYFo2bWdykzG5+8f3j8/Umfv2cvGzfCwy+uM6AL1uJ8upbnJ/XMf3YnwvxrRsTMvG92I265XSuS6NLFA4OUgLhDPx7XsxYWSke2Jfh2yCQq/bSYuzQvBzB4SInDgvRe4skvuhcioumoDq/HUC8PvJedPw+3N8A0QSnZsj1HFJAAAAAElFTkSuQmCC`,gold_ingot_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA00lEQVRIie2UKxLDIBRFL52YYLqRLiAKURNkVVeQZbGCKmRjKqKyADZSE+SrIgMpBYaadiZnBsW8c3n8gJ2dn4d9WU8536FCuA6tBKyRsEZCKxELzHYQFGgl0Hc8WdCe7oE3FrBKS4S5kG0A1Up9xnnBZZgAgDVb+XNpq8W3B+HIbbBAP2CdGOelqAsndFzPHEBY1yBC3/FoSIlwSxDgS/uOVwmdx5E85NKt8g7Vh711AIBdhil7k1LCUkgrQdZIskaSViJ4wYi82E+kUrP/zM5/8ALJtmHuganBugAAAABJRU5ErkJggg==`,rainbow_cow_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACNUlEQVRoge2YPW7CMBTH/w+hIgTXQB1yCy6R3oA5GwzpwsIWqVtvUE7QjVtk4B4smV6HxE7i70BIK9U/yRLE9vuwn99zAkQikUgkEolEIr8FTaCDR9BplfGoA6rgUIRe33zyjKGhDvSE7XmnDTjhoxG98Au7bQEAh9VGnx8mg2ZeLY0u3L/aZoGN8U5yv0qfA1bDgwywCS0S0PoimwYt6nYklxMEAHOXnrstBACuWmO6j4sElJVgbsUTURuOtND6kHPtjOHM2nbAafyg1edKriIXSa+LHEfQ1dfF5MB4xk+A6sAkxnORyBXuhQ8AcNXr8x3k7hkYx3g19Ymz4JB30DqbOe8vXnXCAYalaKhx6+JEn/rDgHrwCNYsNMRwwGL8BGiHmItksPGhUFaOLjO0Ev9ZXIVsMvrh1/ktMpCliAG6A0RZyc8KIaAOIyFfXCP4fDaPTf3FbA6A+bYFrS8iEz2XnEEZAVkpDac0BQDvfxMzAKDV98N2ma7WPXLuFSXbqptoxhrrVB1CtPC9OASx5119n1dzv6eaqs4McW6GNmy08KGsvC/1cdVvHkwh4gqbLt4sxOdzLSwrx7vI5QxKSa601KHoFTR9QVnIiFCgvnzseWOZYeHY2rDEFZS+SvmmsOk4NSi5MBcJc5GItzHZOs/k2IFNzlviyktcQ8dbCdkBaoy39Y0BAeCvxuY32AuXyv+5SjzjIqbydseGmmaYvoKN8XXtKTpCd2CKT5BT6IhEIpGR+QG4Bej6ikQYYQAAAABJRU5ErkJggg==`,cow_variation_1_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB8ElEQVRoge1YS3bDMAiEvN7RN0BnUm7gU9JFioMIWNhR0uZVs2j1oTADSLYLMDExMTExMTHxv8Hm90fhAgBARB9JHgDg6w0xbHJwpA9UBiMcZ6Hj9uz2bPBoBRpnRBQaXq/Xrh/5+1prs1lKER/dBGUFNAFHIOOLiHqJ6AoYTlz8WWJShVJKs7cjArcf4J8BHkHcBhdCzPfuQMRtrscyVyIezukliDuEvBAWX6MrCdAK2B5orwjkAREB8ZZUObh2vQcRsLXSO8gTUUNQx9RjaZ896EPcu3OHwhLTV+mRJEZn4DDsXX4Guo2yGCbgTPAR2BUgWa21Pp3h3kPpbAIeBAhZTbiUAqUUV5AVNqKVjiD1KlFrbTLkjcVGz+1+VIFoXQ5z9BCLFlk/CS2kEroitvxWsH1NMMSA19WNhcvS4+qCLYiIiaiZezbWXtbsGG7XNfO6Mq9rdu4i3UIevGrs2TdZCrIe2eKyuN8sp65Re4B1y+hz4LVRRFALsvM97ArIvpP0KtGrjun1cM3l6KxthxgRpXyykXKaCvzje5sbws7e8VtIB/EyckaQVJSZ7+P+LRS2QVeA2ZC17Ed5FDOMkeDXIHMLNQGPBkjCE5XyPexl7reQ/rdK9gvpGZyJ4Qr4q2Q9ZCvwekXviTExMTExGN/dZHBpuZub8gAAAABJRU5ErkJggg==`,cow_variation_2_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB+klEQVRoge2YUZLDIAiGYad3zA3MmeQGOSX7sINFI0Ia2+6D30w7jbHwo0BsARaLxWKxWCwWi2+BH/DBE3yaNu4G0BqOIn6976MzB68GUBlLKZkTicg3xmP96MsLB8AAY8EtXgDaVs65urfve9SOG8Bl4RHHKaXqfrsTeuXbuXpaeTPgV4Rrcs6nNBBBWjQilmv9Wa5VECe9P+8Uv+87MHPZwdbmKMcD+Q8A/QBuiwd45rHO53fQBjBFfFuULSmlssJtyjBzdc/T81CfzZ4mgiKr6YkXRsKYObxzsgMMRkFHBWnenTYaq4i/TnThzACICIgIELGs6Mhoznl43+rnnk0PqYFy5tBOJE9HD6WeE2mhHhGBni1dxAiqC8kOAJwL7pW66Akrjo2eL93JeohZg5dbqRVQb+WICFJK1VOaj6P7fdw2T+ucAACuBwHwFC5CnetuAF/rQtaqD+Z2n1PTArAKLVIvfBxVQO31iGEKWUU8IiIYESuBuG0nwe2YlUaPdqCFj6Pk5IxzEsDzvCMCtQ/tVxjVQHcH5CxCRKfC0vQCGu2Abpf60BboQpd++jIzc0qJ4a9wykuNlbkXX5UP/mv0kfmXaI2DiG/G7tD10RlzMVMIoGw5GmN3mObDLWIh+hPvDq/46AbwX8X2iO7AJ/6C/ISPxWKxmMwve31ULTQV7Y8AAAAASUVORK5CYII=`,cow_variation_3_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABrklEQVRoge2Ya46EIAyAy8Q7eoMeihtwyu6PEQdqS4FBd5PtlzhxtPaBfagAjuM4juM4jvNbhAds0AKbqo5vA+CKe8l2reuDIRNGA6iUIaIqGGM0lbWu79QRNtPKG+oxOEKPLkQ0g7DuwLTjLcOj+hRd4fxRoBUrzo3P6jz0XPzVUqhyvnRi1IEsH2Os9iUZ65zESzimOr8SIgIiEm20znF4AEvS5knKFDJ7Og9OWx1rERARQtHBS/nWOYkcAIEyNO66Iy29IzZ750DFXXUxg1TETSzntdXrGUozDAfw15hKodVYzUAbYgDXAEKM8bZWmtOIDzRKSZQP+27q3ODo/THG3Im+crAkO8jbJHc8O2r9lxiugVaRSs7n/cu0VVZd4pAV59R2GLBeHCpWpxgPZiS4F3zS5pI+0sr1MhNk2Pdz68VMIUppOhCe++U+dzLsO1BK58bPgVKf0kEqu0SrkL55MZGK+eLcx+ZQcyFEJEQkeNfFuRXHTtnBzbShyKv0DLIA+mP2qs8ylY3W4OL8n0eJJ55AZ2yIRSzIrPi6douN3jvwxCfIJ2w4juMs5gdcWvZP4r+1igAAAABJRU5ErkJggg==`,cow_variation_4_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACFElEQVRoge1YW3aEMAiFnu5xdoBrijtwlfRjJEWEhHQcpx+559ipJsKFXPIQYGJiYmJiYmJiYuJTwBt88AU+QxuvBmANZyF+e+9jpw9+DTpmfTEzRFfGDhG57xIREJH0ayIbgJAOSS7LkjT1xE6w+Z70aaEnocoyympEYF3XJjHdbm0jYthXd6t/ArAYKKU0urWzaJ0LIU0aEeu9/l/uVRAnvpGEKvmI5LIs9WpBNG3tCbkIrTaNb8+n50xGYVTro/1HYUfAJX81iKhm2EqGmQ9tPS56BLrkvWyWUv6U5ZafkQTKCDAEBd0q4F5x3wGvBgAgT+7dGu9BL+kI++rqQYhGgelAooJf19WVh2fTexcGplEX75BMZDPrKx2ANWjXAWn3st8jiYjuJe1R9vVDXcShjISYJuRJyw6/nqlERqWUOl3ytrm+8PHwuJ7ARFQ3a3sAaRBRup9cILvZbWPetuy9i7SEom2Dl/nUFiPIeqOvG4QcGA6/vf28lZFtE3h1A/CU0UgAAFVO7iwkD0+NUkwWXqG+sh4YrYfPsqi6hV2H8HsCG64F0b19Bkrj2gcY/fdqwKvsKiFErEPtZaQntZOz4KCSmIXCGagbgGmQZ9lDeeSPZUVundwCfgeEeyFjJCrsqz7LIJyDStke/Srx75AZAQDIH/FeQUdOLtwacPpc8XXtLT6yI3DHJ8g7fExMTExcjB/HIw4rhmRWFQAAAABJRU5ErkJggg==`,cow_variation_5_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB/klEQVRoge2YbXLEIAiGcad3zA3ImfQGnpL+2JoiQcWPzewPn5nMtAnKi4BrArDZbDabzWYzjHvYHw34Jfb3bdxrSk4f1DbpH/NiRiMORhn1dRv3AgBAxE+L/9j8P5PjZ4VNB5aagsDWWJlDRKwae+/fTpw+dRqf7BLneQIAQAhBG5ZNZs0AcYdWzvME7z0Q0S0Iy1yIKIO4rUQrAwQAQESXoBG891kAUlia/xJVtu3aRgkRs8llqkdIgojourhg51z2LIRQzVYpAOotFwtyzlJvtJ5xtAAy8bxsRkuohCwd6zOObOLlK6+VHSLe6vwSIEqqpScF4MCwJ3vvl2WhJqxnEXkJLT/YrWj6Fk8e5orIQHsCbwagTZ6uFrzclB+lJQxnoKcXVu9enOJRQlthKURrannPIr51VvrLnGokA3AhBLLswSnAnp0plZEQBhSjau+Oozln8zCXDmQ1kT1Nx3shCU9CW/9rVHugJHrF9lha9YqtWhbmF5oe0dzWUl4ymJ7gqhkIIXxk6yvhjsNU99kY5d7VxM45oBj/a9J4wKrB37b4SkvhyjPzSYESAEAUI1GMBO8azK5e+Ni/DwmqD8VnkWYGxIN0j7/J9XCNk1tph76mgQzAFe7NsMzHVxzmZjBvo9ZXvBlGfKgBfKtYDWsGnviK/fSX8s1ms1nAL4ZTXaf8TqprAAAAAElFTkSuQmCC`,cow_variation_6_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABsUlEQVRoge2YWXLDIAxARSd3zA10KN3Ap6QfLVQm2sDU/tGbScYJsjYkMTZAkiRJkiRJkjxFucFG3WBT1XE1gFFxlGbXu784MmU2gJDDiAhEFJKzCOgoXxGH4Mfx1WyLeM5HZV7O+rTTUcd4dsd7xjVlJ0r/UljKuOXMSXn9U19K6fcR0cca48NfrYQqIoay6WHpKUYLWmscqYQqN8ivI415N+MOVCvr3o7M7FjLMC+fpoOvefAALk2ZHeW2QiuhCv6hAQDnqfCU05zoOXBiV4M3XZH/NLxzIIzX4NHTmctH9KoBWAeNJjdDNMte4C2AXv9SfRORaHCX85qeQU4cSS9BoHpH/Sqj3nZdj0OUL++3q1OKyjwLOLM7MNZ1c7w56vwWd2BpCu1Ay7ohK474bVPoCmMwM8GZO0BEZpnM9IYlK9V6pP4BnB4gIqjH0ZXNPEFFZHmmR4eFNbEHQgFIBiJOSk7zeyem0NSjb0XEiojtMbJ/2H9ddvLj2lDkVSJNXEAfrbtey5xs/O5MSPdjY3QX4TF6x9PYig2xiQWZHW/X/sVGdAfueAV5h40kSZLNfAP8suojqxWMSgAAAABJRU5ErkJggg==`,cow_variation_7_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB1klEQVRoge2YXZKDMAiAYad39AZ4JnODnjL7UixBkJim7j7wzdixJuEvJEQBkiRJkiRJkuSvwBt01Ak6XRmfOqAF98J6o/EY9MGfi4qrukyIqEsOEQERQa21ufh5YDwAAPQ60CjsMDBEyljXNezj8Qja9whoYfy/lBIqsZDjWBY7otscHbj/OBymz4qI54DnIBtU61s8Ijb9rbaXnIO93gyMLs4dNlwaJgOAiI2hkrM2jbUG3JE6mj3pM5pivWgHPo58DzwTiNikz7ZtbpuHTKHQ+Bm7jydr27YhPTwDFYKipoXOTA1pvLzv4bAGrH1+ZuRn49aB2UbzVjhb7tWjxM5MQ9Z1datxRFSJT4mqca+TPN4qeuK5uUblqXC/H4mup9zqpx2vz6fZF5fFshX0w6pK9ZAD0qBovDacDQ3+mw58lEKaK457Uff64rKYW/0DAKCUEr04fBXtzBXnfuDt1cG7UsrXzzIeKv9dwhR6TR8AzNs6iQhwWZpIa4ONtvE1wE707jQe+kVFLlYrbYRTl97dKxFVItLvv/LZ3vfiFepw+rv0zMDZ1jrrs0yj46xwaYaPEv+F7jpwx240osOaJusr2Iyva1/R0TsDd3yCvENHkiTJZH4BOxYPBJ6xfbsAAAAASUVORK5CYII=`,pixel_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4goFDRc7VmYGWwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAALSURBVAjXY2AAAgAABQAB4iYFmwAAAABJRU5ErkJggg==`,plotStates={"watered-plot":watered_plot_default,"fertilized-plot":fertilized_plot_default,"rainbow-fertilized-plot":rainbow_fertilized_plot_default,"mulched-plot":mulched_plot_default,"rainbow-mulched-plot":rainbow_mulched_plot_default,"shoveled-plot":shoveled_plot_default},smeltedItems={"bronze-ingot":bronze_ingot_default,"iron-ingot":iron_ingot_default,"silver-ingot":silver_ingot_default,"gold-ingot":gold_ingot_default,"axe-bronze":axe_bronze_default,"axe-iron":axe_iron_default,"axe-silver":axe_silver_default,"axe-gold":axe_gold_default,"hoe-bronze":hoe_bronze_default,"hoe-iron":hoe_iron_default,"hoe-silver":hoe_silver_default,"hoe-gold":hoe_gold_default,"scythe-bronze":scythe_bronze_default,"scythe-iron":scythe_iron_default,"scythe-silver":scythe_silver_default,"scythe-gold":scythe_gold_default,"shovel-bronze":shovel_bronze_default,"shovel-iron":shovel_iron_default,"shovel-silver":shovel_silver_default,"shovel-gold":shovel_gold_default,"picker-pole-bronze":picker_pole_bronze_default,"picker-pole-iron":picker_pole_iron_default,"picker-pole-silver":picker_pole_silver_default,"picker-pole-gold":picker_pole_gold_default},craftedItems={"apple-pie":apple_pie_default,"banana-bread":banana_bread_default,"banana-cream-pie":banana_cream_pie_default,"carrot-soup":carrot_soup_default,cheese:cheese_default,"chickn-pot-pie":chickn_pot_pie_default,chocolate:chocolate_default,"chocolate-soy-milk":chocolate_soy_milk_default,compost:compost_default,bread:bread_default,burger:burger_default,butter:butter_default,fertilizer:fertilizer_default,"french-onion-soup":french_onion_soup_default,"fried-tofu":fried_tofu_default,"garlic-bread":garlic_bread_default,"garlic-fries":garlic_fries_default,flour:flour_default,jackolantern:jackolantern_default,"hot-sauce":hot_sauce_default,mulch:mulch_default,"olive-oil":olive_oil_default,"onion-rings":onion_rings_default,popcorn:popcorn_default,"apple-juice":apple_juice_default,"grape-syrup":grape_syrup_default,"pumpkin-pie":pumpkin_pie_default,rainbowCheese:rainbow_cheese_default,"rainbow-mulch":rainbow_mulch_default,salsa:salsa_default,"soy-milk":soy_milk_default,"spicy-apple-jam":spicy_apple_jam_default,"spicy-cheese":spicy_cheese_default,"spicy-pickled-garlic":spicy_pickled_garlic_default,spaghetti:spaghetti_default,"strawberry-jam":strawberry_jam_default,sugar:sugar_default,salt:salt_default,"summer-salad":summer_salad_default,"sun-butter":sun_butter_default,"sweet-potato-fries":sweet_potato_fries_default,"sweet-potato-pie":sweet_potato_pie_default,tofu:tofu_default,"vegetable-oil":vegetable_oil_default,"wood-chips":wood_chips_default,yeast:yeast_default,"basic-lightning-rod":lightning_rod_basic_default,"superior-lightning-rod":lightning_rod_superior_default,"ultimate-lightning-rod":lightning_rod_ultimate_default,...smeltedItems},items={apple:apple_default,"apple-fruit-growing-1":apple_fruit_growing_1_default,"apple-fruit-growing-2":apple_fruit_growing_2_default,"apple-fruit-grown":apple_fruit_grown_default,"apple-tree-dead":apple_tree_dead_default,"apple-tree-growing-1":apple_tree_growing_1_default,"apple-tree-growing-2":apple_tree_growing_2_default,"apple-tree-growing-3":apple_tree_growing_3_default,"apple-tree-growing-4":apple_tree_growing_4_default,"apple-tree-grown":apple_tree_grown_default,"apple-sapling":apple_sapling_default,"apple-tree-sapling-planted":apple_tree_sapling_planted_default,banana:banana_default,"banana-fruit-growing-1":banana_fruit_growing_1_default,"banana-fruit-growing-2":banana_fruit_growing_2_default,"banana-fruit-growing-3":banana_fruit_growing_3_default,"banana-fruit-grown":banana_fruit_grown_default,"banana-tree-dead":banana_tree_dead_default,"banana-tree-growing-1":banana_tree_growing_1_default,"banana-tree-growing-2":banana_tree_growing_2_default,"banana-tree-growing-3":banana_tree_growing_3_default,"banana-tree-growing-4":banana_tree_growing_4_default,"banana-tree-grown":banana_tree_grown_default,"banana-sapling":banana_sapling_default,"banana-tree-sapling-planted":banana_tree_sapling_planted_default,asparagus:asparagus_default,"asparagus-growing-1":asparagus_growing1_default,"asparagus-growing-2":asparagus_growing2_default,"asparagus-growing-3":asparagus_growing3_default,"asparagus-seed":asparagus_seed_default,carrot:carrot_default,"carrot-growing-1":carrot_growing1_default,"carrot-growing-2":carrot_growing2_default,"carrot-growing-3":carrot_growing3_default,"carrot-seed":carrot_seed_default,garlic:garlic_default,"garlic-growing-1":garlic_growing1_default,"garlic-growing-2":garlic_growing2_default,"garlic-growing-3":garlic_growing3_default,"garlic-seed":garlic_seed_default,"grape-seed":grape_seed_default,"grape-cabernet-sauvignon":grape_purple_default,"grape-cabernet-sauvignon-growing-1":grape_purple_growing1_default,"grape-cabernet-sauvignon-seed":grape_seed_default,"grape-chardonnay":grape_green_default,"grape-chardonnay-growing-1":grape_green_growing1_default,"grape-chardonnay-seed":grape_seed_default,"grape-nebbiolo":grape_purple_default,"grape-nebbiolo-growing-1":grape_purple_growing1_default,"grape-nebbiolo-seed":grape_seed_default,"grape-sauvignon-blanc":grape_green_default,"grape-sauvignon-blanc-growing-1":grape_green_growing1_default,"grape-sauvignon-blanc-seed":grape_seed_default,"grape-tempranillo":grape_purple_default,"grape-tempranillo-growing-1":grape_purple_growing1_default,"grape-tempranillo-seed":grape_seed_default,jalapeno:jalapeno_default,"jalapeno-growing-1":jalapeno_growing1_default,"jalapeno-growing-2":jalapeno_growing2_default,"jalapeno-growing-3":jalapeno_growing3_default,"jalapeno-seed":jalapeno_seed_default,pumpkin:pumpkin_default,"pumpkin-growing-1":pumpkin_growing1_default,"pumpkin-growing-2":pumpkin_growing2_default,"pumpkin-growing-3":pumpkin_growing3_default,"pumpkin-growing-4":pumpkin_growing4_default,"pumpkin-growing-5":pumpkin_growing5_default,"pumpkin-seed":pumpkin_seed_default,pea:pea_default,"pea-growing-1":pea_growing1_default,"pea-seed":pea_seed_default,spinach:spinach_default,"spinach-growing-1":spinach_growing1_default,"spinach-seed":spinach_seed_default,corn:corn_default,"corn-growing-1":corn_growing1_default,"corn-growing-2":corn_growing2_default,"corn-growing-3":corn_growing3_default,"corn-growing-4":corn_growing4_default,"corn-growing-5":corn_growing5_default,"corn-seed":corn_seed_default,potato:potato_default,"potato-growing-1":potato_growing1_default,"potato-growing-2":potato_growing2_default,"potato-growing-3":potato_growing3_default,"potato-seed":potato_seed_default,olive:olive_default,"olive-growing-1":olive_growing1_default,"olive-seed":olive_seed_default,onion:onion_default,"onion-growing-1":onion_growing1_default,"onion-growing-2":onion_growing2_default,"onion-growing-3":onion_growing3_default,"onion-seed":onion_seed_default,soybean:soybean_default,"soybean-growing-1":soybean_growing1_default,"soybean-seed":soybean_seed_default,"sweet-potato":sweet_potato_default,"sweet-potato-growing-1":sweet_potato_growing1_default,"sweet-potato-growing-2":sweet_potato_growing2_default,"sweet-potato-growing-3":sweet_potato_growing3_default,"sweet-potato-growing-4":sweet_potato_growing4_default,"sweet-potato-seed":sweet_potato_seed_default,wheat:wheat_default,"wheat-growing-1":wheat_growing1_default,"wheat-seed":wheat_seed_default,tomato:tomato_default,"tomato-growing-1":tomato_growing1_default,"tomato-growing-2":tomato_growing2_default,"tomato-growing-3":tomato_growing3_default,"tomato-growing-4":tomato_growing4_default,"tomato-growing-5":tomato_growing5_default,"tomato-growing-6":tomato_growing6_default,"tomato-seed":tomato_seed_default,strawberry:strawberry_default,"strawberry-growing-1":strawberry_growing1_default,"strawberry-seed":strawberry_seed_default,sugarcane:sugarcane_default,"sugarcane-growing-1":sugarcane_growing1_default,"sugarcane-growing-2":sugarcane_growing2_default,"sugarcane-seed":sugarcane_seed_default,sunflower:sunflower_default,"sunflower-growing-1":sunflower_growing1_default,"sunflower-growing-2":sunflower_growing2_default,"sunflower-growing-3":sunflower_growing3_default,"sunflower-growing-4":sunflower_growing4_default,"sunflower-growing-5":sunflower_growing5_default,"sunflower-seed":sunflower_seed_default,watermelon:watermelon_default,"watermelon-growing-1":watermelon_growing1_default,"watermelon-seed":watermelon_seed_default,weed:weed_pink_default,"weed-yellow":weed_yellow_default,"weed-orange":weed_orange_default,"weed-pink":weed_pink_default,wood:applewood_default,coal:coal_default,stone:stone_default,"salt-rock":salt_rock_default,"bronze-ore":bronze_ore_default,"iron-ore":iron_ore_default,"silver-ore":silver_ore_default,"gold-ore":gold_ore_default,"rainbow-fertilizer":rainbow_fertilizer_default,scarecrow:scarecrow_default,sprinkler:sprinkler_default,"cow-feed":cow_feed_default,"hugging-machine":hugging_machine_default,"milk-1":milk_1_default,"milk-2":milk_2_default,"milk-3":milk_3_default,"rainbow-milk-1":rainbow_milk_1_default,"rainbow-milk-2":rainbow_milk_2_default,"rainbow-milk-3":rainbow_milk_3_default,"chocolate-milk":chocolate_milk_default,"scarecrow-animated":scarecrow_animated_default,"inventory-box":inventory_box_default,tumbleweed:tumbleweed_default,...craftedItems},wines={[grapeVariety.CHARDONNAY]:wine_green_default,[grapeVariety.SAUVIGNON_BLANC]:wine_green_default,[grapeVariety.CABERNET_SAUVIGNON]:wine_purple_default,[grapeVariety.TEMPRANILLO]:wine_purple_default,[grapeVariety.NEBBIOLO]:wine_purple_default},tools$1={axe:axe_default,hoe:hoe_default,"picker-pole":picker_pole_default,scythe:scythe_default,shovel:shovel_default,"watering-can":watering_can_default},animals={cow:{rainbow:rainbow_cow_default,variations:[cow_variation_1_default,cow_variation_2_default,cow_variation_3_default,cow_variation_4_default,cow_variation_5_default,cow_variation_6_default,cow_variation_7_default]}},noop$3=()=>{},getFinalCropItemFromSeedItem=({id:e},t=0)=>{let n=getFinalCropItemIdFromSeedItemId(e,t);if(n)return itemsMap[n]},getItemCurrentValue=({id:e},t)=>{let n=Math.round((t[e]?getItemBaseValue(e)*(itemsMap[e].doesPriceFluctuate?t[e]:1):getItemBaseValue(e))*100);return Number(toDecimal(dinero({amount:n,currency:USD})))};function noop$2(){}function returnTrue(){return!0}function charIsNumber(e){return!!(e||``).match(/\d/)}function isNil(e){return e==null}function escapeRegExp(e){return e.replace(/[-[\]/{}()*+?.\\^$|]/g,`\\$&`)}function getThousandsGroupRegex(e){switch(e){case`lakh`:return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case`wan`:return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}function applyThousandSeparator(e,t,n){var a=getThousandsGroupRegex(n),o=e.search(/[1-9]/);return o=o===-1?e.length:o,e.substring(0,o)+e.substring(o,e.length).replace(a,`$1`+t)}function splitDecimal(e,t){t===void 0&&(t=!0);var n=e[0]===`-`,a=n&&t;e=e.replace(`-`,``);var o=e.split(`.`);return{beforeDecimal:o[0],afterDecimal:o[1]||``,hasNagation:n,addNegation:a}}function fixLeadingZero(e){if(!e)return e;var t=e[0]===`-`;t&&(e=e.substring(1,e.length));var n=e.split(`.`),a=n[0].replace(/^0+/,``)||`0`,o=n[1]||``;return(t?`-`:``)+a+(o?`.`+o:``)}function limitToScale(e,t,n){for(var a=``,o=n?`0`:``,s=0;s<=t-1;s++)a+=e[s]||o;return a}function repeat(e,t){return Array(t+1).join(e)}function toNumericString(e){e+=``;var t=e[0]===`-`?`-`:``;t&&(e=e.substring(1));var n=e.split(/[eE]/g),a=n[0],o=n[1];if(o=Number(o),!o)return t+a;a=a.replace(`.`,``);var s=1+o,l=a.length;return s<0?a=`0.`+repeat(`0`,Math.abs(s))+a:s>=l?a+=repeat(`0`,s-l):a=(a.substring(0,s)||`0`)+`.`+a.substring(s),t+a}function roundToPrecision(e,t,n){if([``,`-`].indexOf(e)!==-1)return e;var a=e.indexOf(`.`)!==-1&&t,o=splitDecimal(e),s=o.beforeDecimal,l=o.afterDecimal,u=o.hasNagation,d=parseFloat(`0.`+(l||`0`)),f=(l.length<=t?`0.`+l:d.toFixed(t)).split(`.`),m=s.split(``).reverse().reduce(function(e,t,n){return e.length>n?(Number(e[0])+Number(t)).toString()+e.substring(1,e.length):t+e},f[0]),h=limitToScale(f[1]||``,Math.min(t,l.length),n),v=u?`-`:``,y=a?`.`:``;return``+v+m+y+h}function setCaretPosition(e,t){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move(`character`,t),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}function findChangedIndex(e,t){for(var n=0,a=0,o=e.length,s=t.length;e[n]===t[n]&&n<o;)n++;for(;e[o-1-a]===t[s-1-a]&&s-a>n&&o-a>n;)a++;return{start:n,end:o-a}}function clamp(e,t,n){return Math.min(Math.max(e,t),n)}function getCurrentCaretPosition(e){return Math.max(e.selectionStart,e.selectionEnd)}function addInputMode(e){return e||typeof navigator<`u`&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function objectWithoutProperties(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)===-1&&(n[a]=e[a]);return n}var defaultProps={displayType:`input`,decimalSeparator:`.`,thousandsGroupStyle:`thousand`,fixedDecimalScale:!1,prefix:``,suffix:``,allowNegative:!0,allowEmptyFormatting:!1,allowLeadingZeros:!1,isNumericString:!1,type:`text`,onValueChange:noop$2,onChange:noop$2,onKeyDown:noop$2,onMouseUp:noop$2,onFocus:noop$2,onBlur:noop$2,isAllowed:returnTrue},NumberFormat=function(e){function t(t){e.call(this,t);var n=t.defaultValue;this.validateProps();var a=this.formatValueProp(n);this.state={value:a,numAsString:this.removeFormatting(a),mounted:!1},this.selectionBeforeInput={selectionStart:0,selectionEnd:0},this.onChange=this.onChange.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.componentDidMount=function(){this.setState({mounted:!0})},t.prototype.componentDidUpdate=function(e){this.updateValueIfRequired(e)},t.prototype.componentWillUnmount=function(){clearTimeout(this.focusTimeout),clearTimeout(this.caretPositionTimeout)},t.prototype.updateValueIfRequired=function(e){var t=this,n=t.props,a=t.state,o=t.focusedElm,s=a.value,l=a.numAsString;if(l===void 0&&(l=``),e!==n){this.validateProps();var u=this.formatNumString(l),d=isNil(n.value)?u:this.formatValueProp(),f=this.removeFormatting(d),m=parseFloat(f),h=parseFloat(l);((!isNaN(m)||!isNaN(h))&&m!==h||u!==s||o===null&&d!==s)&&this.updateValue({formattedValue:d,numAsString:f,input:o,source:`prop`,event:null})}},t.prototype.getFloatString=function(e){e===void 0&&(e=``);var t=this.props.decimalScale,n=this.getSeparators().decimalSeparator,a=this.getNumberRegex(!0),o=e[0]===`-`;o&&(e=e.replace(`-`,``)),n&&t===0&&(e=e.split(n)[0]),e=(e.match(a)||[]).join(``).replace(n,`.`);var s=e.indexOf(`.`);return s!==-1&&(e=e.substring(0,s)+`.`+e.substring(s+1,e.length).replace(new RegExp(escapeRegExp(n),`g`),``)),o&&(e=`-`+e),e},t.prototype.getNumberRegex=function(e,t){var n=this.props,a=n.format,o=n.decimalScale,s=n.customNumerals,l=this.getSeparators().decimalSeparator;return RegExp(`[0-9`+(s?s.join(``):``)+`]`+(l&&o!==0&&!t&&!a?`|`+escapeRegExp(l):``),e?`g`:void 0)},t.prototype.getSeparators=function(){var e=this.props.decimalSeparator,t=this.props,n=t.thousandSeparator,a=t.allowedDecimalSeparators;return n===!0&&(n=`,`),a||=[e,`.`],{decimalSeparator:e,thousandSeparator:n,allowedDecimalSeparators:a}},t.prototype.getMaskAtIndex=function(e){var t=this.props.mask;return t===void 0&&(t=` `),typeof t==`string`?t:t[e]||` `},t.prototype.getValueObject=function(e,t){var n=parseFloat(t);return{formattedValue:e,value:t,floatValue:isNaN(n)?void 0:n}},t.prototype.validateProps=function(){var e=this.props.mask,t=this.getSeparators(),n=t.decimalSeparator,a=t.thousandSeparator;if(n===a)throw Error(`
|
|
155
155
|
Decimal separator can't be same as thousand separator.
|
|
156
156
|
thousandSeparator: `+a+` (thousandSeparator = {true} is same as thousandSeparator = ",")
|
|
157
157
|
decimalSeparator: `+n+` (default value for decimalSeparator is .)
|
|
158
158
|
`);if(e&&(e===`string`?e:e.toString()).match(/\d/g))throw Error(`
|
|
159
159
|
Mask `+e+` should not contain numeric character;
|
|
160
160
|
`)},t.prototype.setPatchedCaretPosition=function(e,t,n){setCaretPosition(e,t),this.caretPositionTimeout=setTimeout(function(){e.value===n&&setCaretPosition(e,t)},0)},t.prototype.correctCaretPosition=function(e,t,n){var a=this.props,o=a.prefix,s=a.suffix,l=a.format;if(e===``)return 0;if(t=clamp(t,0,e.length),!l){var u=e[0]===`-`;return clamp(t,o.length+ +!!u,e.length-s.length)}if(typeof l==`function`||l[t]===`#`&&charIsNumber(e[t])||l[t-1]===`#`&&charIsNumber(e[t-1]))return t;var d=l.indexOf(`#`),f=l.lastIndexOf(`#`);t=clamp(t,d,f+1);for(var m=l.substring(t,l.length).indexOf(`#`),h=t,v=t+(m===-1?0:m);h>d&&(l[h]!==`#`||!charIsNumber(e[h]));)--h;return!charIsNumber(e[v])||n===`left`&&t!==d||t-h<v-t?charIsNumber(e[h])?h+1:h:v},t.prototype.getCaretPosition=function(e,t,n){var a=this.props.format,o=this.state.value,s=this.getNumberRegex(!0),l=(e.match(s)||[]).join(``),u=(t.match(s)||[]).join(``),d=0,f;for(f=0;f<n;f++){var m=e[f]||``,h=t[d]||``;if(!(!m.match(s)&&m!==h)&&!(m===`0`&&h.match(s)&&h!==`0`&&l.length!==u.length)){for(;m!==t[d]&&d<t.length;)d++;d++}}return typeof a==`string`&&!o&&(d=t.length),d=this.correctCaretPosition(t,d),d},t.prototype.removePrefixAndSuffix=function(e){var t=this.props,n=t.format,a=t.prefix,o=t.suffix;if(!n&&e){var s=e[0]===`-`;s&&(e=e.substring(1,e.length)),e=a&&e.indexOf(a)===0?e.substring(a.length,e.length):e;var l=e.lastIndexOf(o);e=o&&l!==-1&&l===e.length-o.length?e.substring(0,l):e,s&&(e=`-`+e)}return e},t.prototype.removePatternFormatting=function(e){for(var t=this.props.format.split(`#`).filter(function(e){return e!==``}),n=0,a=``,o=0,s=t.length;o<=s;o++){var l=t[o]||``,u=o===s?e.length:e.indexOf(l,n);if(u===-1){a=e;break}else a+=e.substring(n,u),n=u+l.length}return(a.match(this.getNumberRegex(!0))||[]).join(``)},t.prototype.removeFormatting=function(e){var t=this.props,n=t.format,a=t.removeFormatting;return e&&(n?e=typeof n==`string`?this.removePatternFormatting(e):typeof a==`function`?a(e):(e.match(this.getNumberRegex(!0))||[]).join(``):(e=this.removePrefixAndSuffix(e),e=this.getFloatString(e)),e)},t.prototype.formatWithPattern=function(e){for(var t=this.props.format,n=0,a=t.split(``),o=0,s=t.length;o<s;o++)t[o]===`#`&&(a[o]=e[n]||this.getMaskAtIndex(n),n+=1);return a.join(``)},t.prototype.formatAsNumber=function(e){var t=this.props,n=t.decimalScale,a=t.fixedDecimalScale,o=t.prefix,s=t.suffix,l=t.allowNegative,u=t.thousandsGroupStyle,d=this.getSeparators(),f=d.thousandSeparator,m=d.decimalSeparator,h=e.indexOf(`.`)!==-1||n&&a,v=splitDecimal(e,l),y=v.beforeDecimal,b=v.afterDecimal,x=v.addNegation;return n!==void 0&&(b=limitToScale(b,n,a)),f&&(y=applyThousandSeparator(y,f,u)),o&&(y=o+y),s&&(b+=s),x&&(y=`-`+y),e=y+(h&&m||``)+b,e},t.prototype.formatNumString=function(e){e===void 0&&(e=``);var t=this.props,n=t.format,a=t.allowEmptyFormatting,o=t.customNumerals,s=e;if(o&&o.length===10){var l=RegExp(`[`+o.join(``)+`]`,`g`);s=e.replace(l,function(e){return o.indexOf(e).toString()})}return s=e===``&&!a?``:e===`-`&&!n?`-`:typeof n==`string`?this.formatWithPattern(s):typeof n==`function`?n(s):this.formatAsNumber(s),s},t.prototype.formatValueProp=function(e){var t=this.props,n=t.format,a=t.decimalScale,o=t.fixedDecimalScale,s=t.allowEmptyFormatting,l=this.props,u=l.value,d=l.isNumericString;u=isNil(u)?e:u;var f=!u&&u!==0;return f&&s&&(u=``),f&&!s?``:(typeof u==`number`&&(u=toNumericString(u),d=!0),u===`Infinity`&&d&&(u=``),d&&!n&&typeof a==`number`&&(u=roundToPrecision(u,a,o)),d?this.formatNumString(u):this.formatInput(u))},t.prototype.formatNegation=function(e){e===void 0&&(e=``);var t=this.props.allowNegative,n=RegExp(`(-)`),a=RegExp(`(-)(.)*(-)`),o=n.test(e),s=a.test(e);return e=e.replace(/-/g,``),o&&!s&&t&&(e=`-`+e),e},t.prototype.formatInput=function(e){return e===void 0&&(e=``),this.props.format||(e=this.removePrefixAndSuffix(e),e=this.formatNegation(e)),e=this.removeFormatting(e),this.formatNumString(e)},t.prototype.isCharacterAFormat=function(e,t){var n=this.props,a=n.format,o=n.prefix,s=n.suffix,l=n.decimalScale,u=n.fixedDecimalScale,d=this.getSeparators().decimalSeparator;return!!(typeof a==`string`&&a[e]!==`#`||!a&&(e<o.length||e>=t.length-s.length||l&&u&&t[e]===d))},t.prototype.correctInputValue=function(e,t,n){var a=this,o=this.props,s=o.format,l=o.allowNegative,u=o.prefix,d=o.suffix,f=o.decimalScale,m=this.getSeparators(),h=m.allowedDecimalSeparators,v=m.decimalSeparator,y=this.state.numAsString||``,b=this.selectionBeforeInput,x=b.selectionStart,S=b.selectionEnd,C=findChangedIndex(t,n),T=C.start,E=C.end;if(!s&&T===E&&h.indexOf(n[x])!==-1){var D=f===0?``:v;return n.substr(0,x)+D+n.substr(x+1,n.length)}var O=s?0:u.length,k=t.length-(s?0:d.length);if(n.length>t.length||!n.length||T===E||x===0&&S===t.length||T===0&&E===t.length||x===O&&S===k)return n;var j=t.substr(T,E-T);if([].concat(j).find(function(e,n){return a.isCharacterAFormat(n+T,t)})){var M=t.substr(T),N={},F=[];[].concat(M).forEach(function(e,n){a.isCharacterAFormat(n+T,t)?N[n]=e:n>j.length-1&&F.push(e)}),Object.keys(N).forEach(function(e){F.length>e?F.splice(e,0,N[e]):F.push(N[e])}),n=t.substr(0,T)+F.join(``)}if(!s){var I=this.removeFormatting(n),L=splitDecimal(I,l),R=L.beforeDecimal,z=L.afterDecimal,B=L.addNegation,V=e<n.indexOf(v)+1;if(I.length<y.length&&V&&R===``&&!parseFloat(z))return B?`-`:``}return n},t.prototype.updateValue=function(e){var t=e.formattedValue,n=e.input,a=e.setCaretPosition;a===void 0&&(a=!0);var o=e.source,s=e.event,l=e.numAsString,u=e.caretPos,d=this.props.onValueChange,f=this.state.value;if(n){if(u===void 0&&a){var m=e.inputValue||n.value,h=getCurrentCaretPosition(n);n.value=t,u=this.getCaretPosition(m,t,h)}n.value=t,a&&this.setPatchedCaretPosition(n,u,t)}l===void 0&&(l=this.removeFormatting(t)),t!==f&&(this.setState({value:t,numAsString:l}),d(this.getValueObject(t,l),{event:s,source:o}))},t.prototype.onChange=function(e){var t=e.target,n=t.value,a=this,o=a.state,s=a.props,l=s.isAllowed,u=o.value||``,d=getCurrentCaretPosition(t);n=this.correctInputValue(d,u,n);var f=this.formatInput(n)||``,m=this.removeFormatting(f),h=l(this.getValueObject(f,m));h||(f=u),this.updateValue({formattedValue:f,numAsString:m,inputValue:n,input:t,event:e,source:`event`}),h&&s.onChange(e)},t.prototype.onBlur=function(e){var t=this,n=t.props,a=t.state,o=n.format,s=n.onBlur,l=n.allowLeadingZeros,u=a.numAsString,d=a.value;if(this.focusedElm=null,clearTimeout(this.focusTimeout),clearTimeout(this.caretPositionTimeout),!o){isNaN(parseFloat(u))&&(u=``),l||(u=fixLeadingZero(u));var f=this.formatNumString(u);if(f!==d){this.updateValue({formattedValue:f,numAsString:u,input:e.target,setCaretPosition:!1,event:e,source:`event`}),s(e);return}}s(e)},t.prototype.onKeyDown=function(e){var t=e.target,n=e.key,a=t.selectionStart,o=t.selectionEnd,s=t.value;s===void 0&&(s=``);var l,u=this.props,d=u.decimalScale,f=u.fixedDecimalScale,m=u.prefix,h=u.suffix,v=u.format,y=u.onKeyDown,b=d!==void 0&&f,x=this.getNumberRegex(!1,b),S=RegExp(`-`),C=typeof v==`string`;if(this.selectionBeforeInput={selectionStart:a,selectionEnd:o},n===`ArrowLeft`||n===`Backspace`?l=a-1:n===`ArrowRight`?l=a+1:n===`Delete`&&(l=a),l===void 0||a!==o){y(e);return}var T=l,E=C?v.indexOf(`#`):m.length,D=C?v.lastIndexOf(`#`)+1:s.length-h.length;if(n===`ArrowLeft`||n===`ArrowRight`){var O=n===`ArrowLeft`?`left`:`right`;T=this.correctCaretPosition(s,l,O)}else if(n===`Delete`&&!x.test(s[l])&&!S.test(s[l]))for(;!x.test(s[T])&&T<D;)T++;else if(n===`Backspace`&&!x.test(s[l])){if(a<=E+1&&s[0]===`-`&&v===void 0){var k=s.substring(1);this.updateValue({formattedValue:k,caretPos:T,input:t,event:e,source:`event`})}else if(!S.test(s[l])){for(;!x.test(s[T-1])&&T>E;)T--;T=this.correctCaretPosition(s,T,`left`)}}(T!==l||l<E||l>D)&&(e.preventDefault(),this.setPatchedCaretPosition(t,T,s)),e.isUnitTestRun&&this.setPatchedCaretPosition(t,T,s),y(e)},t.prototype.onMouseUp=function(e){var t=e.target,n=t.selectionStart,a=t.selectionEnd,o=t.value;if(o===void 0&&(o=``),n===a){var s=this.correctCaretPosition(o,n);s!==n&&this.setPatchedCaretPosition(t,s,o)}this.props.onMouseUp(e)},t.prototype.onFocus=function(e){var t=this;e.persist(),this.focusedElm=e.target,this.focusTimeout=setTimeout(function(){var n=e.target,a=n.selectionStart,o=n.selectionEnd,s=n.value;s===void 0&&(s=``);var l=t.correctCaretPosition(s,a);l!==a&&!(a===0&&o===s.length)&&t.setPatchedCaretPosition(n,l,s),t.props.onFocus(e)},0)},t.prototype.render=function(){var e=this.props,t=e.type,n=e.displayType,a=e.customInput,o=e.renderText,s=e.getInputRef,l=e.format;e.thousandSeparator,e.decimalSeparator,e.allowedDecimalSeparators,e.thousandsGroupStyle,e.decimalScale,e.fixedDecimalScale,e.prefix,e.suffix,e.removeFormatting,e.mask,e.defaultValue,e.isNumericString,e.allowNegative,e.allowEmptyFormatting,e.allowLeadingZeros,e.onValueChange,e.isAllowed,e.customNumerals,e.onChange,e.onKeyDown,e.onMouseUp,e.onFocus,e.onBlur,e.value;var u=objectWithoutProperties(e,`type.displayType.customInput.renderText.getInputRef.format.thousandSeparator.decimalSeparator.allowedDecimalSeparators.thousandsGroupStyle.decimalScale.fixedDecimalScale.prefix.suffix.removeFormatting.mask.defaultValue.isNumericString.allowNegative.allowEmptyFormatting.allowLeadingZeros.onValueChange.isAllowed.customNumerals.onChange.onKeyDown.onMouseUp.onFocus.onBlur.value`.split(`.`)),d=this.state,f=d.value,m=d.mounted&&addInputMode(l)?`numeric`:void 0,h=Object.assign({inputMode:m},u,{type:t,value:f,onChange:this.onChange,onKeyDown:this.onKeyDown,onMouseUp:this.onMouseUp,onFocus:this.onFocus,onBlur:this.onBlur});if(n===`text`)return o?o(f,u)||null:import_react$24.createElement(`span`,Object.assign({},u,{ref:s}),f);if(a){var v=a;return import_react$24.createElement(v,Object.assign({},h,{ref:s}))}return import_react$24.createElement(`input`,Object.assign({},h,{ref:s}))},t}(import_react$24.Component);NumberFormat.defaultProps=defaultProps,init_extends(),init_objectWithoutPropertiesLoose(),init_esm();var _excluded$35=[`onChange`,`maxRows`,`minRows`,`style`,`value`];function getStyleValue(e){return parseInt(e,10)||0}var styles$5={shadow:{visibility:`hidden`,position:`absolute`,overflow:`hidden`,height:0,top:0,left:0,transform:`translateZ(0)`}};function isObjectEmpty(e){for(let t in e)return!1;return!0}function isEmpty$1(e){return isObjectEmpty(e)||e.outerHeightStyle===0&&!e.overflowing}var TextareaAutosize=import_react$24.forwardRef(function(e,t){let{onChange:n,maxRows:a,minRows:o=1,style:s,value:l}=e,u=_objectWithoutPropertiesLoose$3(e,_excluded$35),{current:d}=import_react$24.useRef(l!=null),f=import_react$24.useRef(null),m=useForkRef(t,f),h=import_react$24.useRef(null),v=import_react$24.useRef(null),y=import_react$24.useCallback(()=>{let t=f.current,n=v.current;if(!t||!n)return;let s=ownerWindow(t).getComputedStyle(t);if(s.width===`0px`)return{outerHeightStyle:0,overflowing:!1};n.style.width=s.width,n.value=t.value||e.placeholder||`x`,n.value.slice(-1)===`
|
|
161
|
-
`&&(n.value+=` `);let l=s.boxSizing,u=getStyleValue(s.paddingBottom)+getStyleValue(s.paddingTop),d=getStyleValue(s.borderBottomWidth)+getStyleValue(s.borderTopWidth),m=n.scrollHeight;n.value=`x`;let h=n.scrollHeight,y=m;return o&&(y=Math.max(Number(o)*h,y)),a&&(y=Math.min(Number(a)*h,y)),y=Math.max(y,h),{outerHeightStyle:y+(l===`border-box`?u+d:0),overflowing:Math.abs(y-m)<=1}},[a,o,e.placeholder]),b=useEventCallback$1(()=>{let e=f.current,t=y();if(!e||!t||isEmpty$1(t))return!1;let n=t.outerHeightStyle;return h.current!=null&&h.current!==n}),x=import_react$24.useCallback(()=>{let e=f.current,t=y();if(!e||!t||isEmpty$1(t))return;let n=t.outerHeightStyle;h.current!==n&&(h.current=n,e.style.height=`${n}px`),e.style.overflow=t.overflowing?`hidden`:``},[y]),S=import_react$24.useRef(-1);return useEnhancedEffect$1(()=>{let e=debounce$3(x),t=f?.current;if(!t)return;let n=ownerWindow(t);n.addEventListener(`resize`,e);let a;return typeof ResizeObserver<`u`&&(a=new ResizeObserver(()=>{b()&&(a.unobserve(t),cancelAnimationFrame(S.current),x(),S.current=requestAnimationFrame(()=>{a.observe(t)}))}),a.observe(t)),()=>{e.clear(),cancelAnimationFrame(S.current),n.removeEventListener(`resize`,e),a&&a.disconnect()}},[y,x,b]),useEnhancedEffect$1(()=>{x()}),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(`textarea`,_extends$3({value:l,onChange:e=>{d||x(),n&&n(e)},ref:m,rows:o,style:s},u)),(0,import_jsx_runtime.jsx)(`textarea`,{"aria-hidden":!0,className:e.className,readOnly:!0,ref:v,tabIndex:-1,style:_extends$3({},styles$5.shadow,s,{paddingTop:0,paddingBottom:0})})]})});init_generateUtilityClasses(),init_generateUtilityClass();function getInputBaseUtilityClass(e){return generateUtilityClass(`MuiInputBase`,e)}var inputBaseClasses=generateUtilityClasses(`MuiInputBase`,[`root`,`formControl`,`focused`,`disabled`,`adornedStart`,`adornedEnd`,`error`,`sizeSmall`,`multiline`,`colorSecondary`,`fullWidth`,`hiddenLabel`,`readOnly`,`input`,`inputSizeSmall`,`inputMultiline`,`inputTypeSearch`,`inputAdornedStart`,`inputAdornedEnd`,`inputHiddenLabel`]);init_objectWithoutPropertiesLoose(),init_extends(),init_formatMuiErrorMessage(),init_clsx(),init_composeClasses(),init_isHostComponent(),init_styled(),init_DefaultPropsProvider(),init_capitalize(),init_useForkRef(),init_useEnhancedEffect();var _excluded$34=`aria-describedby.autoComplete.autoFocus.className.color.components.componentsProps.defaultValue.disabled.disableInjectingGlobalStyles.endAdornment.error.fullWidth.id.inputComponent.inputProps.inputRef.margin.maxRows.minRows.multiline.name.onBlur.onChange.onClick.onFocus.onKeyDown.onKeyUp.placeholder.readOnly.renderSuffix.rows.size.slotProps.slots.startAdornment.type.value`.split(`.`),rootOverridesResolver=(e,t)=>{let{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size===`small`&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${capitalize_default(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},inputOverridesResolver=(e,t)=>{let{ownerState:n}=e;return[t.input,n.size===`small`&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type===`search`&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},useUtilityClasses$30=e=>{let{classes:t,color:n,disabled:a,error:o,endAdornment:s,focused:l,formControl:u,fullWidth:d,hiddenLabel:f,multiline:m,readOnly:h,size:v,startAdornment:y,type:b}=e;return composeClasses({root:[`root`,`color${capitalize_default(n)}`,a&&`disabled`,o&&`error`,d&&`fullWidth`,l&&`focused`,u&&`formControl`,v&&v!==`medium`&&`size${capitalize_default(v)}`,m&&`multiline`,y&&`adornedStart`,s&&`adornedEnd`,f&&`hiddenLabel`,h&&`readOnly`],input:[`input`,a&&`disabled`,b===`search`&&`inputTypeSearch`,m&&`inputMultiline`,v===`small`&&`inputSizeSmall`,f&&`inputHiddenLabel`,y&&`inputAdornedStart`,s&&`inputAdornedEnd`,h&&`readOnly`]},getInputBaseUtilityClass,t)},InputBaseRoot=styled$1(`div`,{name:`MuiInputBase`,slot:`Root`,overridesResolver:rootOverridesResolver})(({theme:e,ownerState:t})=>_extends$3({},e.typography.body1,{color:(e.vars||e).palette.text.primary,lineHeight:`1.4375em`,boxSizing:`border-box`,position:`relative`,cursor:`text`,display:`inline-flex`,alignItems:`center`,[`&.${inputBaseClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:`default`}},t.multiline&&_extends$3({padding:`4px 0 5px`},t.size===`small`&&{paddingTop:1}),t.fullWidth&&{width:`100%`})),InputBaseComponent=styled$1(`input`,{name:`MuiInputBase`,slot:`Input`,overridesResolver:inputOverridesResolver})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`,a=_extends$3({color:`currentColor`},e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5},{transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.shorter})}),o={opacity:`0 !important`},s=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5};return _extends$3({font:`inherit`,letterSpacing:`inherit`,color:`currentColor`,padding:`4px 0 5px`,border:0,boxSizing:`content-box`,background:`none`,height:`1.4375em`,margin:0,WebkitTapHighlightColor:`transparent`,display:`block`,minWidth:0,width:`100%`,animationName:`mui-auto-fill-cancel`,animationDuration:`10ms`,"&::-webkit-input-placeholder":a,"&::-moz-placeholder":a,"&:-ms-input-placeholder":a,"&::-ms-input-placeholder":a,"&:focus":{outline:0},"&:invalid":{boxShadow:`none`},"&::-webkit-search-decoration":{WebkitAppearance:`none`},[`label[data-shrink=false] + .${inputBaseClasses.formControl} &`]:{"&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&:-ms-input-placeholder":o,"&::-ms-input-placeholder":o,"&:focus::-webkit-input-placeholder":s,"&:focus::-moz-placeholder":s,"&:focus:-ms-input-placeholder":s,"&:focus::-ms-input-placeholder":s},[`&.${inputBaseClasses.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},"&:-webkit-autofill":{animationDuration:`5000s`,animationName:`mui-auto-fill`}},t.size===`small`&&{paddingTop:1},t.multiline&&{height:`auto`,resize:`none`,padding:0,paddingTop:0},t.type===`search`&&{MozAppearance:`textfield`})}),inputGlobalStyles=(0,import_jsx_runtime.jsx)(GlobalStyles,{styles:{"@keyframes mui-auto-fill":{from:{display:`block`}},"@keyframes mui-auto-fill-cancel":{from:{display:`block`}}}}),InputBase=import_react$24.forwardRef(function(e,t){var n;let a=useDefaultProps({props:e,name:`MuiInputBase`}),{"aria-describedby":o,autoComplete:s,autoFocus:l,className:u,components:d={},componentsProps:f={},defaultValue:m,disabled:h,disableInjectingGlobalStyles:v,endAdornment:y,fullWidth:b=!1,id:x,inputComponent:S=`input`,inputProps:C={},inputRef:T,maxRows:E,minRows:D,multiline:O=!1,name:k,onBlur:j,onChange:M,onClick:N,onFocus:F,onKeyDown:I,onKeyUp:L,placeholder:R,readOnly:z,renderSuffix:B,rows:V,slotProps:H={},slots:U={},startAdornment:W,type:G=`text`,value:ee}=a,te=_objectWithoutPropertiesLoose$3(a,_excluded$34),K=C.value==null?ee:C.value,{current:q}=import_react$24.useRef(K!=null),ne=import_react$24.useRef(),re=import_react$24.useCallback(e=>{},[]),J=useForkRef_default(ne,T,C.ref,re),[ie,ae]=import_react$24.useState(!1),oe=useFormControl(),se=formControlState({props:a,muiFormControl:oe,states:[`color`,`disabled`,`error`,`hiddenLabel`,`size`,`required`,`filled`]});se.focused=oe?oe.focused:ie,import_react$24.useEffect(()=>{!oe&&h&&ie&&(ae(!1),j&&j())},[oe,h,ie,j]);let ce=oe&&oe.onFilled,Y=oe&&oe.onEmpty,le=import_react$24.useCallback(e=>{isFilled(e)?ce&&ce():Y&&Y()},[ce,Y]);useEnhancedEffect_default(()=>{q&&le({value:K})},[K,le,q]);let ue=e=>{if(se.disabled){e.stopPropagation();return}F&&F(e),C.onFocus&&C.onFocus(e),oe&&oe.onFocus?oe.onFocus(e):ae(!0)},de=e=>{j&&j(e),C.onBlur&&C.onBlur(e),oe&&oe.onBlur?oe.onBlur(e):ae(!1)},X=(e,...t)=>{if(!q){let t=e.target||ne.current;if(t==null)throw Error(formatMuiErrorMessage(1));le({value:t.value})}C.onChange&&C.onChange(e,...t),M&&M(e,...t)};import_react$24.useEffect(()=>{le(ne.current)},[]);let fe=e=>{ne.current&&e.currentTarget===e.target&&ne.current.focus(),N&&N(e)},pe=S,me=C;O&&pe===`input`&&(me=_extends$3(V?{type:void 0,minRows:V,maxRows:V}:{type:void 0,maxRows:E,minRows:D},me),pe=TextareaAutosize);let he=e=>{le(e.animationName===`mui-auto-fill-cancel`?ne.current:{value:`x`})};import_react$24.useEffect(()=>{oe&&oe.setAdornedStart(!!W)},[oe,W]);let ge=_extends$3({},a,{color:se.color||`primary`,disabled:se.disabled,endAdornment:y,error:se.error,focused:se.focused,formControl:oe,fullWidth:b,hiddenLabel:se.hiddenLabel,multiline:O,size:se.size,startAdornment:W,type:G}),Z=useUtilityClasses$30(ge),_e=U.root||d.Root||InputBaseRoot,Q=H.root||f.root||{},$=U.input||d.Input||InputBaseComponent;return me=_extends$3({},me,H.input??f.input),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[!v&&inputGlobalStyles,(0,import_jsx_runtime.jsxs)(_e,_extends$3({},Q,!isHostComponent(_e)&&{ownerState:_extends$3({},ge,Q.ownerState)},{ref:t,onClick:fe},te,{className:clsx$1(Z.root,Q.className,u,z&&`MuiInputBase-readOnly`),children:[W,(0,import_jsx_runtime.jsx)(FormControlContext.Provider,{value:null,children:(0,import_jsx_runtime.jsx)($,_extends$3({ownerState:ge,"aria-invalid":se.error,"aria-describedby":o,autoComplete:s,autoFocus:l,defaultValue:m,disabled:se.disabled,id:x,onAnimationStart:he,name:k,placeholder:R,readOnly:z,required:se.required,rows:V,value:K,onKeyDown:I,onKeyUp:L,type:G},me,!isHostComponent($)&&{as:pe,ownerState:_extends$3({},ge,me.ownerState)},{ref:J,className:clsx$1(Z.input,me.className,z&&`MuiInputBase-readOnly`),onBlur:de,onChange:X,onFocus:ue}))}),y,B?B(_extends$3({},se,{startAdornment:W})):null]}))]})});init_extends(),init_generateUtilityClasses(),init_generateUtilityClass();function getInputUtilityClass(e){return generateUtilityClass(`MuiInput`,e)}var inputClasses=_extends$3({},inputBaseClasses,generateUtilityClasses(`MuiInput`,[`root`,`underline`,`input`]));init_objectWithoutPropertiesLoose(),init_extends(),init_composeClasses(),init_deepmerge(),init_styled(),init_DefaultPropsProvider();var _excluded$33=[`disableUnderline`,`components`,`componentsProps`,`fullWidth`,`inputComponent`,`multiline`,`slotProps`,`slots`,`type`],useUtilityClasses$29=e=>{let{classes:t,disableUnderline:n}=e;return _extends$3({},t,composeClasses({root:[`root`,!n&&`underline`],input:[`input`]},getInputUtilityClass,t))},InputRoot=styled$1(InputBaseRoot,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`;return e.vars&&(n=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),_extends$3({position:`relative`},t.formControl&&{"label + &":{marginTop:16}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t.color].main}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${inputClasses.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${inputClasses.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:`"\\00a0"`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${inputClasses.disabled}, .${inputClasses.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${inputClasses.disabled}:before`]:{borderBottomStyle:`dotted`}})}),InputInput=styled$1(InputBaseComponent,{name:`MuiInput`,slot:`Input`,overridesResolver:inputOverridesResolver})({}),Input=import_react$24.forwardRef(function(e,t){var n,a,o,s;let l=useDefaultProps({props:e,name:`MuiInput`}),{disableUnderline:u,components:d={},componentsProps:f,fullWidth:m=!1,inputComponent:h=`input`,multiline:v=!1,slotProps:y,slots:b={},type:x=`text`}=l,S=_objectWithoutPropertiesLoose$3(l,_excluded$33),C=useUtilityClasses$29(l),T={root:{ownerState:{disableUnderline:u}}},E=y??f?deepmerge(y??f,T):T;return(0,import_jsx_runtime.jsx)(InputBase,_extends$3({slots:{root:b.root??d.Root??InputRoot,input:b.input??d.Input??InputInput},slotProps:E,fullWidth:m,inputComponent:h,multiline:v,ref:t,type:x},S,{classes:C}))});Input.muiName=`Input`,init_extends(),init_generateUtilityClasses(),init_generateUtilityClass();function getFilledInputUtilityClass(e){return generateUtilityClass(`MuiFilledInput`,e)}var filledInputClasses=_extends$3({},inputBaseClasses,generateUtilityClasses(`MuiFilledInput`,[`root`,`underline`,`input`]));init_objectWithoutPropertiesLoose(),init_extends(),init_deepmerge(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$32=[`disableUnderline`,`components`,`componentsProps`,`fullWidth`,`hiddenLabel`,`inputComponent`,`multiline`,`slotProps`,`slots`,`type`],useUtilityClasses$28=e=>{let{classes:t,disableUnderline:n}=e;return _extends$3({},t,composeClasses({root:[`root`,!n&&`underline`],input:[`input`]},getFilledInputUtilityClass,t))},FilledInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiFilledInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{var n;let a=e.palette.mode===`light`,o=a?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`,s=a?`rgba(0, 0, 0, 0.06)`:`rgba(255, 255, 255, 0.09)`,l=a?`rgba(0, 0, 0, 0.09)`:`rgba(255, 255, 255, 0.13)`,u=a?`rgba(0, 0, 0, 0.12)`:`rgba(255, 255, 255, 0.12)`;return _extends$3({position:`relative`,backgroundColor:e.vars?e.vars.palette.FilledInput.bg:s,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(`background-color`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:l,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:s}},[`&.${filledInputClasses.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:s},[`&.${filledInputClasses.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:u}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t.color||`primary`]?.main}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${filledInputClasses.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${filledInputClasses.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:o}`,left:0,bottom:0,content:`"\\00a0"`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${filledInputClasses.disabled}, .${filledInputClasses.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${filledInputClasses.disabled}:before`]:{borderBottomStyle:`dotted`}},t.startAdornment&&{paddingLeft:12},t.endAdornment&&{paddingRight:12},t.multiline&&_extends$3({padding:`25px 12px 8px`},t.size===`small`&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.hiddenLabel&&t.size===`small`&&{paddingTop:8,paddingBottom:9}))}),FilledInputInput=styled$1(InputBaseComponent,{name:`MuiFilledInput`,slot:`Input`,overridesResolver:inputOverridesResolver})(({theme:e,ownerState:t})=>_extends$3({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`}},e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},t.size===`small`&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0},t.hiddenLabel&&t.size===`small`&&{paddingTop:8,paddingBottom:9},t.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0})),FilledInput=import_react$24.forwardRef(function(e,t){var n,a,o,s;let l=useDefaultProps({props:e,name:`MuiFilledInput`}),{components:u={},componentsProps:d,fullWidth:f=!1,inputComponent:m=`input`,multiline:h=!1,slotProps:v,slots:y={},type:b=`text`}=l,x=_objectWithoutPropertiesLoose$3(l,_excluded$32),S=_extends$3({},l,{fullWidth:f,inputComponent:m,multiline:h,type:b}),C=useUtilityClasses$28(l),T={root:{ownerState:S},input:{ownerState:S}},E=v??d?deepmerge(T,v??d):T;return(0,import_jsx_runtime.jsx)(InputBase,_extends$3({slots:{root:y.root??u.Root??FilledInputRoot,input:y.input??u.Input??FilledInputInput},componentsProps:E,fullWidth:f,inputComponent:m,multiline:h,ref:t,type:b},x,{classes:C}))});FilledInput.muiName=`Input`,init_objectWithoutPropertiesLoose(),init_extends(),init_styled();var _span$2,_excluded$31=[`children`,`classes`,`className`,`label`,`notched`],NotchedOutlineRoot$1=styled$1(`fieldset`,{name:`MuiNotchedOutlined`,shouldForwardProp:rootShouldForwardProp})({textAlign:`left`,position:`absolute`,bottom:0,right:0,top:-5,left:0,margin:0,padding:`0 8px`,pointerEvents:`none`,borderRadius:`inherit`,borderStyle:`solid`,borderWidth:1,overflow:`hidden`,minWidth:`0%`}),NotchedOutlineLegend=styled$1(`legend`,{name:`MuiNotchedOutlined`,shouldForwardProp:rootShouldForwardProp})(({ownerState:e,theme:t})=>_extends$3({float:`unset`,width:`auto`,overflow:`hidden`},!e.withLabel&&{padding:0,lineHeight:`11px`,transition:t.transitions.create(`width`,{duration:150,easing:t.transitions.easing.easeOut})},e.withLabel&&_extends$3({display:`block`,padding:0,height:11,fontSize:`0.75em`,visibility:`hidden`,maxWidth:.01,transition:t.transitions.create(`max-width`,{duration:50,easing:t.transitions.easing.easeOut}),whiteSpace:`nowrap`,"& > span":{paddingLeft:5,paddingRight:5,display:`inline-block`,opacity:0,visibility:`visible`}},e.notched&&{maxWidth:`100%`,transition:t.transitions.create(`max-width`,{duration:100,easing:t.transitions.easing.easeOut,delay:50})})));function NotchedOutline(e){let{className:t,label:n,notched:a}=e,o=_objectWithoutPropertiesLoose$3(e,_excluded$31),s=n!=null&&n!==``,l=_extends$3({},e,{notched:a,withLabel:s});return(0,import_jsx_runtime.jsx)(NotchedOutlineRoot$1,_extends$3({"aria-hidden":!0,className:t,ownerState:l},o,{children:(0,import_jsx_runtime.jsx)(NotchedOutlineLegend,{ownerState:l,children:s?(0,import_jsx_runtime.jsx)(`span`,{children:n}):_span$2||=(0,import_jsx_runtime.jsx)(`span`,{className:`notranslate`,children:``})})}))}init_extends(),init_generateUtilityClasses(),init_generateUtilityClass();function getOutlinedInputUtilityClass(e){return generateUtilityClass(`MuiOutlinedInput`,e)}var outlinedInputClasses=_extends$3({},inputBaseClasses,generateUtilityClasses(`MuiOutlinedInput`,[`root`,`notchedOutline`,`input`]));init_objectWithoutPropertiesLoose(),init_extends(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$30=[`components`,`fullWidth`,`inputComponent`,`label`,`multiline`,`notched`,`slots`,`type`],useUtilityClasses$27=e=>{let{classes:t}=e;return _extends$3({},t,composeClasses({root:[`root`],notchedOutline:[`notchedOutline`],input:[`input`]},getOutlinedInputUtilityClass,t))},OutlinedInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiOutlinedInput`,slot:`Root`,overridesResolver:rootOverridesResolver})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return _extends$3({position:`relative`,borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${outlinedInputClasses.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:n}},[`&.${outlinedInputClasses.focused} .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette[t.color].main,borderWidth:2},[`&.${outlinedInputClasses.error} .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${outlinedInputClasses.disabled} .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}},t.startAdornment&&{paddingLeft:14},t.endAdornment&&{paddingRight:14},t.multiline&&_extends$3({padding:`16.5px 14px`},t.size===`small`&&{padding:`8.5px 14px`}))}),NotchedOutlineRoot=styled$1(NotchedOutline,{name:`MuiOutlinedInput`,slot:`NotchedOutline`,overridesResolver:(e,t)=>t.notchedOutline})(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}}),OutlinedInputInput=styled$1(InputBaseComponent,{name:`MuiOutlinedInput`,slot:`Input`,overridesResolver:inputOverridesResolver})(({theme:e,ownerState:t})=>_extends$3({padding:`16.5px 14px`},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderRadius:`inherit`}},e.vars&&{"&:-webkit-autofill":{borderRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},t.size===`small`&&{padding:`8.5px 14px`},t.multiline&&{padding:0},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0})),OutlinedInput=import_react$24.forwardRef(function(e,t){var n,a,o,s,l;let u=useDefaultProps({props:e,name:`MuiOutlinedInput`}),{components:d={},fullWidth:f=!1,inputComponent:m=`input`,label:h,multiline:v=!1,notched:y,slots:b={},type:x=`text`}=u,S=_objectWithoutPropertiesLoose$3(u,_excluded$30),C=useUtilityClasses$27(u),T=useFormControl(),E=formControlState({props:u,muiFormControl:T,states:[`color`,`disabled`,`error`,`focused`,`hiddenLabel`,`size`,`required`]}),D=_extends$3({},u,{color:E.color||`primary`,disabled:E.disabled,error:E.error,focused:E.focused,formControl:T,fullWidth:f,hiddenLabel:E.hiddenLabel,multiline:v,size:E.size,type:x});return(0,import_jsx_runtime.jsx)(InputBase,_extends$3({slots:{root:b.root??d.Root??OutlinedInputRoot,input:b.input??d.Input??OutlinedInputInput},renderSuffix:e=>(0,import_jsx_runtime.jsx)(NotchedOutlineRoot,{ownerState:D,className:C.notchedOutline,label:h!=null&&h!==``&&E.required?l||=(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[h,` `,`*`]}):h,notched:y===void 0?!!(e.startAdornment||e.filled||e.focused):y}),fullWidth:f,inputComponent:m,multiline:v,ref:t,type:x},S,{classes:_extends$3({},C,{notchedOutline:null})}))});OutlinedInput.muiName=`Input`,init_generateUtilityClasses(),init_generateUtilityClass();function getFormLabelUtilityClasses(e){return generateUtilityClass(`MuiFormLabel`,e)}var formLabelClasses=generateUtilityClasses(`MuiFormLabel`,[`root`,`colorSecondary`,`focused`,`disabled`,`error`,`filled`,`required`,`asterisk`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$29=[`children`,`className`,`color`,`component`,`disabled`,`error`,`filled`,`focused`,`required`],useUtilityClasses$26=e=>{let{classes:t,color:n,focused:a,disabled:o,error:s,filled:l,required:u}=e;return composeClasses({root:[`root`,`color${capitalize_default(n)}`,o&&`disabled`,s&&`error`,l&&`filled`,a&&`focused`,u&&`required`],asterisk:[`asterisk`,s&&`error`]},getFormLabelUtilityClasses,t)},FormLabelRoot=styled$1(`label`,{name:`MuiFormLabel`,slot:`Root`,overridesResolver:({ownerState:e},t)=>_extends$3({},t.root,e.color===`secondary`&&t.colorSecondary,e.filled&&t.filled)})(({theme:e,ownerState:t})=>_extends$3({color:(e.vars||e).palette.text.secondary},e.typography.body1,{lineHeight:`1.4375em`,padding:0,position:`relative`,[`&.${formLabelClasses.focused}`]:{color:(e.vars||e).palette[t.color].main},[`&.${formLabelClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${formLabelClasses.error}`]:{color:(e.vars||e).palette.error.main}})),AsteriskComponent=styled$1(`span`,{name:`MuiFormLabel`,slot:`Asterisk`,overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${formLabelClasses.error}`]:{color:(e.vars||e).palette.error.main}})),FormLabel=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiFormLabel`}),{children:a,className:o,component:s=`label`}=n,l=_objectWithoutPropertiesLoose$3(n,_excluded$29),u=formControlState({props:n,muiFormControl:useFormControl(),states:[`color`,`required`,`focused`,`disabled`,`error`,`filled`]}),d=_extends$3({},n,{color:u.color||`primary`,component:s,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),f=useUtilityClasses$26(d);return(0,import_jsx_runtime.jsxs)(FormLabelRoot,_extends$3({as:s,ownerState:d,className:clsx$1(f.root,o),ref:t},l,{children:[a,u.required&&(0,import_jsx_runtime.jsxs)(AsteriskComponent,{ownerState:d,"aria-hidden":!0,className:f.asterisk,children:[` `,`*`]})]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getInputLabelUtilityClasses(e){return generateUtilityClass(`MuiInputLabel`,e)}var inputLabelClasses=generateUtilityClasses(`MuiInputLabel`,[`root`,`focused`,`disabled`,`error`,`required`,`asterisk`,`formControl`,`sizeSmall`,`shrink`,`animated`,`standard`,`filled`,`outlined`]);init_objectWithoutPropertiesLoose(),init_extends(),init_composeClasses(),init_clsx(),init_DefaultPropsProvider(),init_capitalize(),init_styled();var _excluded$28=[`disableAnimation`,`margin`,`shrink`,`variant`,`className`],useUtilityClasses$25=e=>{let{classes:t,formControl:n,size:a,shrink:o,disableAnimation:s,variant:l,required:u}=e;return _extends$3({},t,composeClasses({root:[`root`,n&&`formControl`,!s&&`animated`,o&&`shrink`,a&&a!==`normal`&&`size${capitalize_default(a)}`,l],asterisk:[u&&`asterisk`]},getInputLabelUtilityClasses,t))},InputLabelRoot=styled$1(FormLabel,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiInputLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${formLabelClasses.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size===`small`&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(({theme:e,ownerState:t})=>_extends$3({display:`block`,transformOrigin:`top left`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,maxWidth:`100%`},t.formControl&&{position:`absolute`,left:0,top:0,transform:`translate(0, 20px) scale(1)`},t.size===`small`&&{transform:`translate(0, 17px) scale(1)`},t.shrink&&{transform:`translate(0, -1.5px) scale(0.75)`,transformOrigin:`top left`,maxWidth:`133%`},!t.disableAnimation&&{transition:e.transitions.create([`color`,`transform`,`max-width`],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},t.variant===`filled`&&_extends$3({zIndex:1,pointerEvents:`none`,transform:`translate(12px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`},t.size===`small`&&{transform:`translate(12px, 13px) scale(1)`},t.shrink&&_extends$3({userSelect:`none`,pointerEvents:`auto`,transform:`translate(12px, 7px) scale(0.75)`,maxWidth:`calc(133% - 24px)`},t.size===`small`&&{transform:`translate(12px, 4px) scale(0.75)`})),t.variant===`outlined`&&_extends$3({zIndex:1,pointerEvents:`none`,transform:`translate(14px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`},t.size===`small`&&{transform:`translate(14px, 9px) scale(1)`},t.shrink&&{userSelect:`none`,pointerEvents:`auto`,maxWidth:`calc(133% - 32px)`,transform:`translate(14px, -9px) scale(0.75)`}))),InputLabel=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({name:`MuiInputLabel`,props:e}),{disableAnimation:a=!1,shrink:o,className:s}=n,l=_objectWithoutPropertiesLoose$3(n,_excluded$28),u=useFormControl(),d=o;d===void 0&&u&&(d=u.filled||u.focused||u.adornedStart);let f=formControlState({props:n,muiFormControl:u,states:[`size`,`variant`,`required`,`focused`]}),m=_extends$3({},n,{disableAnimation:a,formControl:u,shrink:d,size:f.size,variant:f.variant,required:f.required,focused:f.focused}),h=useUtilityClasses$25(m);return(0,import_jsx_runtime.jsx)(InputLabelRoot,_extends$3({"data-shrink":d,ownerState:m,ref:t,className:clsx$1(h.root,s)},l,{classes:h}))});init_generateUtilityClasses(),init_generateUtilityClass();function getFormHelperTextUtilityClasses(e){return generateUtilityClass(`MuiFormHelperText`,e)}var formHelperTextClasses=generateUtilityClasses(`MuiFormHelperText`,[`root`,`error`,`disabled`,`sizeSmall`,`sizeMedium`,`contained`,`focused`,`filled`,`required`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_capitalize(),init_DefaultPropsProvider();var _span$1,_excluded$27=[`children`,`className`,`component`,`disabled`,`error`,`filled`,`focused`,`margin`,`required`,`variant`],useUtilityClasses$24=e=>{let{classes:t,contained:n,size:a,disabled:o,error:s,filled:l,focused:u,required:d}=e;return composeClasses({root:[`root`,o&&`disabled`,s&&`error`,a&&`size${capitalize_default(a)}`,n&&`contained`,u&&`focused`,l&&`filled`,d&&`required`]},getFormHelperTextUtilityClasses,t)},FormHelperTextRoot=styled$1(`p`,{name:`MuiFormHelperText`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.size&&t[`size${capitalize_default(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(({theme:e,ownerState:t})=>_extends$3({color:(e.vars||e).palette.text.secondary},e.typography.caption,{textAlign:`left`,marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${formHelperTextClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${formHelperTextClasses.error}`]:{color:(e.vars||e).palette.error.main}},t.size===`small`&&{marginTop:4},t.contained&&{marginLeft:14,marginRight:14})),FormHelperText=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiFormHelperText`}),{children:a,className:o,component:s=`p`}=n,l=_objectWithoutPropertiesLoose$3(n,_excluded$27),u=formControlState({props:n,muiFormControl:useFormControl(),states:[`variant`,`size`,`disabled`,`error`,`filled`,`focused`,`required`]}),d=_extends$3({},n,{component:s,contained:u.variant===`filled`||u.variant===`outlined`,variant:u.variant,size:u.size,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),f=useUtilityClasses$24(d);return(0,import_jsx_runtime.jsx)(FormHelperTextRoot,_extends$3({as:s,ownerState:d,className:clsx$1(f.root,o),ref:t},l,{children:a===` `?_span$1||=(0,import_jsx_runtime.jsx)(`span`,{className:`notranslate`,children:``}):a}))}),ListContext=import_react$24.createContext({});init_generateUtilityClasses(),init_generateUtilityClass();function getListUtilityClass(e){return generateUtilityClass(`MuiList`,e)}var listClasses=generateUtilityClasses(`MuiList`,[`root`,`padding`,`dense`,`subheader`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$26=[`children`,`className`,`component`,`dense`,`disablePadding`,`subheader`],useUtilityClasses$23=e=>{let{classes:t,disablePadding:n,dense:a,subheader:o}=e;return composeClasses({root:[`root`,!n&&`padding`,a&&`dense`,o&&`subheader`]},getListUtilityClass,t)},ListRoot=styled$1(`ul`,{name:`MuiList`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})(({ownerState:e})=>_extends$3({listStyle:`none`,margin:0,padding:0,position:`relative`},!e.disablePadding&&{paddingTop:8,paddingBottom:8},e.subheader&&{paddingTop:0})),List=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiList`}),{children:a,className:o,component:s=`ul`,dense:l=!1,disablePadding:u=!1,subheader:d}=n,f=_objectWithoutPropertiesLoose$3(n,_excluded$26),m=import_react$24.useMemo(()=>({dense:l}),[l]),h=_extends$3({},n,{component:s,dense:l,disablePadding:u}),v=useUtilityClasses$23(h);return(0,import_jsx_runtime.jsx)(ListContext.Provider,{value:m,children:(0,import_jsx_runtime.jsxs)(ListRoot,_extends$3({as:s,className:clsx$1(v.root,o),ref:t,ownerState:h},f,{children:[d,a]}))})});init_getScrollbarSize();var getScrollbarSize_default=getScrollbarSize;init_extends(),init_objectWithoutPropertiesLoose(),init_ownerDocument(),init_useForkRef(),init_useEnhancedEffect();var _excluded$25=[`actions`,`autoFocus`,`autoFocusItem`,`children`,`className`,`disabledItemsFocusable`,`disableListWrap`,`onKeyDown`,`variant`];function nextItem$1(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function previousItem$1(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function textCriteriaMatches(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.indexOf(t.keys.join(``))===0}function moveFocus$1(e,t,n,a,o,s){let l=!1,u=o(e,t,t?n:!1);for(;u;){if(u===e.firstChild){if(l)return!1;l=!0}let t=a?!1:u.disabled||u.getAttribute(`aria-disabled`)===`true`;if(!u.hasAttribute(`tabindex`)||!textCriteriaMatches(u,s)||t)u=o(e,u,n);else return u.focus(),!0}return!1}var MenuList=import_react$24.forwardRef(function(e,t){let{actions:n,autoFocus:a=!1,autoFocusItem:o=!1,children:s,className:l,disabledItemsFocusable:u=!1,disableListWrap:d=!1,onKeyDown:f,variant:m=`selectedMenu`}=e,h=_objectWithoutPropertiesLoose$3(e,_excluded$25),v=import_react$24.useRef(null),y=import_react$24.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect_default(()=>{a&&v.current.focus()},[a]),import_react$24.useImperativeHandle(n,()=>({adjustStyleForScrollbar:(e,{direction:t})=>{let n=!v.current.style.width;if(e.clientHeight<v.current.clientHeight&&n){let n=`${getScrollbarSize_default(ownerDocument_default(e))}px`;v.current.style[t===`rtl`?`paddingLeft`:`paddingRight`]=n,v.current.style.width=`calc(100% + ${n})`}return v.current}}),[]);let b=e=>{let t=v.current,n=e.key,a=ownerDocument_default(t).activeElement;if(n===`ArrowDown`)e.preventDefault(),moveFocus$1(t,a,d,u,nextItem$1);else if(n===`ArrowUp`)e.preventDefault(),moveFocus$1(t,a,d,u,previousItem$1);else if(n===`Home`)e.preventDefault(),moveFocus$1(t,null,d,u,nextItem$1);else if(n===`End`)e.preventDefault(),moveFocus$1(t,null,d,u,previousItem$1);else if(n.length===1){let o=y.current,s=n.toLowerCase(),l=performance.now();o.keys.length>0&&(l-o.lastTime>500?(o.keys=[],o.repeating=!0,o.previousKeyMatched=!0):o.repeating&&s!==o.keys[0]&&(o.repeating=!1)),o.lastTime=l,o.keys.push(s);let d=a&&!o.repeating&&textCriteriaMatches(a,o);o.previousKeyMatched&&(d||moveFocus$1(t,a,!1,u,nextItem$1,o))?e.preventDefault():o.previousKeyMatched=!1}f&&f(e)},x=useForkRef_default(v,t),S=-1;import_react$24.Children.forEach(s,(e,t)=>{if(!import_react$24.isValidElement(e)){S===t&&(S+=1,S>=s.length&&(S=-1));return}e.props.disabled||(m===`selectedMenu`&&e.props.selected||S===-1)&&(S=t),S===t&&(e.props.disabled||e.props.muiSkipListHighlight||e.type.muiSkipListHighlight)&&(S+=1,S>=s.length&&(S=-1))});let C=import_react$24.Children.map(s,(e,t)=>{if(t===S){let t={};return o&&(t.autoFocus=!0),e.props.tabIndex===void 0&&m===`selectedMenu`&&(t.tabIndex=0),import_react$24.cloneElement(e,t)}return e});return(0,import_jsx_runtime.jsx)(List,_extends$3({role:`menu`,ref:x,className:l,onKeyDown:b,tabIndex:a?0:-1},h,{children:C}))});init_generateUtilityClasses(),init_generateUtilityClass();function getPopoverUtilityClass(e){return generateUtilityClass(`MuiPopover`,e)}var popoverClasses=generateUtilityClasses(`MuiPopover`,[`root`,`paper`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_isHostComponent(),init_styled(),init_DefaultPropsProvider(),init_debounce(),init_ownerDocument(),init_ownerWindow(),init_useForkRef();var _excluded$24=[`onEntering`],_excluded2$2=[`action`,`anchorEl`,`anchorOrigin`,`anchorPosition`,`anchorReference`,`children`,`className`,`container`,`elevation`,`marginThreshold`,`open`,`PaperProps`,`slots`,`slotProps`,`transformOrigin`,`TransitionComponent`,`transitionDuration`,`TransitionProps`,`disableScrollLock`],_excluded3=[`slotProps`];function getOffsetTop(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.height/2:t===`bottom`&&(n=e.height),n}function getOffsetLeft(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.width/2:t===`right`&&(n=e.width),n}function getTransformOriginValue(e){return[e.horizontal,e.vertical].map(e=>typeof e==`number`?`${e}px`:e).join(` `)}function resolveAnchorEl(e){return typeof e==`function`?e():e}var useUtilityClasses$22=e=>{let{classes:t}=e;return composeClasses({root:[`root`],paper:[`paper`]},getPopoverUtilityClass,t)},PopoverRoot=styled$1(Modal,{name:`MuiPopover`,slot:`Root`,overridesResolver:(e,t)=>t.root})({}),PopoverPaper=styled$1(Paper,{name:`MuiPopover`,slot:`Paper`,overridesResolver:(e,t)=>t.paper})({position:`absolute`,overflowY:`auto`,overflowX:`hidden`,minWidth:16,minHeight:16,maxWidth:`calc(100% - 32px)`,maxHeight:`calc(100% - 32px)`,outline:0}),Popover=import_react$24.forwardRef(function(e,t){var n,a,o;let s=useDefaultProps({props:e,name:`MuiPopover`}),{action:l,anchorEl:u,anchorOrigin:d={vertical:`top`,horizontal:`left`},anchorPosition:f,anchorReference:m=`anchorEl`,children:h,className:v,container:y,elevation:b=8,marginThreshold:x=16,open:S,PaperProps:C={},slots:T,slotProps:E,transformOrigin:D={vertical:`top`,horizontal:`left`},TransitionComponent:O=Grow,transitionDuration:k=`auto`,TransitionProps:{onEntering:j}={},disableScrollLock:M=!1}=s,N=_objectWithoutPropertiesLoose$3(s.TransitionProps,_excluded$24),F=_objectWithoutPropertiesLoose$3(s,_excluded2$2),I=E?.paper??C,L=import_react$24.useRef(),R=useForkRef_default(L,I.ref),z=_extends$3({},s,{anchorOrigin:d,anchorReference:m,elevation:b,marginThreshold:x,externalPaperSlotProps:I,transformOrigin:D,TransitionComponent:O,transitionDuration:k,TransitionProps:N}),B=useUtilityClasses$22(z),V=import_react$24.useCallback(()=>{if(m===`anchorPosition`)return f;let e=resolveAnchorEl(u),t=(e&&e.nodeType===1?e:ownerDocument_default(L.current).body).getBoundingClientRect();return{top:t.top+getOffsetTop(t,d.vertical),left:t.left+getOffsetLeft(t,d.horizontal)}},[u,d.horizontal,d.vertical,f,m]),H=import_react$24.useCallback(e=>({vertical:getOffsetTop(e,D.vertical),horizontal:getOffsetLeft(e,D.horizontal)}),[D.horizontal,D.vertical]),U=import_react$24.useCallback(e=>{let t={width:e.offsetWidth,height:e.offsetHeight},n=H(t);if(m===`none`)return{top:null,left:null,transformOrigin:getTransformOriginValue(n)};let a=V(),o=a.top-n.vertical,s=a.left-n.horizontal,l=o+t.height,d=s+t.width,f=ownerWindow_default(resolveAnchorEl(u)),h=f.innerHeight-x,v=f.innerWidth-x;if(x!==null&&o<x){let e=o-x;o-=e,n.vertical+=e}else if(x!==null&&l>h){let e=l-h;o-=e,n.vertical+=e}if(x!==null&&s<x){let e=s-x;s-=e,n.horizontal+=e}else if(d>v){let e=d-v;s-=e,n.horizontal+=e}return{top:`${Math.round(o)}px`,left:`${Math.round(s)}px`,transformOrigin:getTransformOriginValue(n)}},[u,m,V,H,x]),[W,G]=import_react$24.useState(S),ee=import_react$24.useCallback(()=>{let e=L.current;if(!e)return;let t=U(e);t.top!==null&&(e.style.top=t.top),t.left!==null&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,G(!0)},[U]);import_react$24.useEffect(()=>(M&&window.addEventListener(`scroll`,ee),()=>window.removeEventListener(`scroll`,ee)),[u,M,ee]);let te=(e,t)=>{j&&j(e,t),ee()},K=()=>{G(!1)};import_react$24.useEffect(()=>{S&&ee()}),import_react$24.useImperativeHandle(l,()=>S?{updatePosition:()=>{ee()}}:null,[S,ee]),import_react$24.useEffect(()=>{if(!S)return;let e=debounce_default(()=>{ee()}),t=ownerWindow_default(u);return t.addEventListener(`resize`,e),()=>{e.clear(),t.removeEventListener(`resize`,e)}},[u,S,ee]);let q=k;k===`auto`&&!O.muiSupportAuto&&(q=void 0);let ne=y||(u?ownerDocument_default(resolveAnchorEl(u)).body:void 0),re=T?.root??PopoverRoot,J=T?.paper??PopoverPaper,ie=useSlotProps({elementType:J,externalSlotProps:_extends$3({},I,{style:W?I.style:_extends$3({},I.style,{opacity:0})}),additionalProps:{elevation:b,ref:R},ownerState:z,className:clsx$1(B.paper,I?.className)}),ae=useSlotProps({elementType:re,externalSlotProps:E?.root||{},externalForwardedProps:F,additionalProps:{ref:t,slotProps:{backdrop:{invisible:!0}},container:ne,open:S},ownerState:z,className:clsx$1(B.root,v)}),{slotProps:oe}=ae;return(0,import_jsx_runtime.jsx)(re,_extends$3({},_objectWithoutPropertiesLoose$3(ae,_excluded3),!isHostComponent(re)&&{slotProps:oe,disableScrollLock:M},{children:(0,import_jsx_runtime.jsx)(O,_extends$3({appear:!0,in:S,onEntering:te,onExited:K,timeout:q},N,{children:(0,import_jsx_runtime.jsx)(J,_extends$3({},ie,{children:h}))}))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getMenuUtilityClass(e){return generateUtilityClass(`MuiMenu`,e)}var menuClasses=generateUtilityClasses(`MuiMenu`,[`root`,`paper`,`list`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_styled(),init_DefaultPropsProvider();var _excluded$23=[`onEntering`],_excluded2$1=[`autoFocus`,`children`,`className`,`disableAutoFocusItem`,`MenuListProps`,`onClose`,`open`,`PaperProps`,`PopoverClasses`,`transitionDuration`,`TransitionProps`,`variant`,`slots`,`slotProps`],RTL_ORIGIN={vertical:`top`,horizontal:`right`},LTR_ORIGIN={vertical:`top`,horizontal:`left`},useUtilityClasses$21=e=>{let{classes:t}=e;return composeClasses({root:[`root`],paper:[`paper`],list:[`list`]},getMenuUtilityClass,t)},MenuRoot=styled$1(Popover,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiMenu`,slot:`Root`,overridesResolver:(e,t)=>t.root})({}),MenuPaper=styled$1(PopoverPaper,{name:`MuiMenu`,slot:`Paper`,overridesResolver:(e,t)=>t.paper})({maxHeight:`calc(100% - 96px)`,WebkitOverflowScrolling:`touch`}),MenuMenuList=styled$1(MenuList,{name:`MuiMenu`,slot:`List`,overridesResolver:(e,t)=>t.list})({outline:0}),Menu=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiMenu`}),{autoFocus:s=!0,children:l,className:u,disableAutoFocusItem:d=!1,MenuListProps:f={},onClose:m,open:h,PaperProps:v={},PopoverClasses:y,transitionDuration:b=`auto`,TransitionProps:{onEntering:x}={},variant:S=`selectedMenu`,slots:C={},slotProps:T={}}=o,E=_objectWithoutPropertiesLoose$3(o.TransitionProps,_excluded$23),D=_objectWithoutPropertiesLoose$3(o,_excluded2$1),O=useRtl(),k=_extends$3({},o,{autoFocus:s,disableAutoFocusItem:d,MenuListProps:f,onEntering:x,PaperProps:v,transitionDuration:b,TransitionProps:E,variant:S}),j=useUtilityClasses$21(k),M=s&&!d&&h,N=import_react$24.useRef(null),F=(e,t)=>{N.current&&N.current.adjustStyleForScrollbar(e,{direction:O?`rtl`:`ltr`}),x&&x(e,t)},I=e=>{e.key===`Tab`&&(e.preventDefault(),m&&m(e,`tabKeyDown`))},L=-1;import_react$24.Children.map(l,(e,t)=>{import_react$24.isValidElement(e)&&(e.props.disabled||(S===`selectedMenu`&&e.props.selected||L===-1)&&(L=t))});let R=C.paper??MenuPaper,z=T.paper??v,B=useSlotProps({elementType:C.root,externalSlotProps:T.root,ownerState:k,className:[j.root,u]}),V=useSlotProps({elementType:R,externalSlotProps:z,ownerState:k,className:j.paper});return(0,import_jsx_runtime.jsx)(MenuRoot,_extends$3({onClose:m,anchorOrigin:{vertical:`bottom`,horizontal:O?`right`:`left`},transformOrigin:O?RTL_ORIGIN:LTR_ORIGIN,slots:{paper:R,root:C.root},slotProps:{root:B,paper:V},open:h,ref:t,transitionDuration:b,TransitionProps:_extends$3({onEntering:F},E),ownerState:k},D,{classes:y,children:(0,import_jsx_runtime.jsx)(MenuMenuList,_extends$3({onKeyDown:I,actions:N,autoFocus:s&&(L===-1||d),autoFocusItem:M,variant:S},f,{className:clsx$1(j.list,f.className),children:l}))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getNativeSelectUtilityClasses(e){return generateUtilityClass(`MuiNativeSelect`,e)}var nativeSelectClasses=generateUtilityClasses(`MuiNativeSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`icon`,`iconOpen`,`iconFilled`,`iconOutlined`,`iconStandard`,`nativeInput`,`error`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_styled();var _excluded$22=[`className`,`disabled`,`error`,`IconComponent`,`inputRef`,`variant`],useUtilityClasses$20=e=>{let{classes:t,variant:n,disabled:a,multiple:o,open:s,error:l}=e;return composeClasses({select:[`select`,n,a&&`disabled`,o&&`multiple`,l&&`error`],icon:[`icon`,`icon${capitalize_default(n)}`,s&&`iconOpen`,a&&`disabled`]},getNativeSelectUtilityClasses,t)},nativeSelectSelectStyles=({ownerState:e,theme:t})=>_extends$3({MozAppearance:`none`,WebkitAppearance:`none`,userSelect:`none`,borderRadius:0,cursor:`pointer`,"&:focus":_extends$3({},t.vars?{backgroundColor:`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:t.palette.mode===`light`?`rgba(0, 0, 0, 0.05)`:`rgba(255, 255, 255, 0.05)`},{borderRadius:0}),"&::-ms-expand":{display:`none`},[`&.${nativeSelectClasses.disabled}`]:{cursor:`default`},"&[multiple]":{height:`auto`},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(t.vars||t).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},e.variant===`filled`&&{"&&&":{paddingRight:32}},e.variant===`outlined`&&{borderRadius:(t.vars||t).shape.borderRadius,"&:focus":{borderRadius:(t.vars||t).shape.borderRadius},"&&&":{paddingRight:32}}),NativeSelectSelect=styled$1(`select`,{name:`MuiNativeSelect`,slot:`Select`,shouldForwardProp:rootShouldForwardProp,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${nativeSelectClasses.multiple}`]:t.multiple}]}})(nativeSelectSelectStyles),nativeSelectIconStyles=({ownerState:e,theme:t})=>_extends$3({position:`absolute`,right:0,top:`calc(50% - .5em)`,pointerEvents:`none`,color:(t.vars||t).palette.action.active,[`&.${nativeSelectClasses.disabled}`]:{color:(t.vars||t).palette.action.disabled}},e.open&&{transform:`rotate(180deg)`},e.variant===`filled`&&{right:7},e.variant===`outlined`&&{right:7}),NativeSelectIcon=styled$1(`svg`,{name:`MuiNativeSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${capitalize_default(n.variant)}`],n.open&&t.iconOpen]}})(nativeSelectIconStyles),NativeSelectInput=import_react$24.forwardRef(function(e,t){let{className:n,disabled:a,error:o,IconComponent:s,inputRef:l,variant:u=`standard`}=e,d=_objectWithoutPropertiesLoose$3(e,_excluded$22),f=_extends$3({},e,{disabled:a,variant:u,error:o}),m=useUtilityClasses$20(f);return(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(NativeSelectSelect,_extends$3({ownerState:f,className:clsx$1(m.select,n),disabled:a,ref:l||t},d)),e.multiple?null:(0,import_jsx_runtime.jsx)(NativeSelectIcon,{as:s,ownerState:f,className:m.icon})]})});init_generateUtilityClasses(),init_generateUtilityClass();function getSelectUtilityClasses(e){return generateUtilityClass(`MuiSelect`,e)}var selectClasses=generateUtilityClasses(`MuiSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`focused`,`icon`,`iconOpen`,`iconFilled`,`iconOutlined`,`iconStandard`,`nativeInput`,`error`]);init_extends(),init_objectWithoutPropertiesLoose(),init_formatMuiErrorMessage(),init_clsx(),init_composeClasses(),init_useId$1(),init_ownerDocument(),init_capitalize(),init_styled(),init_useForkRef(),init_useControlled();var _span,_excluded$21=`aria-describedby.aria-label.autoFocus.autoWidth.children.className.defaultOpen.defaultValue.disabled.displayEmpty.error.IconComponent.inputRef.labelId.MenuProps.multiple.name.onBlur.onChange.onClose.onFocus.onOpen.open.readOnly.renderValue.SelectDisplayProps.tabIndex.type.value.variant`.split(`.`),SelectSelect=styled$1(`div`,{name:`MuiSelect`,slot:`Select`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`&.${selectClasses.select}`]:t.select},{[`&.${selectClasses.select}`]:t[n.variant]},{[`&.${selectClasses.error}`]:t.error},{[`&.${selectClasses.multiple}`]:t.multiple}]}})(nativeSelectSelectStyles,{[`&.${selectClasses.select}`]:{height:`auto`,minHeight:`1.4375em`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,overflow:`hidden`}}),SelectIcon=styled$1(`svg`,{name:`MuiSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${capitalize_default(n.variant)}`],n.open&&t.iconOpen]}})(nativeSelectIconStyles),SelectNativeInput=styled$1(`input`,{shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`classes`,name:`MuiSelect`,slot:`NativeInput`,overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:`absolute`,opacity:0,pointerEvents:`none`,width:`100%`,boxSizing:`border-box`});function areEqualValues(e,t){return typeof t==`object`&&t?e===t:String(e)===String(t)}function isEmpty(e){return e==null||typeof e==`string`&&!e.trim()}var useUtilityClasses$19=e=>{let{classes:t,variant:n,disabled:a,multiple:o,open:s,error:l}=e;return composeClasses({select:[`select`,n,a&&`disabled`,o&&`multiple`,l&&`error`],icon:[`icon`,`icon${capitalize_default(n)}`,s&&`iconOpen`,a&&`disabled`],nativeInput:[`nativeInput`]},getSelectUtilityClasses,t)},SelectInput=import_react$24.forwardRef(function(e,t){var n;let{"aria-describedby":a,"aria-label":o,autoFocus:s,autoWidth:l,children:u,className:d,defaultOpen:f,defaultValue:m,disabled:h,displayEmpty:v,error:y=!1,IconComponent:b,inputRef:x,labelId:S,MenuProps:C={},multiple:T,name:E,onBlur:D,onChange:O,onClose:k,onFocus:j,onOpen:M,open:N,readOnly:F,renderValue:I,SelectDisplayProps:L={},tabIndex:R,value:z,variant:B=`standard`}=e,V=_objectWithoutPropertiesLoose$3(e,_excluded$21),[H,U]=useControlled_default({controlled:z,default:m,name:`Select`}),[W,G]=useControlled_default({controlled:N,default:f,name:`Select`}),ee=import_react$24.useRef(null),te=import_react$24.useRef(null),[K,q]=import_react$24.useState(null),{current:ne}=import_react$24.useRef(N!=null),[re,J]=import_react$24.useState(),ie=useForkRef_default(t,x),ae=import_react$24.useCallback(e=>{te.current=e,e&&q(e)},[]),oe=K?.parentNode;import_react$24.useImperativeHandle(ie,()=>({focus:()=>{te.current.focus()},node:ee.current,value:H}),[H]),import_react$24.useEffect(()=>{f&&W&&K&&!ne&&(J(l?null:oe.clientWidth),te.current.focus())},[K,l]),import_react$24.useEffect(()=>{s&&te.current.focus()},[s]),import_react$24.useEffect(()=>{if(!S)return;let e=ownerDocument_default(te.current).getElementById(S);if(e){let t=()=>{getSelection().isCollapsed&&te.current.focus()};return e.addEventListener(`click`,t),()=>{e.removeEventListener(`click`,t)}}},[S]);let se=(e,t)=>{e?M&&M(t):k&&k(t),ne||(J(l?null:oe.clientWidth),G(e))},ce=e=>{e.button===0&&(e.preventDefault(),te.current.focus(),se(!0,e))},Y=e=>{se(!1,e)},le=import_react$24.Children.toArray(u),ue=e=>{let t=le.find(t=>t.props.value===e.target.value);t!==void 0&&(U(t.props.value),O&&O(e,t))},de=e=>t=>{let n;if(t.currentTarget.hasAttribute(`tabindex`)){if(T){n=Array.isArray(H)?H.slice():[];let t=H.indexOf(e.props.value);t===-1?n.push(e.props.value):n.splice(t,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),H!==n&&(U(n),O)){let a=t.nativeEvent||t,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:n,name:E}}),O(o,e)}T||se(!1,t)}},X=e=>{F||[` `,`ArrowUp`,`ArrowDown`,`Enter`].indexOf(e.key)!==-1&&(e.preventDefault(),se(!0,e))},fe=K!==null&&W,pe=e=>{!fe&&D&&(Object.defineProperty(e,"target",{writable:!0,value:{value:H,name:E}}),D(e))};delete V[`aria-invalid`];let me,he,ge=[],Z=!1;(isFilled({value:H})||v)&&(I?me=I(H):Z=!0);let _e=le.map(e=>{if(!import_react$24.isValidElement(e))return null;let t;if(T){if(!Array.isArray(H))throw Error(formatMuiErrorMessage(2));t=H.some(t=>areEqualValues(t,e.props.value)),t&&Z&&ge.push(e.props.children)}else t=areEqualValues(H,e.props.value),t&&Z&&(he=e.props.children);return import_react$24.cloneElement(e,{"aria-selected":t?`true`:`false`,onClick:de(e),onKeyUp:t=>{t.key===` `&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:`option`,selected:t,value:void 0,"data-value":e.props.value})});Z&&(me=T?ge.length===0?null:ge.reduce((e,t,n)=>(e.push(t),n<ge.length-1&&e.push(`, `),e),[]):he);let Q=re;!l&&ne&&K&&(Q=oe.clientWidth);let $;$=R===void 0?h?null:0:R;let ve=L.id||(E?`mui-component-select-${E}`:void 0),ye=_extends$3({},e,{variant:B,value:H,open:fe,error:y}),be=useUtilityClasses$19(ye),xe=_extends$3({},C.PaperProps,C.slotProps?.paper),Se=useId();return(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(SelectSelect,_extends$3({ref:ae,tabIndex:$,role:`combobox`,"aria-controls":Se,"aria-disabled":h?`true`:void 0,"aria-expanded":fe?`true`:`false`,"aria-haspopup":`listbox`,"aria-label":o,"aria-labelledby":[S,ve].filter(Boolean).join(` `)||void 0,"aria-describedby":a,onKeyDown:X,onMouseDown:h||F?null:ce,onBlur:pe,onFocus:j},L,{ownerState:ye,className:clsx$1(L.className,be.select,d),id:ve,children:isEmpty(me)?_span||=(0,import_jsx_runtime.jsx)(`span`,{className:`notranslate`,children:``}):me})),(0,import_jsx_runtime.jsx)(SelectNativeInput,_extends$3({"aria-invalid":y,value:Array.isArray(H)?H.join(`,`):H,name:E,ref:ee,"aria-hidden":!0,onChange:ue,tabIndex:-1,disabled:h,className:be.nativeInput,autoFocus:s,ownerState:ye},V)),(0,import_jsx_runtime.jsx)(SelectIcon,{as:b,className:be.icon,ownerState:ye}),(0,import_jsx_runtime.jsx)(Menu,_extends$3({id:`menu-${E||``}`,anchorEl:oe,open:fe,onClose:Y,anchorOrigin:{vertical:`bottom`,horizontal:`center`},transformOrigin:{vertical:`top`,horizontal:`center`}},C,{MenuListProps:_extends$3({"aria-labelledby":S,role:`listbox`,"aria-multiselectable":T?`true`:void 0,disableListWrap:!0,id:Se},C.MenuListProps),slotProps:_extends$3({},C.slotProps,{paper:_extends$3({},xe,{style:_extends$3({minWidth:Q},xe==null?null:xe.style)})}),children:_e}))]})});init_createSvgIcon();var ArrowDropDown_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M7 10l5 5 5-5z`}),`ArrowDropDown`);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_deepmerge(),init_getReactElementRef(),init_DefaultPropsProvider(),init_useForkRef(),init_styled();var _excluded$20=[`autoWidth`,`children`,`classes`,`className`,`defaultOpen`,`displayEmpty`,`IconComponent`,`id`,`input`,`inputProps`,`label`,`labelId`,`MenuProps`,`multiple`,`native`,`onClose`,`onOpen`,`open`,`renderValue`,`SelectDisplayProps`,`variant`],_excluded2=[`root`],useUtilityClasses$18=e=>{let{classes:t}=e;return t},styledRootConfig={name:`MuiSelect`,overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>rootShouldForwardProp(e)&&e!==`variant`,slot:`Root`},StyledInput=styled$1(Input,styledRootConfig)(``),StyledOutlinedInput=styled$1(OutlinedInput,styledRootConfig)(``),StyledFilledInput=styled$1(FilledInput,styledRootConfig)(``),Select=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({name:`MuiSelect`,props:e}),{autoWidth:a=!1,children:o,classes:s={},className:l,defaultOpen:u=!1,displayEmpty:d=!1,IconComponent:f=ArrowDropDown_default,id:m,input:h,inputProps:v,label:y,labelId:b,MenuProps:x,multiple:S=!1,native:C=!1,onClose:T,onOpen:E,open:D,renderValue:O,SelectDisplayProps:k,variant:j=`outlined`}=n,M=_objectWithoutPropertiesLoose$3(n,_excluded$20),N=C?NativeSelectInput:SelectInput,F=formControlState({props:n,muiFormControl:useFormControl(),states:[`variant`,`error`]}),I=F.variant||j,L=_extends$3({},n,{variant:I,classes:s}),R=useUtilityClasses$18(L),z=_objectWithoutPropertiesLoose$3(R,_excluded2),B=h||{standard:(0,import_jsx_runtime.jsx)(StyledInput,{ownerState:L}),outlined:(0,import_jsx_runtime.jsx)(StyledOutlinedInput,{label:y,ownerState:L}),filled:(0,import_jsx_runtime.jsx)(StyledFilledInput,{ownerState:L})}[I],V=useForkRef_default(t,getReactElementRef(B));return(0,import_jsx_runtime.jsx)(import_react$24.Fragment,{children:import_react$24.cloneElement(B,_extends$3({inputComponent:N,inputProps:_extends$3({children:o,error:F.error,IconComponent:f,variant:I,type:void 0,multiple:S},C?{id:m}:{autoWidth:a,defaultOpen:u,displayEmpty:d,labelId:b,MenuProps:x,onClose:T,onOpen:E,open:D,renderValue:O,SelectDisplayProps:_extends$3({id:m},k)},v,{classes:v?deepmerge(z,v.classes):z},h?h.props.inputProps:{})},(S&&C||d)&&I===`outlined`?{notched:!0}:{},{ref:V,className:clsx$1(B.props.className,l,R.root)},!h&&{variant:I},M))})});Select.muiName=`Select`,init_generateUtilityClasses(),init_generateUtilityClass();function getTextFieldUtilityClass(e){return generateUtilityClass(`MuiTextField`,e)}var textFieldClasses=generateUtilityClasses(`MuiTextField`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_useId$1(),init_styled(),init_DefaultPropsProvider();var _excluded$19=`autoComplete.autoFocus.children.className.color.defaultValue.disabled.error.FormHelperTextProps.fullWidth.helperText.id.InputLabelProps.inputProps.InputProps.inputRef.label.maxRows.minRows.multiline.name.onBlur.onChange.onFocus.placeholder.required.rows.select.SelectProps.type.value.variant`.split(`.`),variantComponent={standard:Input,filled:FilledInput,outlined:OutlinedInput},useUtilityClasses$17=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getTextFieldUtilityClass,t)},TextFieldRoot=styled$1(FormControl,{name:`MuiTextField`,slot:`Root`,overridesResolver:(e,t)=>t.root})({}),TextField=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTextField`}),{autoComplete:a,autoFocus:o=!1,children:s,className:l,color:u=`primary`,defaultValue:d,disabled:f=!1,error:m=!1,FormHelperTextProps:h,fullWidth:v=!1,helperText:y,id:b,InputLabelProps:x,inputProps:S,InputProps:C,inputRef:T,label:E,maxRows:D,minRows:O,multiline:k=!1,name:j,onBlur:M,onChange:N,onFocus:F,placeholder:I,required:L=!1,rows:R,select:z=!1,SelectProps:B,type:V,value:H,variant:U=`outlined`}=n,W=_objectWithoutPropertiesLoose$3(n,_excluded$19),G=_extends$3({},n,{autoFocus:o,color:u,disabled:f,error:m,fullWidth:v,multiline:k,required:L,select:z,variant:U}),ee=useUtilityClasses$17(G),te={};U===`outlined`&&(x&&x.shrink!==void 0&&(te.notched=x.shrink),te.label=E),z&&((!B||!B.native)&&(te.id=void 0),te[`aria-describedby`]=void 0);let K=useId(b),q=y&&K?`${K}-helper-text`:void 0,ne=E&&K?`${K}-label`:void 0,re=variantComponent[U],J=(0,import_jsx_runtime.jsx)(re,_extends$3({"aria-describedby":q,autoComplete:a,autoFocus:o,defaultValue:d,fullWidth:v,multiline:k,name:j,rows:R,maxRows:D,minRows:O,type:V,value:H,id:K,inputRef:T,onBlur:M,onChange:N,onFocus:F,placeholder:I,inputProps:S},te,C));return(0,import_jsx_runtime.jsxs)(TextFieldRoot,_extends$3({className:clsx$1(ee.root,l),disabled:f,error:m,fullWidth:v,ref:t,required:L,color:u,variant:U,ownerState:G},W,{children:[E!=null&&E!==``&&(0,import_jsx_runtime.jsx)(InputLabel,_extends$3({htmlFor:K,id:ne},x,{children:E})),z?(0,import_jsx_runtime.jsx)(Select,_extends$3({"aria-describedby":q,id:K,labelId:ne,value:H,input:J},B,{children:s})):J,y&&(0,import_jsx_runtime.jsx)(FormHelperText,_extends$3({id:q},h,{children:y}))]}))}),defaultFormatter=e=>`${e}`,AnimatedNumber=({number:e,formatter:t=defaultFormatter})=>{let n=usePrefersReducedMotion(),[a,o]=(0,import_react$24.useState)(e),s=(0,import_react$24.useRef)(e),l=(0,import_react$24.useRef)(null);return(0,import_react$24.useEffect)(()=>{if(l.current?.cancel(),l.current=null,n||s.current===e){s.current=e,o(e);return}return l.current=(0,import_shifty.tween)({easing:`easeOutQuad`,duration:750,render:({number:e})=>{o(Number(e))},from:{number:s.current},to:{number:e}}),s.current=e,()=>{l.current?.cancel(),l.current=null}},[e,n]),(0,import_jsx_runtime.jsx)(`span`,{className:`AnimatedNumber`,children:t(a)})};AnimatedNumber.propTypes={formatter:import_prop_types$1.func,number:import_prop_types$1.number.isRequired};var QUANTITY_INPUT_PLACEHOLDER_TEXT=`0`,QuantityNumberFormat=(0,import_react$24.forwardRef)(({min:e,max:t,onChange:n,...a},o)=>(0,import_jsx_runtime.jsx)(NumberFormat,{isNumericString:!0,thousandSeparator:!0,getInputRef:o,...a,allowNegative:!1,decimalScale:0,onValueChange:({floatValue:e=0})=>n(Math.min(e,t))})),QuantityTextInput=({handleSubmit:e,handleUpdateNumber:t,maxQuantity:n,value:a})=>(0,import_jsx_runtime.jsx)(TextField,{variant:`standard`,value:a,placeholder:`0`,inputProps:{pattern:`[0-9]*`,min:0,max:n},onChange:t,onFocus:e=>{e.target.select()},onKeyUp:({which:t})=>{t===13&&e()},InputProps:{inputComponent:QuantityNumberFormat,endAdornment:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Span,{sx:{px:1},children:`/`}),(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:n,formatter:integerString})]})}}),QuantityInput=({handleSubmit:e,handleUpdateNumber:t,maxQuantity:n,setQuantity:a,value:o})=>{let s=()=>{let e=o-1;e===0&&(e=n),a(e)},l=()=>{let e=o+1;e>n&&(e=1),a(e)};return(0,import_jsx_runtime.jsxs)(Div,{className:`QuantityInput`,sx:{"& .MuiInput-root":{margin:`1px 0.25em 0`,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{margin:`0 0.25em 0 0.5em`},"& input":{textAlign:`right`}}},children:[(0,import_jsx_runtime.jsx)(QuantityTextInput,{handleSubmit:e,handleUpdateNumber:t,maxQuantity:n,value:o}),(0,import_jsx_runtime.jsxs)(Div,{className:`number-nudger-container`,sx:{display:`flex`,flexDirection:`column`,position:`absolute`,top:`0.25em`,right:0,"& button":{margin:`0.25em 0.5em`,"& svg":{marginBottom:0}}},children:[(0,import_jsx_runtime.jsx)(Fab,{disabled:!o,"aria-label":`Increment`,color:`primary`,onClick:l,size:`small`,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowUp.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{disabled:!o,"aria-label":`Decrement`,color:`primary`,onClick:s,size:`small`,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowDown.default,{})})]})]})};QuantityInput.propTypes={handleSubmit:import_prop_types$1.func.isRequired,handleUpdateNumber:import_prop_types$1.func.isRequired,maxQuantity:import_prop_types$1.number.isRequired,setQuantity:import_prop_types$1.func.isRequired,value:import_prop_types$1.number},QuantityInput.defaultProps={value:1};var ValueIndicator=({poorValue:e})=>(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:`${e?`Poor`:`Good`} opportunity`,children:e?(0,import_jsx_runtime.jsx)(import_KeyboardArrowDown.default,{color:`error`}):(0,import_jsx_runtime.jsx)(import_KeyboardArrowUp.default,{color:`primary`})}),PurchaseValueIndicator=({id:e,value:t,valueAdjustments:n,poorValue:a=t>itemsMap[e].value})=>(0,import_jsx_runtime.jsx)(ValueIndicator,{id:e,poorValue:a,value:t,valueAdjustments:n}),SellValueIndicator=({id:e,value:t,valueAdjustments:n,poorValue:a=t<itemsMap[e].value})=>(0,import_jsx_runtime.jsx)(ValueIndicator,{id:e,poorValue:a,value:t,valueAdjustments:n}),Item=({item:e,completedAchievements:t,handleItemPurchaseClick:n,handleItemSelectClick:a,handleItemSellClick:o,historicalValueAdjustments:s,inventory:l,inventoryLimit:u,isPurchaseView:d,isSelectView:f,isSelected:m,isSellView:h,money:v,playerInventoryQuantities:y,showQuantity:b,valueAdjustments:x,item:{description:S,doesPriceFluctuate:C,id:T,isReplantable:E,name:D,type:O,value:k}={},adjustedValue:j=h&&isItemSoldInShop(e)?getResaleValue(e):getItemCurrentValue(e,x),previousDayAdjustedValue:M=h&&isItemSoldInShop(e)||s.length===0||!C?null:getItemCurrentValue(e,s[0]),maxQuantityPlayerCanPurchase:N=Math.max(0,Math.min(Math.floor(v/j),inventorySpaceRemaining({inventory:l,inventoryLimit:u})))})=>{let[F,I]=(0,import_react$24.useState)(1),[L,R]=(0,import_react$24.useState)(1);(0,import_react$24.useEffect)(()=>{I(Math.min(N,Math.max(1,F)))},[N,F]),(0,import_react$24.useEffect)(()=>{R(Math.min(y[T],L))},[T,y,L]);let z=()=>{n?.(e,F),I(Math.min(1,N))},B=()=>{o?.(e,L),R(Math.min(1,y[T]))},V=(0,import_jsx_runtime.jsx)(`img`,{src:items[T],alt:D}),H=j;return itemIds$1.has(T)||(H*=getSalePriceMultiplier(t)),(0,import_jsx_runtime.jsxs)(Card,{className:(0,import_classnames.default)(`Item`,{"is-selectable":f,"is-selected":m}),onClick:f?()=>a?.(e):noop$3,raised:m,sx:{position:`relative`,cursor:f?`pointer`:void 0,"& img":{width:`3em`},"& svg":{marginBottom:`-0.25em`},"& .MuiCardContent-root":{paddingTop:0,"& p":{paddingTop:`1em`}},"& .MuiCardHeader-subheader":{userSelect:`none`}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{avatar:!d&&S?(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:S}),children:V}):V,title:D,subheader:(0,import_jsx_runtime.jsxs)(`div`,{children:[d&&(0,import_jsx_runtime.jsxs)(`p`,{children:[(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:M===null?``:`Yesterday's price: ${moneyString(M)}`,children:(0,import_jsx_runtime.jsxs)(`span`,{children:[`Price:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:j,formatter:moneyString})]})}),t?.[`unlock-crop-price-guide`]&&x[T]&&(0,import_jsx_runtime.jsx)(PurchaseValueIndicator,{id:T,value:j,valueAdjustments:x})]}),d&&(0,import_jsx_runtime.jsxs)(`p`,{children:[`Total:`,` `,F?(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:F*j,formatter:moneyString}):null]}),h&&(0,import_jsx_runtime.jsxs)(`p`,{children:[(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:M===null?``:`Yesterday's sell price: ${moneyString(M)}`,children:(0,import_jsx_runtime.jsxs)(`span`,{children:[`Sell price:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:H,formatter:moneyString})]})}),t?.[`unlock-crop-price-guide`]&&x[T]&&(0,import_jsx_runtime.jsx)(SellValueIndicator,{id:T,value:j,valueAdjustments:x})]}),h&&(0,import_jsx_runtime.jsxs)(`p`,{children:[`Total:`,` `,L?(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:L*H,formatter:moneyString}):null]}),b&&(0,import_jsx_runtime.jsxs)(`p`,{children:[(0,import_jsx_runtime.jsx)(`strong`,{children:`In inventory:`}),` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:y[T],formatter:integerString})]}),d&&e.growsInto&&(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to mature:`,` `,getCropLifecycleDuration({cropTimeline:getFinalCropItemFromSeedItem(e)?.cropTimeline??getFinalCropItemFromSeedItem(e)?.treeTimeline??[]})]})]})}),d&&(S||E)&&(0,import_jsx_runtime.jsxs)(CardContent,{children:[S&&(0,import_jsx_runtime.jsx)(Typography,{children:S}),E&&(0,import_jsx_runtime.jsx)(Typography,{color:`textSecondary`,children:`Once planted in the field, this item can be returned to your inventory with the hoe and then replanted elsewhere.`})]}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[f&&(0,import_jsx_runtime.jsx)(Button,{className:`select`,color:`primary`,variant:m?`contained`:`outlined`,children:`Select`}),d&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`purchase`,color:`primary`,disabled:!F||j*F>v,onClick:z,variant:`contained`,children:`Buy`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:z,handleUpdateNumber:I,maxQuantity:N,setQuantity:I,value:F})]}),h&&(0,import_jsx_runtime.jsxs)(Box,{display:`flex`,children:[(0,import_jsx_runtime.jsx)(Button,{className:`sell`,color:`error`,disabled:L===0||!L,onClick:B,variant:`contained`,children:`Sell`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:B,handleUpdateNumber:R,maxQuantity:y[T],setQuantity:R,value:L})]})]})]})};Item.propTypes={adjustedValue:import_prop_types$1.number,completedAchievements:import_prop_types$1.object.isRequired,handleItemPurchaseClick:import_prop_types$1.func,handleItemSelectClick:import_prop_types$1.func,handleItemSellClick:import_prop_types$1.func,historicalValueAdjustments:import_prop_types$1.array.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isPurchaseView:import_prop_types$1.bool,isSelectView:import_prop_types$1.bool,isSelected:import_prop_types$1.bool,isSellView:import_prop_types$1.bool,item:import_prop_types$1.object.isRequired,money:import_prop_types$1.number.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,showQuantity:import_prop_types$1.bool,valueAdjustments:import_prop_types$1.object.isRequired};function Consumer$28(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Item,{...t,...n,...e})})}var require_lodash_sortby=__commonJSMin(((e,t)=>{var n=200,a=`Expected a function`,o=`__lodash_hash_undefined__`,s=1,l=2,u=9007199254740991,d=`[object Arguments]`,f=`[object Array]`,m=`[object Boolean]`,h=`[object Date]`,v=`[object Error]`,y=`[object Function]`,b=`[object GeneratorFunction]`,x=`[object Map]`,S=`[object Number]`,C=`[object Object]`,T=`[object Promise]`,E=`[object RegExp]`,D=`[object Set]`,O=`[object String]`,k=`[object Symbol]`,j=`[object WeakMap]`,M=`[object ArrayBuffer]`,N=`[object DataView]`,F=`[object Float32Array]`,I=`[object Float64Array]`,L=`[object Int8Array]`,R=`[object Int16Array]`,z=`[object Int32Array]`,B=`[object Uint8Array]`,V=`[object Uint8ClampedArray]`,H=`[object Uint16Array]`,U=`[object Uint32Array]`,W=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,G=/^\w*$/,ee=/^\./,te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,K=/[\\^$.*+?()[\]{}|]/g,q=/\\(\\)?/g,ne=/^\[object .+?Constructor\]$/,re=/^(?:0|[1-9]\d*)$/,J={};J[F]=J[I]=J[L]=J[R]=J[z]=J[B]=J[V]=J[H]=J[U]=!0,J[d]=J[f]=J[M]=J[m]=J[N]=J[h]=J[v]=J[y]=J[x]=J[S]=J[C]=J[E]=J[D]=J[O]=J[j]=!1;var ie={}.Object===Object&&{},ae=typeof self==`object`&&self&&self.Object===Object&&self,oe=ie||ae||Function(`return this`)(),se=typeof e==`object`&&e&&!e.nodeType&&e,ce=se&&typeof t==`object`&&t&&!t.nodeType&&t,Y=ce&&ce.exports===se&&ie.process,le=function(){try{return Y&&Y.binding(`util`)}catch{}}(),ue=le&&le.isTypedArray;function de(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function X(e,t){for(var n=-1,a=e?e.length:0,o=Array(a);++n<a;)o[n]=t(e[n],n,e);return o}function fe(e,t){for(var n=-1,a=t.length,o=e.length;++n<a;)e[o+n]=t[n];return e}function pe(e,t){for(var n=-1,a=e?e.length:0;++n<a;)if(t(e[n],n,e))return!0;return!1}function me(e){return function(t){return t?.[e]}}function he(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}function ge(e,t){for(var n=-1,a=Array(e);++n<e;)a[n]=t(n);return a}function Z(e){return function(t){return e(t)}}function _e(e,t){return e?.[t]}function Q(e){var t=!1;if(e!=null&&typeof e.toString!=`function`)try{t=!!(e+``)}catch{}return t}function $(e){var t=-1,n=Array(e.size);return e.forEach(function(e,a){n[++t]=[a,e]}),n}function ve(e,t){return function(n){return e(t(n))}}function ye(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var be=Array.prototype,xe=Function.prototype,Se=Object.prototype,Ce=oe[`__core-js_shared__`],we=function(){var e=/[^.]+$/.exec(Ce&&Ce.keys&&Ce.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}(),Te=xe.toString,Ee=Se.hasOwnProperty,De=Se.toString,Oe=RegExp(`^`+Te.call(Ee).replace(K,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`),ke=oe.Symbol,Ae=oe.Uint8Array,je=Se.propertyIsEnumerable,Me=be.splice,Ne=ke?ke.isConcatSpreadable:void 0,Pe=ve(Object.keys,Object),Fe=Math.max,Ie=on(oe,`DataView`),Le=on(oe,`Map`),Re=on(oe,`Promise`),ze=on(oe,`Set`),Be=on(oe,`WeakMap`),Ve=on(Object,`create`),He=bn(Ie),Ue=bn(Le),We=bn(Re),Ge=bn(ze),Ke=bn(Be),qe=ke?ke.prototype:void 0,Je=qe?qe.valueOf:void 0,Ye=qe?qe.toString:void 0;function Xe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function Ze(){this.__data__=Ve?Ve(null):{}}function Qe(e){return this.has(e)&&delete this.__data__[e]}function $e(e){var t=this.__data__;if(Ve){var n=t[e];return n===o?void 0:n}return Ee.call(t,e)?t[e]:void 0}function et(e){var t=this.__data__;return Ve?t[e]!==void 0:Ee.call(t,e)}function tt(e,t){var n=this.__data__;return n[e]=Ve&&t===void 0?o:t,this}Xe.prototype.clear=Ze,Xe.prototype.delete=Qe,Xe.prototype.get=$e,Xe.prototype.has=et,Xe.prototype.set=tt;function nt(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function rt(){this.__data__=[]}function it(e){var t=this.__data__,n=Dt(t,e);return n<0?!1:(n==t.length-1?t.pop():Me.call(t,n,1),!0)}function at(e){var t=this.__data__,n=Dt(t,e);return n<0?void 0:t[n][1]}function ot(e){return Dt(this.__data__,e)>-1}function st(e,t){var n=this.__data__,a=Dt(n,e);return a<0?n.push([e,t]):n[a][1]=t,this}nt.prototype.clear=rt,nt.prototype.delete=it,nt.prototype.get=at,nt.prototype.has=ot,nt.prototype.set=st;function ct(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function ut(){this.__data__={hash:new Xe,map:new(Le||nt),string:new Xe}}function dt(e){return rn(this,e).delete(e)}function ft(e){return rn(this,e).get(e)}function pt(e){return rn(this,e).has(e)}function mt(e,t){return rn(this,e).set(e,t),this}ct.prototype.clear=ut,ct.prototype.delete=dt,ct.prototype.get=ft,ct.prototype.has=pt,ct.prototype.set=mt;function ht(e){var t=-1,n=e?e.length:0;for(this.__data__=new ct;++t<n;)this.add(e[t])}function vt(e){return this.__data__.set(e,o),this}function yt(e){return this.__data__.has(e)}ht.prototype.add=ht.prototype.push=vt,ht.prototype.has=yt;function bt(e){this.__data__=new nt(e)}function xt(){this.__data__=new nt}function St(e){return this.__data__.delete(e)}function Ct(e){return this.__data__.get(e)}function wt(e){return this.__data__.has(e)}function Tt(e,t){var n=this.__data__;if(n instanceof nt){var a=n.__data__;if(!Le||a.length<199)return a.push([e,t]),this;n=this.__data__=new ct(a)}return n.set(e,t),this}bt.prototype.clear=xt,bt.prototype.delete=St,bt.prototype.get=Ct,bt.prototype.has=wt,bt.prototype.set=Tt;function Et(e,t){var n=Tn(e)||wn(e)?ge(e.length,String):[],a=n.length,o=!!a;for(var s in e)(t||Ee.call(e,s))&&!(o&&(s==`length`||un(s,a)))&&n.push(s);return n}function Dt(e,t){for(var n=e.length;n--;)if(Cn(e[n][0],t))return n;return-1}var Ot=Qt(jt);function kt(e,t,n,a,o){var s=-1,l=e.length;for(n||=ln,o||=[];++s<l;){var u=e[s];t>0&&n(u)?t>1?kt(u,t-1,n,a,o):fe(o,u):a||(o[o.length]=u)}return o}var At=$t();function jt(e,t){return e&&At(e,t,Ln)}function Mt(e,t){t=fn(t,e)?[t]:Yt(t);for(var n=0,a=t.length;e!=null&&n<a;)e=e[yn(t[n++])];return n&&n==a?e:void 0}function Nt(e){return De.call(e)}function Pt(e,t){return e!=null&&t in Object(e)}function Ft(e,t,n,a,o){return e===t?!0:e==null||t==null||!An(e)&&!jn(t)?e!==e&&t!==t:It(e,t,Ft,n,a,o)}function It(e,t,n,a,o,s){var l=Tn(e),u=Tn(t),m=f,h=f;l||(m=sn(e),m=m==d?C:m),u||(h=sn(t),h=h==d?C:h);var v=m==C&&!Q(e),y=h==C&&!Q(t),b=m==h;if(b&&!v)return s||=new bt,l||Nn(e)?en(e,t,n,a,o,s):tn(e,t,m,n,a,o,s);if(!(o&2)){var x=v&&Ee.call(e,`__wrapped__`),S=y&&Ee.call(t,`__wrapped__`);if(x||S){var T=x?e.value():e,E=S?t.value():t;return s||=new bt,n(T,E,a,o,s)}}return b?(s||=new bt,nn(e,t,n,a,o,s)):!1}function Lt(e,t,n,a){var o=n.length,s=o,l=!a;if(e==null)return!s;for(e=Object(e);o--;){var u=n[o];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<s;){u=n[o];var d=u[0],f=e[d],m=u[1];if(l&&u[2]){if(f===void 0&&!(d in e))return!1}else{var h=new bt;if(a)var v=a(f,m,d,e,t,h);if(!(v===void 0?Ft(m,f,a,3,h):v))return!1}}return!0}function Rt(e){return!An(e)||mn(e)?!1:(On(e)||Q(e)?Oe:ne).test(bn(e))}function zt(e){return jn(e)&&kn(e.length)&&!!J[De.call(e)]}function Bt(e){return typeof e==`function`?e:e==null?Rn:typeof e==`object`?Tn(e)?Wt(e[0],e[1]):Ut(e):zn(e)}function Vt(e){if(!hn(e))return Pe(e);var t=[];for(var n in Object(e))Ee.call(e,n)&&n!=`constructor`&&t.push(n);return t}function Ht(e,t){var n=-1,a=En(e)?Array(e.length):[];return Ot(e,function(e,o,s){a[++n]=t(e,o,s)}),a}function Ut(e){var t=an(e);return t.length==1&&t[0][2]?_n(t[0][0],t[0][1]):function(n){return n===e||Lt(n,e,t)}}function Wt(e,t){return fn(e)&&gn(t)?_n(yn(e),t):function(n){var a=Fn(n,e);return a===void 0&&a===t?In(n,e):Ft(t,a,void 0,3)}}function Gt(e,t,n){var a=-1;return t=X(t.length?t:[Rn],Z(Bt)),he(Ht(e,function(e,n,o){return{criteria:X(t,function(t){return t(e)}),index:++a,value:e}}),function(e,t){return Zt(e,t,n)})}function Kt(e){return function(t){return Mt(t,e)}}function qt(e,t){return t=Fe(t===void 0?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=Fe(n.length-t,0),s=Array(o);++a<o;)s[a]=n[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=n[a];return l[t]=s,de(e,this,l)}}function Jt(e){if(typeof e==`string`)return e;if(Mn(e))return Ye?Ye.call(e):``;var t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function Yt(e){return Tn(e)?e:vn(e)}function Xt(e,t){if(e!==t){var n=e!==void 0,a=e===null,o=e===e,s=Mn(e),l=t!==void 0,u=t===null,d=t===t,f=Mn(t);if(!u&&!f&&!s&&e>t||s&&l&&d&&!u&&!f||a&&l&&d||!n&&d||!o)return 1;if(!a&&!s&&!f&&e<t||f&&n&&o&&!a&&!s||u&&n&&o||!l&&o||!d)return-1}return 0}function Zt(e,t,n){for(var a=-1,o=e.criteria,s=t.criteria,l=o.length,u=n.length;++a<l;){var d=Xt(o[a],s[a]);if(d)return a>=u?d:d*(n[a]==`desc`?-1:1)}return e.index-t.index}function Qt(e,t){return function(n,a){if(n==null)return n;if(!En(n))return e(n,a);for(var o=n.length,s=t?o:-1,l=Object(n);(t?s--:++s<o)&&a(l[s],s,l)!==!1;);return n}}function $t(e){return function(t,n,a){for(var o=-1,s=Object(t),l=a(t),u=l.length;u--;){var d=l[e?u:++o];if(n(s[d],d,s)===!1)break}return t}}function en(e,t,n,a,o,s){var l=o&2,u=e.length,d=t.length;if(u!=d&&!(l&&d>u))return!1;var f=s.get(e);if(f&&s.get(t))return f==t;var m=-1,h=!0,v=o&1?new ht:void 0;for(s.set(e,t),s.set(t,e);++m<u;){var y=e[m],b=t[m];if(a)var x=l?a(b,y,m,t,e,s):a(y,b,m,e,t,s);if(x!==void 0){if(x)continue;h=!1;break}if(v){if(!pe(t,function(e,t){if(!v.has(t)&&(y===e||n(y,e,a,o,s)))return v.add(t)})){h=!1;break}}else if(!(y===b||n(y,b,a,o,s))){h=!1;break}}return s.delete(e),s.delete(t),h}function tn(e,t,n,a,o,s,l){switch(n){case N:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case M:return!(e.byteLength!=t.byteLength||!a(new Ae(e),new Ae(t)));case m:case h:case S:return Cn(+e,+t);case v:return e.name==t.name&&e.message==t.message;case E:case O:return e==t+``;case x:var u=$;case D:var d=s&2;if(u||=ye,e.size!=t.size&&!d)return!1;var f=l.get(e);if(f)return f==t;s|=1,l.set(e,t);var y=en(u(e),u(t),a,o,s,l);return l.delete(e),y;case k:if(Je)return Je.call(e)==Je.call(t)}return!1}function nn(e,t,n,a,o,s){var l=o&2,u=Ln(e),d=u.length;if(d!=Ln(t).length&&!l)return!1;for(var f=d;f--;){var m=u[f];if(!(l?m in t:Ee.call(t,m)))return!1}var h=s.get(e);if(h&&s.get(t))return h==t;var v=!0;s.set(e,t),s.set(t,e);for(var y=l;++f<d;){m=u[f];var b=e[m],x=t[m];if(a)var S=l?a(x,b,m,t,e,s):a(b,x,m,e,t,s);if(!(S===void 0?b===x||n(b,x,a,o,s):S)){v=!1;break}y||=m==`constructor`}if(v&&!y){var C=e.constructor,T=t.constructor;C!=T&&`constructor`in e&&`constructor`in t&&!(typeof C==`function`&&C instanceof C&&typeof T==`function`&&T instanceof T)&&(v=!1)}return s.delete(e),s.delete(t),v}function rn(e,t){var n=e.__data__;return pn(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function an(e){for(var t=Ln(e),n=t.length;n--;){var a=t[n],o=e[a];t[n]=[a,o,gn(o)]}return t}function on(e,t){var n=_e(e,t);return Rt(n)?n:void 0}var sn=Nt;(Ie&&sn(new Ie(new ArrayBuffer(1)))!=N||Le&&sn(new Le)!=x||Re&&sn(Re.resolve())!=T||ze&&sn(new ze)!=D||Be&&sn(new Be)!=j)&&(sn=function(e){var t=De.call(e),n=t==C?e.constructor:void 0,a=n?bn(n):void 0;if(a)switch(a){case He:return N;case Ue:return x;case We:return T;case Ge:return D;case Ke:return j}return t});function cn(e,t,n){t=fn(t,e)?[t]:Yt(t);for(var a,o=-1,s=t.length;++o<s;){var l=yn(t[o]);if(!(a=e!=null&&n(e,l)))break;e=e[l]}if(a)return a;var s=e?e.length:0;return!!s&&kn(s)&&un(l,s)&&(Tn(e)||wn(e))}function ln(e){return Tn(e)||wn(e)||!!(Ne&&e&&e[Ne])}function un(e,t){return t??=u,!!t&&(typeof e==`number`||re.test(e))&&e>-1&&e%1==0&&e<t}function dn(e,t,n){if(!An(n))return!1;var a=typeof t;return(a==`number`?En(n)&&un(t,n.length):a==`string`&&t in n)?Cn(n[t],e):!1}function fn(e,t){if(Tn(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||Mn(e)?!0:G.test(e)||!W.test(e)||t!=null&&e in Object(t)}function pn(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function mn(e){return!!we&&we in e}function hn(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||Se)}function gn(e){return e===e&&!An(e)}function _n(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}var vn=Sn(function(e){e=Pn(e);var t=[];return ee.test(e)&&t.push(``),e.replace(te,function(e,n,a,o){t.push(a?o.replace(q,`$1`):n||e)}),t});function yn(e){if(typeof e==`string`||Mn(e))return e;var t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function bn(e){if(e!=null){try{return Te.call(e)}catch{}try{return e+``}catch{}}return``}var xn=qt(function(e,t){if(e==null)return[];var n=t.length;return n>1&&dn(e,t[0],t[1])?t=[]:n>2&&dn(t[0],t[1],t[2])&&(t=[t[0]]),Gt(e,kt(t,1),[])});function Sn(e,t){if(typeof e!=`function`||t&&typeof t!=`function`)throw TypeError(`Expected a function`);var n=function(){var a=arguments,o=t?t.apply(this,a):a[0],s=n.cache;if(s.has(o))return s.get(o);var l=e.apply(this,a);return n.cache=s.set(o,l),l};return n.cache=new(Sn.Cache||ct),n}Sn.Cache=ct;function Cn(e,t){return e===t||e!==e&&t!==t}function wn(e){return Dn(e)&&Ee.call(e,`callee`)&&(!je.call(e,`callee`)||De.call(e)==d)}var Tn=Array.isArray;function En(e){return e!=null&&kn(e.length)&&!On(e)}function Dn(e){return jn(e)&&En(e)}function On(e){var t=An(e)?De.call(e):``;return t==y||t==`[object GeneratorFunction]`}function kn(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=u}function An(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function jn(e){return!!e&&typeof e==`object`}function Mn(e){return typeof e==`symbol`||jn(e)&&De.call(e)==k}var Nn=ue?Z(ue):zt;function Pn(e){return e==null?``:Jt(e)}function Fn(e,t,n){var a=e==null?void 0:Mt(e,t);return a===void 0?n:a}function In(e,t){return e!=null&&cn(e,t,Pt)}function Ln(e){return En(e)?Et(e):Vt(e)}function Rn(e){return e}function zn(e){return fn(e)?me(yn(e)):Kt(e)}t.exports=xn})),import_lodash_sortby=__toESM(require_lodash_sortby()),itemTypesToShowInReverse=new Set([itemType.MILK]),sortItemIdsByTypeAndValue=memoize(e=>(0,import_lodash_sortby.default)(e,[e=>Number(itemsMap[e].type!==itemType.CROP),e=>{let{type:t,value:n}=itemsMap[e];return itemTypesToShowInReverse.has(t)?-n:n}]),{}),sortItems=e=>{let t={};return e.forEach(e=>t[e.id]=e),sortItemIdsByTypeAndValue(e.map(({id:e})=>e)).map(e=>t[e])},require_lodash_debounce=__commonJSMin(((e,t)=>{var n=`Expected a function`,a=NaN,o=`[object Symbol]`,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,f=parseInt,m={}.Object===Object&&{},h=typeof self==`object`&&self&&self.Object===Object&&self,v=m||h||Function(`return this`)(),y=Object.prototype.toString,b=Math.max,x=Math.min,S=function(){return v.Date.now()};function C(e,t,n){var a,o,s,l,u,d,f=0,m=!1,h=!1,v=!0;if(typeof e!=`function`)throw TypeError(`Expected a function`);t=O(t)||0,T(n)&&(m=!!n.leading,h=`maxWait`in n,s=h?b(O(n.maxWait)||0,t):s,v=`trailing`in n?!!n.trailing:v);function y(t){var n=a,s=o;return a=o=void 0,f=t,l=e.apply(s,n),l}function C(e){return f=e,u=setTimeout(k,t),m?y(e):l}function E(e){var n=e-d,a=e-f,o=t-n;return h?x(o,s-a):o}function D(e){var n=e-d,a=e-f;return d===void 0||n>=t||n<0||h&&a>=s}function k(){var e=S();if(D(e))return j(e);u=setTimeout(k,E(e))}function j(e){return u=void 0,v&&a?y(e):(a=o=void 0,l)}function M(){u!==void 0&&clearTimeout(u),f=0,a=d=o=u=void 0}function N(){return u===void 0?l:j(S())}function F(){var e=S(),n=D(e);if(a=arguments,o=this,d=e,n){if(u===void 0)return C(d);if(h)return u=setTimeout(k,t),y(d)}return u===void 0&&(u=setTimeout(k,t)),l}return F.cancel=M,F.flush=N,F}function T(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function E(e){return!!e&&typeof e==`object`}function D(e){return typeof e==`symbol`||E(e)&&y.call(e)==`[object Symbol]`}function O(e){if(typeof e==`number`)return e;if(D(e))return a;if(T(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=T(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=e.replace(s,``);var n=u.test(e);return n||d.test(e)?f(e.slice(2),n?2:8):l.test(e)?a:+e}t.exports=C})),import_lodash_debounce=__toESM(require_lodash_debounce());function useUnmount(e){let t=(0,import_react$24.useRef)(e);t.current=e,(0,import_react$24.useEffect)(()=>()=>{t.current()},[])}function useDebounceCallback(e,t=500,n){let a=(0,import_react$24.useRef)();useUnmount(()=>{a.current&&a.current.cancel()});let o=(0,import_react$24.useMemo)(()=>{let o=(0,import_lodash_debounce.default)(e,t,n),s=(...e)=>o(...e);return s.cancel=()=>{o.cancel()},s.isPending=()=>!!a.current,s.flush=()=>o.flush(),s},[e,t,n]);return(0,import_react$24.useEffect)(()=>{a.current=(0,import_lodash_debounce.default)(e,t,n)},[e,t,n]),o}function useIsMounted(){let e=(0,import_react$24.useRef)(!1);return(0,import_react$24.useEffect)(()=>(e.current=!0,()=>{e.current=!1}),[]),(0,import_react$24.useCallback)(()=>e.current,[])}var SearchBar=({placeholder:e,onSearch:t})=>{let n=useDebounceCallback(e=>{t(e)},300);return(0,import_jsx_runtime.jsx)(Div,{className:`search-bar`,sx:{position:`relative`,maxWidth:layout.cardMaxWidth,padding:`0.5em`,margin:`1em auto`,display:`flex`,justifyContent:`center`,alignItems:`center`,backgroundColor:`#fff`,borderRadius:`1em`,boxShadow:`0 0.25em 0.5em rgba(0, 0, 0, 0.1)`,"& .MuiOutlinedInput-root":{width:`100%`,fontSize:`1em`,backgroundColor:`transparent`,borderRadius:`0.5em`,transition:`all 0.3s ease`,"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:`#ffd24d`},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:`#ffb913`},"& .MuiOutlinedInput-notchedOutline":{transition:`border-color 0.3s ease`},"& input":{color:`#333`,caretColor:`#333`,transition:`background-color 0.3s ease`,"&:focus":{backgroundColor:`#fff`}},"& input::placeholder":{color:`#999`,transition:`color 0.3s ease`}},"@media (max-width: 768px)":{padding:`1em`,margin:`0.5em auto`,"& .MuiOutlinedInput-root":{fontSize:`0.9em`}}},children:(0,import_jsx_runtime.jsx)(TextField,{variant:`outlined`,fullWidth:!0,placeholder:e||`Search...`,onChange:e=>{n(e.target.value)},inputProps:{"aria-label":`search`}})})};SearchBar.propTypes={placeholder:import_prop_types$1.default.string,onSearch:import_prop_types$1.default.func.isRequired};var categoryIds=new Map([[`CROPS`,`CROPS`],[`SEEDS`,`SEEDS`],[`FORAGED_ITEMS`,`FORAGED_ITEMS`],[`FIELD_TOOLS`,`FIELD_TOOLS`],[`ANIMAL_PRODUCTS`,`ANIMAL_PRODUCTS`],[`ANIMAL_SUPPLIES`,`ANIMAL_SUPPLIES`],[`CRAFTED_ITEMS`,`CRAFTED_ITEMS`],[`MINED_RESOURCES`,`MINED_RESOURCES`]]),itemTypeCategoryMap=new Map([[`SEEDS`,`SEEDS`],[`COW_FEED`,`ANIMAL_SUPPLIES`],[`CRAFTED_ITEM`,`CRAFTED_ITEMS`],[`CROP`,`CROPS`],[`FERTILIZER`,`FIELD_TOOLS`],[`FUEL`,`MINED_RESOURCES`],[`HUGGING_MACHINE`,`ANIMAL_SUPPLIES`],[`MILK`,`ANIMAL_PRODUCTS`],[`MULCH`,`FIELD_TOOLS`],[`ORE`,`MINED_RESOURCES`],[`SCARECROW`,`FIELD_TOOLS`],[`SPRINKLER`,`FIELD_TOOLS`],[`STONE`,`MINED_RESOURCES`],[`TREE`,`CROPS`],[`WEED`,`FORAGED_ITEMS`],[`WOOD`,`MINED_RESOURCES`]]),getItemCategories=()=>new Map(Array.from(categoryIds.keys()).map(e=>[e,[]])),separateItemsIntoCategories=e=>sortItems(e).reduce((e,t)=>{let{type:n}=itemsMap[t.id],a=itemTypeCategoryMap.get(n);if(a===`CROPS`){let n=t.isPlantableCrop||t.isPlantableTree?`SEEDS`:`CROPS`;e.get(n)?.push(t)}else a!=null&&e.has(a)&&e.get(a)?.push(t);return e},getItemCategories()),formatCategoryName=e=>e.replace(/_/g,` `).toLowerCase().replace(/\b\w/g,e=>e.toUpperCase()),Inventory=({items:e,title:t,columns:n,playerInventory:a,shopInventory:o,isPurchaseView:s=!1,isSellView:l=!1,itemCategories:u=separateItemsIntoCategories(e),placeholder:d=`Search inventory...`})=>{let[f,m]=(0,import_react$24.useState)(``),[h,v]=(0,import_react$24.useState)([]),y=e=>{v(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},b=Array.from(u.entries()).reduce((e,[t,n])=>{let a=n.filter(e=>{let t=itemsMap[e.id];return t&&t.name&&t.name.toLowerCase().includes(f.toLowerCase())});return a.length&&(!h.length||h.includes(t))&&e.set(t,a),e},new Map);return(0,import_jsx_runtime.jsxs)(Div,{className:`Inventory`,children:[(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:d,onSearch:m}),!s&&(0,import_jsx_runtime.jsxs)(Accordion,{children:[(0,import_jsx_runtime.jsx)(AccordionSummary,{expandIcon:(0,import_jsx_runtime.jsx)(import_ExpandMore.default,{}),"aria-controls":`filter-content`,id:`filter-header`,children:(0,import_jsx_runtime.jsx)(`h4`,{children:`Filter by category`})}),(0,import_jsx_runtime.jsx)(AccordionDetails,{children:(0,import_jsx_runtime.jsx)(Div,{className:`filter-section`,sx:{marginBottom:`20px`,padding:`10px`,border:`1px solid #ccc`,borderRadius:`5px`,backgroundColor:`#f7f7f7`,"& h4":{marginBottom:`10px`,fontSize:`16px`,color:`#555`}},children:Array.from(categoryIds.keys()).map(e=>(0,import_jsx_runtime.jsx)(FormControlLabel,{sx:{display:`block`},control:(0,import_jsx_runtime.jsx)(Checkbox,{disabled:s,checked:h.includes(e),onChange:()=>y(e)}),label:formatCategoryName(e)},e))})})]}),Array.from(b.entries()).map(([e,t])=>t.length?(0,import_jsx_runtime.jsx)(import_react$24.Fragment,{children:(0,import_jsx_runtime.jsxs)(`section`,{children:[(0,import_jsx_runtime.jsx)(`h3`,{children:formatCategoryName(e)}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:t.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$28,{isPurchaseView:s,isSellView:l,item:e,showQuantity:s})},e.id))})]})},e):null)]})};Inventory.propTypes={items:import_prop_types$1.array.isRequired,playerInventory:import_prop_types$1.array,shopInventory:import_prop_types$1.array};function Consumer$27(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Inventory,{...t,...n,...e})})}var require_ArrowDownward=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z`}),`ArrowDownward`)})),require_ArrowUpward=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z`}),`ArrowUpward`)}));init_generateUtilityClasses(),init_generateUtilityClass();function getDividerUtilityClass(e){return generateUtilityClass(`MuiDivider`,e)}var dividerClasses=generateUtilityClasses(`MuiDivider`,[`root`,`absolute`,`fullWidth`,`inset`,`middle`,`flexItem`,`light`,`vertical`,`withChildren`,`withChildrenVertical`,`textAlignRight`,`textAlignLeft`,`wrapper`,`wrapperVertical`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$18=[`absolute`,`children`,`className`,`component`,`flexItem`,`light`,`orientation`,`role`,`textAlign`,`variant`],useUtilityClasses$16=e=>{let{absolute:t,children:n,classes:a,flexItem:o,light:s,orientation:l,textAlign:u,variant:d}=e;return composeClasses({root:[`root`,t&&`absolute`,d,s&&`light`,l===`vertical`&&`vertical`,o&&`flexItem`,n&&`withChildren`,n&&l===`vertical`&&`withChildrenVertical`,u===`right`&&l!==`vertical`&&`textAlignRight`,u===`left`&&l!==`vertical`&&`textAlignLeft`],wrapper:[`wrapper`,l===`vertical`&&`wrapperVertical`]},getDividerUtilityClass,a)},DividerRoot=styled$1(`div`,{name:`MuiDivider`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],n.light&&t.light,n.orientation===`vertical`&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.children&&n.orientation===`vertical`&&t.withChildrenVertical,n.textAlign===`right`&&n.orientation!==`vertical`&&t.textAlignRight,n.textAlign===`left`&&n.orientation!==`vertical`&&t.textAlignLeft]}})(({theme:e,ownerState:t})=>_extends$3({margin:0,flexShrink:0,borderWidth:0,borderStyle:`solid`,borderColor:(e.vars||e).palette.divider,borderBottomWidth:`thin`},t.absolute&&{position:`absolute`,bottom:0,left:0,width:`100%`},t.light&&{borderColor:e.vars?`rgba(${e.vars.palette.dividerChannel} / 0.08)`:(0,import_colorManipulator.alpha)(e.palette.divider,.08)},t.variant===`inset`&&{marginLeft:72},t.variant===`middle`&&t.orientation===`horizontal`&&{marginLeft:e.spacing(2),marginRight:e.spacing(2)},t.variant===`middle`&&t.orientation===`vertical`&&{marginTop:e.spacing(1),marginBottom:e.spacing(1)},t.orientation===`vertical`&&{height:`100%`,borderBottomWidth:0,borderRightWidth:`thin`},t.flexItem&&{alignSelf:`stretch`,height:`auto`}),({ownerState:e})=>_extends$3({},e.children&&{display:`flex`,whiteSpace:`nowrap`,textAlign:`center`,border:0,borderTopStyle:`solid`,borderLeftStyle:`solid`,"&::before, &::after":{content:`""`,alignSelf:`center`}}),({theme:e,ownerState:t})=>_extends$3({},t.children&&t.orientation!==`vertical`&&{"&::before, &::after":{width:`100%`,borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:`inherit`}}),({theme:e,ownerState:t})=>_extends$3({},t.children&&t.orientation===`vertical`&&{flexDirection:`column`,"&::before, &::after":{height:`100%`,borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:`inherit`}}),({ownerState:e})=>_extends$3({},e.textAlign===`right`&&e.orientation!==`vertical`&&{"&::before":{width:`90%`},"&::after":{width:`10%`}},e.textAlign===`left`&&e.orientation!==`vertical`&&{"&::before":{width:`10%`},"&::after":{width:`90%`}})),DividerWrapper=styled$1(`span`,{name:`MuiDivider`,slot:`Wrapper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.wrapper,n.orientation===`vertical`&&t.wrapperVertical]}})(({theme:e,ownerState:t})=>_extends$3({display:`inline-block`,paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`},t.orientation===`vertical`&&{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`})),Divider=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDivider`}),{absolute:a=!1,children:o,className:s,component:l=o?`div`:`hr`,flexItem:u=!1,light:d=!1,orientation:f=`horizontal`,role:m=l===`hr`?void 0:`separator`,textAlign:h=`center`,variant:v=`fullWidth`}=n,y=_objectWithoutPropertiesLoose$3(n,_excluded$18),b=_extends$3({},n,{absolute:a,component:l,flexItem:u,light:d,orientation:f,role:m,textAlign:h,variant:v}),x=useUtilityClasses$16(b);return(0,import_jsx_runtime.jsx)(DividerRoot,_extends$3({as:l,className:clsx$1(x.root,s),role:m,ref:t,ownerState:b},y,{children:o?(0,import_jsx_runtime.jsx)(DividerWrapper,{className:x.wrapper,ownerState:b,children:o}):null}))});Divider.muiSkipListHighlight=!0,init_generateUtilityClasses();var listItemIconClasses=generateUtilityClasses(`MuiListItemIcon`,[`root`,`alignItemsFlexStart`]);init_generateUtilityClasses();var listItemTextClasses=generateUtilityClasses(`MuiListItemText`,[`root`,`multiline`,`dense`,`inset`,`primary`,`secondary`]);init_generateUtilityClasses(),init_generateUtilityClass();function getMenuItemUtilityClass(e){return generateUtilityClass(`MuiMenuItem`,e)}var menuItemClasses=generateUtilityClasses(`MuiMenuItem`,[`root`,`focusVisible`,`dense`,`disabled`,`divider`,`gutters`,`selected`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_useEnhancedEffect(),init_useForkRef();var _excluded$17=[`autoFocus`,`component`,`dense`,`divider`,`disableGutters`,`focusVisibleClassName`,`role`,`tabIndex`,`className`],overridesResolver=(e,t)=>{let{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},useUtilityClasses$15=e=>{let{disabled:t,dense:n,divider:a,disableGutters:o,selected:s,classes:l}=e;return _extends$3({},l,composeClasses({root:[`root`,n&&`dense`,t&&`disabled`,!o&&`gutters`,a&&`divider`,s&&`selected`]},getMenuItemUtilityClass,l))},MenuItemRoot=styled$1(ButtonBase,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiMenuItem`,slot:`Root`,overridesResolver})(({theme:e,ownerState:t})=>_extends$3({},e.typography.body1,{display:`flex`,justifyContent:`flex-start`,alignItems:`center`,position:`relative`,textDecoration:`none`,minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:`border-box`,whiteSpace:`nowrap`},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.divider&&{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:`padding-box`},{"&:hover":{textDecoration:`none`,backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:`transparent`}},[`&.${menuItemClasses.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${menuItemClasses.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${menuItemClasses.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${menuItemClasses.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${menuItemClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${dividerClasses.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${dividerClasses.inset}`]:{marginLeft:52},[`& .${listItemTextClasses.root}`]:{marginTop:0,marginBottom:0},[`& .${listItemTextClasses.inset}`]:{paddingLeft:36},[`& .${listItemIconClasses.root}`]:{minWidth:36}},!t.dense&&{[e.breakpoints.up(`sm`)]:{minHeight:`auto`}},t.dense&&_extends$3({minHeight:32,paddingTop:4,paddingBottom:4},e.typography.body2,{[`& .${listItemIconClasses.root} svg`]:{fontSize:`1.25rem`}}))),MenuItem=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiMenuItem`}),{autoFocus:a=!1,component:o=`li`,dense:s=!1,divider:l=!1,disableGutters:u=!1,focusVisibleClassName:d,role:f=`menuitem`,tabIndex:m,className:h}=n,v=_objectWithoutPropertiesLoose$3(n,_excluded$17),y=import_react$24.useContext(ListContext),b=import_react$24.useMemo(()=>({dense:s||y.dense||!1,disableGutters:u}),[y.dense,s,u]),x=import_react$24.useRef(null);useEnhancedEffect_default(()=>{a&&x.current&&x.current.focus()},[a]);let S=_extends$3({},n,{dense:b.dense,divider:l,disableGutters:u}),C=useUtilityClasses$15(n),T=useForkRef_default(x,t),E;return n.disabled||(E=m===void 0?-1:m),(0,import_jsx_runtime.jsx)(ListContext.Provider,{value:b,children:(0,import_jsx_runtime.jsx)(MenuItemRoot,_extends$3({ref:T,role:f,tabIndex:E,component:o,focusVisibleClassName:clsx$1(C.focusVisible,d),className:clsx$1(C.root,h)},v,{ownerState:S,classes:C}))})});init_generateUtilityClasses(),init_generateUtilityClass();function getTabUtilityClass(e){return generateUtilityClass(`MuiTab`,e)}var tabClasses=generateUtilityClasses(`MuiTab`,[`root`,`labelIcon`,`textColorInherit`,`textColorPrimary`,`textColorSecondary`,`selected`,`disabled`,`fullWidth`,`wrapped`,`iconWrapper`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$16=[`className`,`disabled`,`disableFocusRipple`,`fullWidth`,`icon`,`iconPosition`,`indicator`,`label`,`onChange`,`onClick`,`onFocus`,`selected`,`selectionFollowsFocus`,`textColor`,`value`,`wrapped`],useUtilityClasses$14=e=>{let{classes:t,textColor:n,fullWidth:a,wrapped:o,icon:s,label:l,selected:u,disabled:d}=e;return composeClasses({root:[`root`,s&&l&&`labelIcon`,`textColor${capitalize_default(n)}`,a&&`fullWidth`,o&&`wrapped`,u&&`selected`,d&&`disabled`],iconWrapper:[`iconWrapper`]},getTabUtilityClass,t)},TabRoot=styled$1(ButtonBase,{name:`MuiTab`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${capitalize_default(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${tabClasses.iconWrapper}`]:t.iconWrapper}]}})(({theme:e,ownerState:t})=>_extends$3({},e.typography.button,{maxWidth:360,minWidth:90,position:`relative`,minHeight:48,flexShrink:0,padding:`12px 16px`,overflow:`hidden`,whiteSpace:`normal`,textAlign:`center`},t.label&&{flexDirection:t.iconPosition===`top`||t.iconPosition===`bottom`?`column`:`row`},{lineHeight:1.25},t.icon&&t.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses.iconWrapper}`]:_extends$3({},t.iconPosition===`top`&&{marginBottom:6},t.iconPosition===`bottom`&&{marginTop:6},t.iconPosition===`start`&&{marginRight:e.spacing(1)},t.iconPosition===`end`&&{marginLeft:e.spacing(1)})},t.textColor===`inherit`&&{color:`inherit`,opacity:.6,[`&.${tabClasses.selected}`]:{opacity:1},[`&.${tabClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}},t.textColor===`primary`&&{color:(e.vars||e).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${tabClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled}},t.textColor===`secondary`&&{color:(e.vars||e).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${tabClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled}},t.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:`none`},t.wrapped&&{fontSize:e.typography.pxToRem(12)})),Tab=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTab`}),{className:a,disabled:o=!1,disableFocusRipple:s=!1,fullWidth:l,icon:u,iconPosition:d=`top`,indicator:f,label:m,onChange:h,onClick:v,onFocus:y,selected:b,selectionFollowsFocus:x,textColor:S=`inherit`,value:C,wrapped:T=!1}=n,E=_objectWithoutPropertiesLoose$3(n,_excluded$16),D=_extends$3({},n,{disabled:o,disableFocusRipple:s,selected:b,icon:!!u,iconPosition:d,label:!!m,fullWidth:l,textColor:S,wrapped:T}),O=useUtilityClasses$14(D),k=u&&m&&import_react$24.isValidElement(u)?import_react$24.cloneElement(u,{className:clsx$1(O.iconWrapper,u.props.className)}):u;return(0,import_jsx_runtime.jsxs)(TabRoot,_extends$3({focusRipple:!s,className:clsx$1(O.root,a),ref:t,role:`tab`,"aria-selected":b,disabled:o,onClick:e=>{!b&&h&&h(e,C),v&&v(e)},onFocus:e=>{x&&!b&&h&&h(e,C),y&&y(e)},ownerState:D,tabIndex:b?0:-1},E,{children:[d===`top`||d===`start`?(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[k,m]}):(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[m,k]}),f]}))});function easeInOutSin(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function animate$1(e,t,n,a={},o=()=>{}){let{ease:s=easeInOutSin,duration:l=300}=a,u=null,d=t[e],f=!1,m=()=>{f=!0},h=a=>{if(f){o(Error(`Animation cancelled`));return}u===null&&(u=a);let m=Math.min(1,(a-u)/l);if(t[e]=s(m)*(n-d)+d,m>=1){requestAnimationFrame(()=>{o(null)});return}requestAnimationFrame(h)};return d===n?(o(Error(`Element already at target position`)),m):(requestAnimationFrame(h),m)}init_extends(),init_objectWithoutPropertiesLoose(),init_debounce(),init_utils();var _excluded$15=[`onChange`],styles$4={width:99,height:99,position:`absolute`,top:-9999,overflow:`scroll`};function ScrollbarSize(e){let{onChange:t}=e,n=_objectWithoutPropertiesLoose$3(e,_excluded$15),a=import_react$24.useRef(),o=import_react$24.useRef(null),s=()=>{a.current=o.current.offsetHeight-o.current.clientHeight};return useEnhancedEffect_default(()=>{let e=debounce_default(()=>{let e=a.current;s(),e!==a.current&&t(a.current)}),n=ownerWindow_default(o.current);return n.addEventListener(`resize`,e),()=>{e.clear(),n.removeEventListener(`resize`,e)}},[t]),import_react$24.useEffect(()=>{s(),t(a.current)},[t]),(0,import_jsx_runtime.jsx)(`div`,_extends$3({style:styles$4},n,{ref:o}))}init_createSvgIcon();var KeyboardArrowLeft_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z`}),`KeyboardArrowLeft`);init_createSvgIcon();var KeyboardArrowRight_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z`}),`KeyboardArrowRight`);init_generateUtilityClasses(),init_generateUtilityClass();function getTabScrollButtonUtilityClass(e){return generateUtilityClass(`MuiTabScrollButton`,e)}var tabScrollButtonClasses=generateUtilityClasses(`MuiTabScrollButton`,[`root`,`vertical`,`horizontal`,`disabled`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_DefaultPropsProvider(),init_styled();var _excluded$14=[`className`,`slots`,`slotProps`,`direction`,`orientation`,`disabled`],useUtilityClasses$13=e=>{let{classes:t,orientation:n,disabled:a}=e;return composeClasses({root:[`root`,n,a&&`disabled`]},getTabScrollButtonUtilityClass,t)},TabScrollButtonRoot=styled$1(ButtonBase,{name:`MuiTabScrollButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})(({ownerState:e})=>_extends$3({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses.disabled}`]:{opacity:0}},e.orientation===`vertical`&&{width:`100%`,height:40,"& svg":{transform:`rotate(${e.isRtl?-90:90}deg)`}})),TabScrollButton=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiTabScrollButton`}),{className:s,slots:l={},slotProps:u={},direction:d}=o,f=_objectWithoutPropertiesLoose$3(o,_excluded$14),m=_extends$3({isRtl:useRtl()},o),h=useUtilityClasses$13(m),v=l.StartScrollButtonIcon??KeyboardArrowLeft_default,y=l.EndScrollButtonIcon??KeyboardArrowRight_default,b=useSlotProps({elementType:v,externalSlotProps:u.startScrollButtonIcon,additionalProps:{fontSize:`small`},ownerState:m}),x=useSlotProps({elementType:y,externalSlotProps:u.endScrollButtonIcon,additionalProps:{fontSize:`small`},ownerState:m});return(0,import_jsx_runtime.jsx)(TabScrollButtonRoot,_extends$3({component:`div`,className:clsx$1(h.root,s),ref:t,role:null,ownerState:m,tabIndex:null},f,{children:d===`left`?(0,import_jsx_runtime.jsx)(v,_extends$3({},b)):(0,import_jsx_runtime.jsx)(y,_extends$3({},x))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getTabsUtilityClass(e){return generateUtilityClass(`MuiTabs`,e)}var tabsClasses=generateUtilityClasses(`MuiTabs`,[`root`,`vertical`,`flexContainer`,`flexContainerVertical`,`centered`,`scroller`,`fixed`,`scrollableX`,`scrollableY`,`hideScrollbar`,`scrollButtons`,`scrollButtonsHideMobile`,`indicator`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_styled(),init_DefaultPropsProvider(),init_debounce(),init_scrollLeft$1(),init_useEventCallback(),init_ownerDocument(),init_ownerWindow();var _excluded$13=[`aria-label`,`aria-labelledby`,`action`,`centered`,`children`,`className`,`component`,`allowScrollButtonsMobile`,`indicatorColor`,`onChange`,`orientation`,`ScrollButtonComponent`,`scrollButtons`,`selectionFollowsFocus`,`slots`,`slotProps`,`TabIndicatorProps`,`TabScrollButtonProps`,`textColor`,`value`,`variant`,`visibleScrollbar`],nextItem=(e,t)=>e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild,previousItem=(e,t)=>e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild,moveFocus=(e,t,n)=>{let a=!1,o=n(e,t);for(;o;){if(o===e.firstChild){if(a)return;a=!0}let t=o.disabled||o.getAttribute(`aria-disabled`)===`true`;if(!o.hasAttribute(`tabindex`)||t)o=n(e,o);else{o.focus();return}}},useUtilityClasses$12=e=>{let{vertical:t,fixed:n,hideScrollbar:a,scrollableX:o,scrollableY:s,centered:l,scrollButtonsHideMobile:u,classes:d}=e;return composeClasses({root:[`root`,t&&`vertical`],scroller:[`scroller`,n&&`fixed`,a&&`hideScrollbar`,o&&`scrollableX`,s&&`scrollableY`],flexContainer:[`flexContainer`,t&&`flexContainerVertical`,l&&`centered`],indicator:[`indicator`],scrollButtons:[`scrollButtons`,u&&`scrollButtonsHideMobile`],scrollableX:[o&&`scrollableX`],hideScrollbar:[a&&`hideScrollbar`]},getTabsUtilityClass,d)},TabsRoot=styled$1(`div`,{name:`MuiTabs`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${tabsClasses.scrollButtons}`]:t.scrollButtons},{[`& .${tabsClasses.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})(({ownerState:e,theme:t})=>_extends$3({overflow:`hidden`,minHeight:48,WebkitOverflowScrolling:`touch`,display:`flex`},e.vertical&&{flexDirection:`column`},e.scrollButtonsHideMobile&&{[`& .${tabsClasses.scrollButtons}`]:{[t.breakpoints.down(`sm`)]:{display:`none`}}})),TabsScroller=styled$1(`div`,{name:`MuiTabs`,slot:`Scroller`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})(({ownerState:e})=>_extends$3({position:`relative`,display:`inline-block`,flex:`1 1 auto`,whiteSpace:`nowrap`},e.fixed&&{overflowX:`hidden`,width:`100%`},e.hideScrollbar&&{scrollbarWidth:`none`,"&::-webkit-scrollbar":{display:`none`}},e.scrollableX&&{overflowX:`auto`,overflowY:`hidden`},e.scrollableY&&{overflowY:`auto`,overflowX:`hidden`})),FlexContainer=styled$1(`div`,{name:`MuiTabs`,slot:`FlexContainer`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})(({ownerState:e})=>_extends$3({display:`flex`},e.vertical&&{flexDirection:`column`},e.centered&&{justifyContent:`center`})),TabsIndicator=styled$1(`span`,{name:`MuiTabs`,slot:`Indicator`,overridesResolver:(e,t)=>t.indicator})(({ownerState:e,theme:t})=>_extends$3({position:`absolute`,height:2,bottom:0,width:`100%`,transition:t.transitions.create()},e.indicatorColor===`primary`&&{backgroundColor:(t.vars||t).palette.primary.main},e.indicatorColor===`secondary`&&{backgroundColor:(t.vars||t).palette.secondary.main},e.vertical&&{height:`100%`,width:2,right:0})),TabsScrollbarSize=styled$1(ScrollbarSize)({overflowX:`auto`,overflowY:`hidden`,scrollbarWidth:`none`,"&::-webkit-scrollbar":{display:`none`}}),defaultIndicatorStyle={},Tabs=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTabs`}),a=useTheme$1(),o=useRtl(),{"aria-label":s,"aria-labelledby":l,action:u,centered:d=!1,children:f,className:m,component:h=`div`,allowScrollButtonsMobile:v=!1,indicatorColor:y=`primary`,onChange:b,orientation:x=`horizontal`,ScrollButtonComponent:S=TabScrollButton,scrollButtons:C=`auto`,selectionFollowsFocus:T,slots:E={},slotProps:D={},TabIndicatorProps:O={},TabScrollButtonProps:k={},textColor:j=`primary`,value:M,variant:N=`standard`,visibleScrollbar:F=!1}=n,I=_objectWithoutPropertiesLoose$3(n,_excluded$13),L=N===`scrollable`,R=x===`vertical`,z=R?`scrollTop`:`scrollLeft`,B=R?`top`:`left`,V=R?`bottom`:`right`,H=R?`clientHeight`:`clientWidth`,U=R?`height`:`width`,W=_extends$3({},n,{component:h,allowScrollButtonsMobile:v,indicatorColor:y,orientation:x,vertical:R,scrollButtons:C,textColor:j,variant:N,visibleScrollbar:F,fixed:!L,hideScrollbar:L&&!F,scrollableX:L&&!R,scrollableY:L&&R,centered:d&&!L,scrollButtonsHideMobile:!v}),G=useUtilityClasses$12(W),ee=useSlotProps({elementType:E.StartScrollButtonIcon,externalSlotProps:D.startScrollButtonIcon,ownerState:W}),te=useSlotProps({elementType:E.EndScrollButtonIcon,externalSlotProps:D.endScrollButtonIcon,ownerState:W}),[K,q]=import_react$24.useState(!1),[ne,re]=import_react$24.useState(defaultIndicatorStyle),[J,ie]=import_react$24.useState(!1),[ae,oe]=import_react$24.useState(!1),[se,ce]=import_react$24.useState(!1),[Y,le]=import_react$24.useState({overflow:`hidden`,scrollbarWidth:0}),ue=new Map,de=import_react$24.useRef(null),X=import_react$24.useRef(null),fe=()=>{let e=de.current,t;if(e){let n=e.getBoundingClientRect();t={clientWidth:e.clientWidth,scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(e,o?`rtl`:`ltr`),scrollWidth:e.scrollWidth,top:n.top,bottom:n.bottom,left:n.left,right:n.right}}let n;if(e&&M!==!1){let e=X.current.children;if(e.length>0){let t=e[ue.get(M)];n=t?t.getBoundingClientRect():null}}return{tabsMeta:t,tabMeta:n}},pe=useEventCallback_default(()=>{let{tabsMeta:e,tabMeta:t}=fe(),n=0,a;if(R)a=`top`,t&&e&&(n=t.top-e.top+e.scrollTop);else if(a=o?`right`:`left`,t&&e){let s=o?e.scrollLeftNormalized+e.clientWidth-e.scrollWidth:e.scrollLeft;n=(o?-1:1)*(t[a]-e[a]+s)}let s={[a]:n,[U]:t?t[U]:0};if(isNaN(ne[a])||isNaN(ne[U]))re(s);else{let e=Math.abs(ne[a]-s[a]),t=Math.abs(ne[U]-s[U]);(e>=1||t>=1)&&re(s)}}),me=(e,{animation:t=!0}={})=>{t?animate$1(z,de.current,e,{duration:a.transitions.duration.standard}):de.current[z]=e},he=e=>{let t=de.current[z];R?t+=e:(t+=e*(o?-1:1),t*=o&&detectScrollType()===`reverse`?-1:1),me(t)},ge=()=>{let e=de.current[H],t=0,n=Array.from(X.current.children);for(let a=0;a<n.length;a+=1){let o=n[a];if(t+o[H]>e){a===0&&(t=e);break}t+=o[H]}return t},Z=()=>{he(-1*ge())},_e=()=>{he(ge())},Q=import_react$24.useCallback(e=>{le({overflow:null,scrollbarWidth:e})},[]),$=()=>{let e={};e.scrollbarSizeListener=L?(0,import_jsx_runtime.jsx)(TabsScrollbarSize,{onChange:Q,className:clsx$1(G.scrollableX,G.hideScrollbar)}):null;let t=L&&(C===`auto`&&(J||ae)||C===!0);return e.scrollButtonStart=t?(0,import_jsx_runtime.jsx)(S,_extends$3({slots:{StartScrollButtonIcon:E.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:ee},orientation:x,direction:o?`right`:`left`,onClick:Z,disabled:!J},k,{className:clsx$1(G.scrollButtons,k.className)})):null,e.scrollButtonEnd=t?(0,import_jsx_runtime.jsx)(S,_extends$3({slots:{EndScrollButtonIcon:E.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:te},orientation:x,direction:o?`left`:`right`,onClick:_e,disabled:!ae},k,{className:clsx$1(G.scrollButtons,k.className)})):null,e},ve=useEventCallback_default(e=>{let{tabsMeta:t,tabMeta:n}=fe();if(!(!n||!t)){if(n[B]<t[B]){let a=t[z]+(n[B]-t[B]);me(a,{animation:e})}else if(n[V]>t[V]){let a=t[z]+(n[V]-t[V]);me(a,{animation:e})}}}),ye=useEventCallback_default(()=>{L&&C!==!1&&ce(!se)});import_react$24.useEffect(()=>{let e=debounce_default(()=>{de.current&&pe()}),t,n=n=>{n.forEach(e=>{e.removedNodes.forEach(e=>{var n;(n=t)==null||n.unobserve(e)}),e.addedNodes.forEach(e=>{var n;(n=t)==null||n.observe(e)})}),e(),ye()},a=ownerWindow_default(de.current);a.addEventListener(`resize`,e);let o;return typeof ResizeObserver<`u`&&(t=new ResizeObserver(e),Array.from(X.current.children).forEach(e=>{t.observe(e)})),typeof MutationObserver<`u`&&(o=new MutationObserver(n),o.observe(X.current,{childList:!0})),()=>{var n,s;e.clear(),a.removeEventListener(`resize`,e),(n=o)==null||n.disconnect(),(s=t)==null||s.disconnect()}},[pe,ye]),import_react$24.useEffect(()=>{let e=Array.from(X.current.children),t=e.length;if(typeof IntersectionObserver<`u`&&t>0&&L&&C!==!1){let n=e[0],a=e[t-1],o={root:de.current,threshold:.99},s=new IntersectionObserver(e=>{ie(!e[0].isIntersecting)},o);s.observe(n);let l=new IntersectionObserver(e=>{oe(!e[0].isIntersecting)},o);return l.observe(a),()=>{s.disconnect(),l.disconnect()}}},[L,C,se,f?.length]),import_react$24.useEffect(()=>{q(!0)},[]),import_react$24.useEffect(()=>{pe()}),import_react$24.useEffect(()=>{ve(defaultIndicatorStyle!==ne)},[ve,ne]),import_react$24.useImperativeHandle(u,()=>({updateIndicator:pe,updateScrollButtons:ye}),[pe,ye]);let be=(0,import_jsx_runtime.jsx)(TabsIndicator,_extends$3({},O,{className:clsx$1(G.indicator,O.className),ownerState:W,style:_extends$3({},ne,O.style)})),xe=0,Se=import_react$24.Children.map(f,e=>{if(!import_react$24.isValidElement(e))return null;let t=e.props.value===void 0?xe:e.props.value;ue.set(t,xe);let n=t===M;return xe+=1,import_react$24.cloneElement(e,_extends$3({fullWidth:N===`fullWidth`,indicator:n&&!K&&be,selected:n,selectionFollowsFocus:T,onChange:b,textColor:j,value:t},xe===1&&M===!1&&!e.props.tabIndex?{tabIndex:0}:{}))}),Ce=e=>{let t=X.current,n=ownerDocument_default(t).activeElement;if(n.getAttribute(`role`)!==`tab`)return;let a=x===`horizontal`?`ArrowLeft`:`ArrowUp`,s=x===`horizontal`?`ArrowRight`:`ArrowDown`;switch(x===`horizontal`&&o&&(a=`ArrowRight`,s=`ArrowLeft`),e.key){case a:e.preventDefault(),moveFocus(t,n,previousItem);break;case s:e.preventDefault(),moveFocus(t,n,nextItem);break;case`Home`:e.preventDefault(),moveFocus(t,null,nextItem);break;case`End`:e.preventDefault(),moveFocus(t,null,previousItem);break;default:break}},we=$();return(0,import_jsx_runtime.jsxs)(TabsRoot,_extends$3({className:clsx$1(G.root,m),ownerState:W,ref:t,as:h},I,{children:[we.scrollButtonStart,we.scrollbarSizeListener,(0,import_jsx_runtime.jsxs)(TabsScroller,{className:G.scroller,ownerState:W,style:{overflow:Y.overflow,[R?`margin${o?`Left`:`Right`}`:`marginBottom`]:F?void 0:-Y.scrollbarWidth},ref:de,children:[(0,import_jsx_runtime.jsx)(FlexContainer,{"aria-label":s,"aria-labelledby":l,"aria-orientation":x===`vertical`?`vertical`:null,className:G.flexContainer,ownerState:W,onKeyDown:Ce,ref:X,role:`tablist`,children:Se}),K&&be]}),we.scrollButtonEnd]}))}),import_ArrowDownward=__toESM(require_ArrowDownward()),import_ArrowUpward=__toESM(require_ArrowUpward()),getCowSellValue=e=>getCowValue(e,!0),isCowInBreedingPen=(e,t)=>t.cowId1===e.id||t.cowId2===e.id,faHeart$1={prefix:`fas`,iconName:`heart`,icon:[512,512,[],`f004`,`M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z`]},faMars={prefix:`fas`,iconName:`mars`,icon:[384,512,[],`f222`,`M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z`]},faVenus={prefix:`fas`,iconName:`venus`,icon:[288,512,[],`f221`,`M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z`]};function _typeof$2(e){return _typeof$2=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof$2(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty$2(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t],a=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach(function(t){_defineProperty$2(e,t,n[t])})}return e}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=[],a=!0,o=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(a=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));a=!0);}catch(e){o=!0,s=e}finally{try{!a&&l.return!=null&&l.return()}finally{if(o)throw s}}return n}function _nonIterableRest(){throw TypeError(`Invalid attempt to destructure non-iterable instance`)}var noop$1=function(){},_WINDOW={},_DOCUMENT={},_MUTATION_OBSERVER=null,_PERFORMANCE={mark:noop$1,measure:noop$1};try{typeof window<`u`&&(_WINDOW=window),typeof document<`u`&&(_DOCUMENT=document),typeof performance<`u`&&(_PERFORMANCE=performance)}catch{}var _ref$userAgent=(_WINDOW.navigator||{}).userAgent,userAgent=_ref$userAgent===void 0?``:_ref$userAgent,WINDOW=_WINDOW,DOCUMENT=_DOCUMENT,PERFORMANCE=_PERFORMANCE;WINDOW.document;var IS_DOM=!!DOCUMENT.documentElement&&!!DOCUMENT.head&&typeof DOCUMENT.addEventListener==`function`&&typeof DOCUMENT.createElement==`function`,IS_IE=~userAgent.indexOf(`MSIE`)||~userAgent.indexOf(`Trident/`),NAMESPACE_IDENTIFIER=`___FONT_AWESOME___`,DEFAULT_FAMILY_PREFIX=`fa`,DEFAULT_REPLACEMENT_CLASS=`svg-inline--fa`,DATA_FA_I2SVG=`data-fa-i2svg`,oneToTen=[1,2,3,4,5,6,7,8,9,10],oneToTwenty=oneToTen.concat([11,12,13,14,15,16,17,18,19,20]),DUOTONE_CLASSES={GROUP:`group`,SWAP_OPACITY:`swap-opacity`,PRIMARY:`primary`,SECONDARY:`secondary`},RESERVED_CLASSES=[`xs`,`sm`,`lg`,`fw`,`ul`,`li`,`border`,`pull-left`,`pull-right`,`spin`,`pulse`,`rotate-90`,`rotate-180`,`rotate-270`,`flip-horizontal`,`flip-vertical`,`flip-both`,`stack`,`stack-1x`,`stack-2x`,`inverse`,`layers`,`layers-text`,`layers-counter`,DUOTONE_CLASSES.GROUP,DUOTONE_CLASSES.SWAP_OPACITY,DUOTONE_CLASSES.PRIMARY,DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function(e){return`${e}x`}),oneToTwenty.map(function(e){return`w-${e}`})),initial=WINDOW.FontAwesomeConfig||{};function getAttrConfig(e){var t=DOCUMENT.querySelector(`script[`+e+`]`);if(t)return t.getAttribute(e)}function coerce(e){return e===``?!0:e===`false`?!1:e===`true`||e}DOCUMENT&&typeof DOCUMENT.querySelector==`function`&&[[`data-family-prefix`,`familyPrefix`],[`data-replacement-class`,`replacementClass`],[`data-auto-replace-svg`,`autoReplaceSvg`],[`data-auto-add-css`,`autoAddCss`],[`data-auto-a11y`,`autoA11y`],[`data-search-pseudo-elements`,`searchPseudoElements`],[`data-observe-mutations`,`observeMutations`],[`data-mutate-approach`,`mutateApproach`],[`data-keep-original-source`,`keepOriginalSource`],[`data-measure-performance`,`measurePerformance`],[`data-show-missing-icons`,`showMissingIcons`]].forEach(function(e){var t=_slicedToArray(e,2),n=t[0],a=t[1],o=coerce(getAttrConfig(n));o!=null&&(initial[a]=o)});var _config=_objectSpread({},{familyPrefix:DEFAULT_FAMILY_PREFIX,replacementClass:DEFAULT_REPLACEMENT_CLASS,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:`async`,keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},initial);_config.autoReplaceSvg||(_config.observeMutations=!1);var config=_objectSpread({},_config);WINDOW.FontAwesomeConfig=config;var w=WINDOW||{};w[NAMESPACE_IDENTIFIER]||(w[NAMESPACE_IDENTIFIER]={}),w[NAMESPACE_IDENTIFIER].styles||(w[NAMESPACE_IDENTIFIER].styles={}),w[NAMESPACE_IDENTIFIER].hooks||(w[NAMESPACE_IDENTIFIER].hooks={}),w[NAMESPACE_IDENTIFIER].shims||(w[NAMESPACE_IDENTIFIER].shims=[]);var namespace=w[NAMESPACE_IDENTIFIER],functions=[],listener=function e(){DOCUMENT.removeEventListener(`DOMContentLoaded`,e),loaded=1,functions.map(function(e){return e()})},loaded=!1;IS_DOM&&(loaded=(DOCUMENT.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(DOCUMENT.readyState),loaded||DOCUMENT.addEventListener(`DOMContentLoaded`,listener));var PENDING=`pending`,SETTLED=`settled`,FULFILLED=`fulfilled`,REJECTED=`rejected`,NOOP=function(){},isNode={}.process!==void 0&&typeof{}.process.emit==`function`,asyncSetTimer=typeof setImmediate>`u`?setTimeout:setImmediate,asyncQueue=[],asyncTimer;function asyncFlush(){for(var e=0;e<asyncQueue.length;e++)asyncQueue[e][0](asyncQueue[e][1]);asyncQueue=[],asyncTimer=!1}function asyncCall(e,t){asyncQueue.push([e,t]),asyncTimer||(asyncTimer=!0,asyncSetTimer(asyncFlush,0))}function invokeResolver(e,t){function n(e){resolve(t,e)}function a(e){reject(t,e)}try{e(n,a)}catch(e){a(e)}}function invokeCallback(e){var t=e.owner,n=t._state,a=t._data,o=e[n],s=e.then;if(typeof o==`function`){n=FULFILLED;try{a=o(a)}catch(e){reject(s,e)}}handleThenable(s,a)||(n===FULFILLED&&resolve(s,a),n===REJECTED&&reject(s,a))}function handleThenable(e,t){var n;try{if(e===t)throw TypeError(`A promises callback cannot return that same promise.`);if(t&&(typeof t==`function`||_typeof$2(t)===`object`)){var a=t.then;if(typeof a==`function`)return a.call(t,function(a){n||(n=!0,t===a?fulfill(e,a):resolve(e,a))},function(t){n||(n=!0,reject(e,t))}),!0}}catch(t){return n||reject(e,t),!0}return!1}function resolve(e,t){(e===t||!handleThenable(e,t))&&fulfill(e,t)}function fulfill(e,t){e._state===PENDING&&(e._state=SETTLED,e._data=t,asyncCall(publishFulfillment,e))}function reject(e,t){e._state===PENDING&&(e._state=SETTLED,e._data=t,asyncCall(publishRejection,e))}function publish(e){e._then=e._then.forEach(invokeCallback)}function publishFulfillment(e){e._state=FULFILLED,publish(e)}function publishRejection(e){e._state=REJECTED,publish(e),!e._handled&&isNode&&{}.process.emit(`unhandledRejection`,e._data,e)}function notifyRejectionHandled(e){({}).process.emit(`rejectionHandled`,e)}function P(e){if(typeof e!=`function`)throw TypeError(`Promise resolver `+e+` is not a function`);if(!(this instanceof P))throw TypeError(`Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.`);this._then=[],invokeResolver(e,this)}P.prototype={constructor:P,_state:PENDING,_then:null,_data:void 0,_handled:!1,then:function(e,t){var n={owner:this,then:new this.constructor(NOOP),fulfilled:e,rejected:t};return(t||e)&&!this._handled&&(this._handled=!0,this._state===REJECTED&&isNode&&asyncCall(notifyRejectionHandled,this)),this._state===FULFILLED||this._state===REJECTED?asyncCall(invokeCallback,n):this._then.push(n),n.then},catch:function(e){return this.then(null,e)}},P.all=function(e){if(!Array.isArray(e))throw TypeError(`You must pass an array to Promise.all().`);return new P(function(t,n){var a=[],o=0;function s(e){return o++,function(n){a[e]=n,--o||t(a)}}for(var l=0,u;l<e.length;l++)u=e[l],u&&typeof u.then==`function`?u.then(s(l),n):a[l]=u;o||t(a)})},P.race=function(e){if(!Array.isArray(e))throw TypeError(`You must pass an array to Promise.race().`);return new P(function(t,n){for(var a=0,o;a<e.length;a++)o=e[a],o&&typeof o.then==`function`?o.then(t,n):t(o)})},P.resolve=function(e){return e&&_typeof$2(e)===`object`&&e.constructor===P?e:new P(function(t){t(e)})},P.reject=function(e){return new P(function(t,n){n(e)})};var meaninglessTransform={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function insertCss(e){if(!(!e||!IS_DOM)){var t=DOCUMENT.createElement(`style`);t.setAttribute(`type`,`text/css`),t.innerHTML=e;for(var n=DOCUMENT.head.childNodes,a=null,o=n.length-1;o>-1;o--){var s=n[o],l=(s.tagName||``).toUpperCase();[`STYLE`,`LINK`].indexOf(l)>-1&&(a=s)}return DOCUMENT.head.insertBefore(t,a),e}}var idPool=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`;function nextUniqueId(){for(var e=12,t=``;e-->0;)t+=idPool[Math.random()*62|0];return t}function htmlEscape(e){return`${e}`.replace(/&/g,`&`).replace(/"/g,`"`).replace(/'/g,`'`).replace(/</g,`<`).replace(/>/g,`>`)}function joinAttributes(e){return Object.keys(e||{}).reduce(function(t,n){return t+`${n}="${htmlEscape(e[n])}" `},``).trim()}function joinStyles(e){return Object.keys(e||{}).reduce(function(t,n){return t+`${n}: ${e[n]};`},``)}function transformIsMeaningful(e){return e.size!==meaninglessTransform.size||e.x!==meaninglessTransform.x||e.y!==meaninglessTransform.y||e.rotate!==meaninglessTransform.rotate||e.flipX||e.flipY}function transformForSvg(e){var t=e.transform,n=e.containerWidth,a=e.iconWidth;return{outer:{transform:`translate(${n/2} 256)`},inner:{transform:`${`translate(${t.x*32}, ${t.y*32}) `} ${`scale(${t.size/16*(t.flipX?-1:1)}, ${t.size/16*(t.flipY?-1:1)}) `} ${`rotate(${t.rotate} 0 0)`}`},path:{transform:`translate(${a/2*-1} -256)`}}}var ALL_SPACE={x:0,y:0,width:`100%`,height:`100%`};function fillBlack(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill=`black`),e}function deGroup(e){return e.tag===`g`?e.children:[e]}function makeIconMasking(e){var t=e.children,n=e.attributes,a=e.main,o=e.mask,s=e.maskId,l=e.transform,u=a.width,d=a.icon,f=o.width,m=o.icon,h=transformForSvg({transform:l,containerWidth:f,iconWidth:u}),v={tag:`rect`,attributes:_objectSpread({},ALL_SPACE,{fill:`white`})},y=d.children?{children:d.children.map(fillBlack)}:{},b={tag:`g`,attributes:_objectSpread({},h.inner),children:[fillBlack(_objectSpread({tag:d.tag,attributes:_objectSpread({},d.attributes,h.path)},y))]},x={tag:`g`,attributes:_objectSpread({},h.outer),children:[b]},S=`mask-${s||nextUniqueId()}`,C=`clip-${s||nextUniqueId()}`,T={tag:`mask`,attributes:_objectSpread({},ALL_SPACE,{id:S,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`}),children:[v,x]},E={tag:`defs`,children:[{tag:`clipPath`,attributes:{id:C},children:deGroup(m)},T]};return t.push(E,{tag:`rect`,attributes:_objectSpread({fill:`currentColor`,"clip-path":`url(#${C})`,mask:`url(#${S})`},ALL_SPACE)}),{children:t,attributes:n}}function makeIconStandard(e){var t=e.children,n=e.attributes,a=e.main,o=e.transform,s=e.styles,l=joinStyles(s);if(l.length>0&&(n.style=l),transformIsMeaningful(o)){var u=transformForSvg({transform:o,containerWidth:a.width,iconWidth:a.width});t.push({tag:`g`,attributes:_objectSpread({},u.outer),children:[{tag:`g`,attributes:_objectSpread({},u.inner),children:[{tag:a.icon.tag,children:a.icon.children,attributes:_objectSpread({},a.icon.attributes,u.path)}]}]})}else t.push(a.icon);return{children:t,attributes:n}}function asIcon(e){var t=e.children,n=e.main,a=e.mask,o=e.attributes,s=e.styles,l=e.transform;if(transformIsMeaningful(l)&&n.found&&!a.found){var u={x:n.width/n.height/2,y:.5};o.style=joinStyles(_objectSpread({},s,{"transform-origin":`${u.x+l.x/16}em ${u.y+l.y/16}em`}))}return[{tag:`svg`,attributes:o,children:t}]}function asSymbol(e){var t=e.prefix,n=e.iconName,a=e.children,o=e.attributes,s=e.symbol;return[{tag:`svg`,attributes:{style:`display: none;`},children:[{tag:`symbol`,attributes:_objectSpread({},o,{id:s===!0?`${t}-${config.familyPrefix}-${n}`:s}),children:a}]}]}function makeInlineSvgAbstract(e){var t=e.icons,n=t.main,a=t.mask,o=e.prefix,s=e.iconName,l=e.transform,u=e.symbol,d=e.title,f=e.maskId,m=e.titleId,h=e.extra,v=e.watchable,y=v!==void 0&&v,b=a.found?a:n,x=b.width,S=b.height,C=o===`fak`,T=C?``:`fa-w-${Math.ceil(x/S*16)}`,E=[config.replacementClass,s?`${config.familyPrefix}-${s}`:``,T].filter(function(e){return h.classes.indexOf(e)===-1}).filter(function(e){return e!==``||!!e}).concat(h.classes).join(` `),D={children:[],attributes:_objectSpread({},h.attributes,{"data-prefix":o,"data-icon":s,class:E,role:h.attributes.role||`img`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 ${x} ${S}`})},O=C&&!~h.classes.indexOf(`fa-fw`)?{width:`${x/S*16*.0625}em`}:{};y&&(D.attributes[DATA_FA_I2SVG]=``),d&&D.children.push({tag:`title`,attributes:{id:D.attributes[`aria-labelledby`]||`title-${m||nextUniqueId()}`},children:[d]});var k=_objectSpread({},D,{prefix:o,iconName:s,main:n,mask:a,maskId:f,transform:l,symbol:u,styles:_objectSpread({},O,h.styles)}),j=a.found&&n.found?makeIconMasking(k):makeIconStandard(k),M=j.children,N=j.attributes;return k.children=M,k.attributes=N,u?asSymbol(k):asIcon(k)}var noop$1$1=function(){},p=config.measurePerformance&&PERFORMANCE&&PERFORMANCE.mark&&PERFORMANCE.measure?PERFORMANCE:{mark:noop$1$1,measure:noop$1$1},bindInternal4=function(e,t){return function(n,a,o,s){return e.call(t,n,a,o,s)}},reduce=function(e,t,n,a){var o=Object.keys(e),s=o.length,l=a===void 0?t:bindInternal4(t,a),u,d,f;for(n===void 0?(u=1,f=e[o[0]]):(u=0,f=n);u<s;u++)d=o[u],f=l(f,e[d],d,e);return f};function defineIcons(e,t){var n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}).skipHooks,a=n!==void 0&&n,o=Object.keys(t).reduce(function(e,n){var a=t[n];return a.icon?e[a.iconName]=a.icon:e[n]=a,e},{});typeof namespace.hooks.addPack==`function`&&!a?namespace.hooks.addPack(e,o):namespace.styles[e]=_objectSpread({},namespace.styles[e]||{},o),e===`fas`&&defineIcons(`fa`,t)}var styles$1=namespace.styles,shims=namespace.shims,_byUnicode={},_byLigature={},_byOldName={},build=function(){var e=function(e){return reduce(styles$1,function(t,n,a){return t[a]=reduce(n,e,{}),t},{})};e(function(e,t,n){return t[3]&&(e[t[3]]=n),e}),e(function(e,t,n){var a=t[2];return e[n]=n,a.forEach(function(t){e[t]=n}),e});var t=`far`in styles$1;reduce(shims,function(e,n){var a=n[0],o=n[1],s=n[2];return o===`far`&&!t&&(o=`fas`),e[a]={prefix:o,iconName:s},e},{})};build();var styles$1$1=namespace.styles;function iconFromMapping(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}function toHtml(e){var t=e.tag,n=e.attributes,a=n===void 0?{}:n,o=e.children,s=o===void 0?[]:o;return typeof e==`string`?htmlEscape(e):`<${t} ${joinAttributes(a)}>${s.map(toHtml).join(``)}</${t}>`}var parseTransformString=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(` `).reduce(function(e,t){var n=t.toLowerCase().split(`-`),a=n[0],o=n.slice(1).join(`-`);if(a&&o===`h`)return e.flipX=!0,e;if(a&&o===`v`)return e.flipY=!0,e;if(o=parseFloat(o),isNaN(o))return e;switch(a){case`grow`:e.size+=o;break;case`shrink`:e.size-=o;break;case`left`:e.x-=o;break;case`right`:e.x+=o;break;case`up`:e.y-=o;break;case`down`:e.y+=o;break;case`rotate`:e.rotate+=o;break}return e},t):t};function MissingIcon(e){this.name=`MissingIcon`,this.message=e||`Icon unavailable`,this.stack=Error().stack}MissingIcon.prototype=Object.create(Error.prototype),MissingIcon.prototype.constructor=MissingIcon;var FILL={fill:`currentColor`},ANIMATION_BASE={attributeType:`XML`,repeatCount:`indefinite`,dur:`2s`},RING={tag:`path`,attributes:_objectSpread({},FILL,{d:`M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z`})},OPACITY_ANIMATE=_objectSpread({},ANIMATION_BASE,{attributeName:`opacity`}),missing={tag:`g`,children:[RING,{tag:`circle`,attributes:_objectSpread({},FILL,{cx:`256`,cy:`364`,r:`28`}),children:[{tag:`animate`,attributes:_objectSpread({},ANIMATION_BASE,{attributeName:`r`,values:`28;14;28;28;14;28;`})},{tag:`animate`,attributes:_objectSpread({},OPACITY_ANIMATE,{values:`1;0;1;1;0;1;`})}]},{tag:`path`,attributes:_objectSpread({},FILL,{opacity:`1`,d:`M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z`}),children:[{tag:`animate`,attributes:_objectSpread({},OPACITY_ANIMATE,{values:`1;0;0;0;0;1;`})}]},{tag:`path`,attributes:_objectSpread({},FILL,{opacity:`0`,d:`M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z`}),children:[{tag:`animate`,attributes:_objectSpread({},OPACITY_ANIMATE,{values:`0;0;1;1;0;0;`})}]}]},styles$2=namespace.styles;function asFoundIcon(e){var t=e[0],n=e[1],a=_slicedToArray(e.slice(4),1)[0],o=null;return o=Array.isArray(a)?{tag:`g`,attributes:{class:`${config.familyPrefix}-${DUOTONE_CLASSES.GROUP}`},children:[{tag:`path`,attributes:{class:`${config.familyPrefix}-${DUOTONE_CLASSES.SECONDARY}`,fill:`currentColor`,d:a[0]}},{tag:`path`,attributes:{class:`${config.familyPrefix}-${DUOTONE_CLASSES.PRIMARY}`,fill:`currentColor`,d:a[1]}}]}:{tag:`path`,attributes:{fill:`currentColor`,d:a}},{found:!0,width:t,height:n,icon:o}}var styles$3=namespace.styles,baseStyles=`svg:not(:root).svg-inline--fa {
|
|
161
|
+
`&&(n.value+=` `);let l=s.boxSizing,u=getStyleValue(s.paddingBottom)+getStyleValue(s.paddingTop),d=getStyleValue(s.borderBottomWidth)+getStyleValue(s.borderTopWidth),m=n.scrollHeight;n.value=`x`;let h=n.scrollHeight,y=m;return o&&(y=Math.max(Number(o)*h,y)),a&&(y=Math.min(Number(a)*h,y)),y=Math.max(y,h),{outerHeightStyle:y+(l===`border-box`?u+d:0),overflowing:Math.abs(y-m)<=1}},[a,o,e.placeholder]),b=useEventCallback$1(()=>{let e=f.current,t=y();if(!e||!t||isEmpty$1(t))return!1;let n=t.outerHeightStyle;return h.current!=null&&h.current!==n}),x=import_react$24.useCallback(()=>{let e=f.current,t=y();if(!e||!t||isEmpty$1(t))return;let n=t.outerHeightStyle;h.current!==n&&(h.current=n,e.style.height=`${n}px`),e.style.overflow=t.overflowing?`hidden`:``},[y]),S=import_react$24.useRef(-1);return useEnhancedEffect$1(()=>{let e=debounce$3(x),t=f?.current;if(!t)return;let n=ownerWindow(t);n.addEventListener(`resize`,e);let a;return typeof ResizeObserver<`u`&&(a=new ResizeObserver(()=>{b()&&(a.unobserve(t),cancelAnimationFrame(S.current),x(),S.current=requestAnimationFrame(()=>{a.observe(t)}))}),a.observe(t)),()=>{e.clear(),cancelAnimationFrame(S.current),n.removeEventListener(`resize`,e),a&&a.disconnect()}},[y,x,b]),useEnhancedEffect$1(()=>{x()}),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(`textarea`,_extends$3({value:l,onChange:e=>{d||x(),n&&n(e)},ref:m,rows:o,style:s},u)),(0,import_jsx_runtime.jsx)(`textarea`,{"aria-hidden":!0,className:e.className,readOnly:!0,ref:v,tabIndex:-1,style:_extends$3({},styles$5.shadow,s,{paddingTop:0,paddingBottom:0})})]})});init_generateUtilityClasses(),init_generateUtilityClass();function getInputBaseUtilityClass(e){return generateUtilityClass(`MuiInputBase`,e)}var inputBaseClasses=generateUtilityClasses(`MuiInputBase`,[`root`,`formControl`,`focused`,`disabled`,`adornedStart`,`adornedEnd`,`error`,`sizeSmall`,`multiline`,`colorSecondary`,`fullWidth`,`hiddenLabel`,`readOnly`,`input`,`inputSizeSmall`,`inputMultiline`,`inputTypeSearch`,`inputAdornedStart`,`inputAdornedEnd`,`inputHiddenLabel`]);init_objectWithoutPropertiesLoose(),init_extends(),init_formatMuiErrorMessage(),init_clsx(),init_composeClasses(),init_isHostComponent(),init_styled(),init_DefaultPropsProvider(),init_capitalize(),init_useForkRef(),init_useEnhancedEffect();var _excluded$34=`aria-describedby.autoComplete.autoFocus.className.color.components.componentsProps.defaultValue.disabled.disableInjectingGlobalStyles.endAdornment.error.fullWidth.id.inputComponent.inputProps.inputRef.margin.maxRows.minRows.multiline.name.onBlur.onChange.onClick.onFocus.onKeyDown.onKeyUp.placeholder.readOnly.renderSuffix.rows.size.slotProps.slots.startAdornment.type.value`.split(`.`),rootOverridesResolver=(e,t)=>{let{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size===`small`&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${capitalize_default(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},inputOverridesResolver=(e,t)=>{let{ownerState:n}=e;return[t.input,n.size===`small`&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type===`search`&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},useUtilityClasses$30=e=>{let{classes:t,color:n,disabled:a,error:o,endAdornment:s,focused:l,formControl:u,fullWidth:d,hiddenLabel:f,multiline:m,readOnly:h,size:v,startAdornment:y,type:b}=e;return composeClasses({root:[`root`,`color${capitalize_default(n)}`,a&&`disabled`,o&&`error`,d&&`fullWidth`,l&&`focused`,u&&`formControl`,v&&v!==`medium`&&`size${capitalize_default(v)}`,m&&`multiline`,y&&`adornedStart`,s&&`adornedEnd`,f&&`hiddenLabel`,h&&`readOnly`],input:[`input`,a&&`disabled`,b===`search`&&`inputTypeSearch`,m&&`inputMultiline`,v===`small`&&`inputSizeSmall`,f&&`inputHiddenLabel`,y&&`inputAdornedStart`,s&&`inputAdornedEnd`,h&&`readOnly`]},getInputBaseUtilityClass,t)},InputBaseRoot=styled$1(`div`,{name:`MuiInputBase`,slot:`Root`,overridesResolver:rootOverridesResolver})(({theme:e,ownerState:t})=>_extends$3({},e.typography.body1,{color:(e.vars||e).palette.text.primary,lineHeight:`1.4375em`,boxSizing:`border-box`,position:`relative`,cursor:`text`,display:`inline-flex`,alignItems:`center`,[`&.${inputBaseClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:`default`}},t.multiline&&_extends$3({padding:`4px 0 5px`},t.size===`small`&&{paddingTop:1}),t.fullWidth&&{width:`100%`})),InputBaseComponent=styled$1(`input`,{name:`MuiInputBase`,slot:`Input`,overridesResolver:inputOverridesResolver})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`,a=_extends$3({color:`currentColor`},e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5},{transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.shorter})}),o={opacity:`0 !important`},s=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5};return _extends$3({font:`inherit`,letterSpacing:`inherit`,color:`currentColor`,padding:`4px 0 5px`,border:0,boxSizing:`content-box`,background:`none`,height:`1.4375em`,margin:0,WebkitTapHighlightColor:`transparent`,display:`block`,minWidth:0,width:`100%`,animationName:`mui-auto-fill-cancel`,animationDuration:`10ms`,"&::-webkit-input-placeholder":a,"&::-moz-placeholder":a,"&:-ms-input-placeholder":a,"&::-ms-input-placeholder":a,"&:focus":{outline:0},"&:invalid":{boxShadow:`none`},"&::-webkit-search-decoration":{WebkitAppearance:`none`},[`label[data-shrink=false] + .${inputBaseClasses.formControl} &`]:{"&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&:-ms-input-placeholder":o,"&::-ms-input-placeholder":o,"&:focus::-webkit-input-placeholder":s,"&:focus::-moz-placeholder":s,"&:focus:-ms-input-placeholder":s,"&:focus::-ms-input-placeholder":s},[`&.${inputBaseClasses.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},"&:-webkit-autofill":{animationDuration:`5000s`,animationName:`mui-auto-fill`}},t.size===`small`&&{paddingTop:1},t.multiline&&{height:`auto`,resize:`none`,padding:0,paddingTop:0},t.type===`search`&&{MozAppearance:`textfield`})}),inputGlobalStyles=(0,import_jsx_runtime.jsx)(GlobalStyles,{styles:{"@keyframes mui-auto-fill":{from:{display:`block`}},"@keyframes mui-auto-fill-cancel":{from:{display:`block`}}}}),InputBase=import_react$24.forwardRef(function(e,t){var n;let a=useDefaultProps({props:e,name:`MuiInputBase`}),{"aria-describedby":o,autoComplete:s,autoFocus:l,className:u,components:d={},componentsProps:f={},defaultValue:m,disabled:h,disableInjectingGlobalStyles:v,endAdornment:y,fullWidth:b=!1,id:x,inputComponent:S=`input`,inputProps:C={},inputRef:T,maxRows:E,minRows:D,multiline:O=!1,name:k,onBlur:j,onChange:M,onClick:N,onFocus:F,onKeyDown:I,onKeyUp:L,placeholder:R,readOnly:z,renderSuffix:B,rows:V,slotProps:H={},slots:U={},startAdornment:W,type:G=`text`,value:ee}=a,te=_objectWithoutPropertiesLoose$3(a,_excluded$34),K=C.value==null?ee:C.value,{current:q}=import_react$24.useRef(K!=null),ne=import_react$24.useRef(),re=import_react$24.useCallback(e=>{},[]),J=useForkRef_default(ne,T,C.ref,re),[ie,ae]=import_react$24.useState(!1),oe=useFormControl(),se=formControlState({props:a,muiFormControl:oe,states:[`color`,`disabled`,`error`,`hiddenLabel`,`size`,`required`,`filled`]});se.focused=oe?oe.focused:ie,import_react$24.useEffect(()=>{!oe&&h&&ie&&(ae(!1),j&&j())},[oe,h,ie,j]);let ce=oe&&oe.onFilled,Y=oe&&oe.onEmpty,le=import_react$24.useCallback(e=>{isFilled(e)?ce&&ce():Y&&Y()},[ce,Y]);useEnhancedEffect_default(()=>{q&&le({value:K})},[K,le,q]);let ue=e=>{if(se.disabled){e.stopPropagation();return}F&&F(e),C.onFocus&&C.onFocus(e),oe&&oe.onFocus?oe.onFocus(e):ae(!0)},de=e=>{j&&j(e),C.onBlur&&C.onBlur(e),oe&&oe.onBlur?oe.onBlur(e):ae(!1)},X=(e,...t)=>{if(!q){let t=e.target||ne.current;if(t==null)throw Error(formatMuiErrorMessage(1));le({value:t.value})}C.onChange&&C.onChange(e,...t),M&&M(e,...t)};import_react$24.useEffect(()=>{le(ne.current)},[]);let fe=e=>{ne.current&&e.currentTarget===e.target&&ne.current.focus(),N&&N(e)},pe=S,me=C;O&&pe===`input`&&(me=_extends$3(V?{type:void 0,minRows:V,maxRows:V}:{type:void 0,maxRows:E,minRows:D},me),pe=TextareaAutosize);let he=e=>{le(e.animationName===`mui-auto-fill-cancel`?ne.current:{value:`x`})};import_react$24.useEffect(()=>{oe&&oe.setAdornedStart(!!W)},[oe,W]);let ge=_extends$3({},a,{color:se.color||`primary`,disabled:se.disabled,endAdornment:y,error:se.error,focused:se.focused,formControl:oe,fullWidth:b,hiddenLabel:se.hiddenLabel,multiline:O,size:se.size,startAdornment:W,type:G}),Z=useUtilityClasses$30(ge),_e=U.root||d.Root||InputBaseRoot,Q=H.root||f.root||{},$=U.input||d.Input||InputBaseComponent;return me=_extends$3({},me,H.input??f.input),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[!v&&inputGlobalStyles,(0,import_jsx_runtime.jsxs)(_e,_extends$3({},Q,!isHostComponent(_e)&&{ownerState:_extends$3({},ge,Q.ownerState)},{ref:t,onClick:fe},te,{className:clsx$1(Z.root,Q.className,u,z&&`MuiInputBase-readOnly`),children:[W,(0,import_jsx_runtime.jsx)(FormControlContext.Provider,{value:null,children:(0,import_jsx_runtime.jsx)($,_extends$3({ownerState:ge,"aria-invalid":se.error,"aria-describedby":o,autoComplete:s,autoFocus:l,defaultValue:m,disabled:se.disabled,id:x,onAnimationStart:he,name:k,placeholder:R,readOnly:z,required:se.required,rows:V,value:K,onKeyDown:I,onKeyUp:L,type:G},me,!isHostComponent($)&&{as:pe,ownerState:_extends$3({},ge,me.ownerState)},{ref:J,className:clsx$1(Z.input,me.className,z&&`MuiInputBase-readOnly`),onBlur:de,onChange:X,onFocus:ue}))}),y,B?B(_extends$3({},se,{startAdornment:W})):null]}))]})});init_extends(),init_generateUtilityClasses(),init_generateUtilityClass();function getInputUtilityClass(e){return generateUtilityClass(`MuiInput`,e)}var inputClasses=_extends$3({},inputBaseClasses,generateUtilityClasses(`MuiInput`,[`root`,`underline`,`input`]));init_objectWithoutPropertiesLoose(),init_extends(),init_composeClasses(),init_deepmerge(),init_styled(),init_DefaultPropsProvider();var _excluded$33=[`disableUnderline`,`components`,`componentsProps`,`fullWidth`,`inputComponent`,`multiline`,`slotProps`,`slots`,`type`],useUtilityClasses$29=e=>{let{classes:t,disableUnderline:n}=e;return _extends$3({},t,composeClasses({root:[`root`,!n&&`underline`],input:[`input`]},getInputUtilityClass,t))},InputRoot=styled$1(InputBaseRoot,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`;return e.vars&&(n=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),_extends$3({position:`relative`},t.formControl&&{"label + &":{marginTop:16}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t.color].main}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${inputClasses.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${inputClasses.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:`"\\00a0"`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${inputClasses.disabled}, .${inputClasses.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${inputClasses.disabled}:before`]:{borderBottomStyle:`dotted`}})}),InputInput=styled$1(InputBaseComponent,{name:`MuiInput`,slot:`Input`,overridesResolver:inputOverridesResolver})({}),Input=import_react$24.forwardRef(function(e,t){var n,a,o,s;let l=useDefaultProps({props:e,name:`MuiInput`}),{disableUnderline:u,components:d={},componentsProps:f,fullWidth:m=!1,inputComponent:h=`input`,multiline:v=!1,slotProps:y,slots:b={},type:x=`text`}=l,S=_objectWithoutPropertiesLoose$3(l,_excluded$33),C=useUtilityClasses$29(l),T={root:{ownerState:{disableUnderline:u}}},E=y??f?deepmerge(y??f,T):T;return(0,import_jsx_runtime.jsx)(InputBase,_extends$3({slots:{root:b.root??d.Root??InputRoot,input:b.input??d.Input??InputInput},slotProps:E,fullWidth:m,inputComponent:h,multiline:v,ref:t,type:x},S,{classes:C}))});Input.muiName=`Input`,init_extends(),init_generateUtilityClasses(),init_generateUtilityClass();function getFilledInputUtilityClass(e){return generateUtilityClass(`MuiFilledInput`,e)}var filledInputClasses=_extends$3({},inputBaseClasses,generateUtilityClasses(`MuiFilledInput`,[`root`,`underline`,`input`]));init_objectWithoutPropertiesLoose(),init_extends(),init_deepmerge(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$32=[`disableUnderline`,`components`,`componentsProps`,`fullWidth`,`hiddenLabel`,`inputComponent`,`multiline`,`slotProps`,`slots`,`type`],useUtilityClasses$28=e=>{let{classes:t,disableUnderline:n}=e;return _extends$3({},t,composeClasses({root:[`root`,!n&&`underline`],input:[`input`]},getFilledInputUtilityClass,t))},FilledInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiFilledInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{var n;let a=e.palette.mode===`light`,o=a?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`,s=a?`rgba(0, 0, 0, 0.06)`:`rgba(255, 255, 255, 0.09)`,l=a?`rgba(0, 0, 0, 0.09)`:`rgba(255, 255, 255, 0.13)`,u=a?`rgba(0, 0, 0, 0.12)`:`rgba(255, 255, 255, 0.12)`;return _extends$3({position:`relative`,backgroundColor:e.vars?e.vars.palette.FilledInput.bg:s,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(`background-color`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:l,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:s}},[`&.${filledInputClasses.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:s},[`&.${filledInputClasses.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:u}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t.color||`primary`]?.main}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${filledInputClasses.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${filledInputClasses.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:o}`,left:0,bottom:0,content:`"\\00a0"`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${filledInputClasses.disabled}, .${filledInputClasses.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${filledInputClasses.disabled}:before`]:{borderBottomStyle:`dotted`}},t.startAdornment&&{paddingLeft:12},t.endAdornment&&{paddingRight:12},t.multiline&&_extends$3({padding:`25px 12px 8px`},t.size===`small`&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.hiddenLabel&&t.size===`small`&&{paddingTop:8,paddingBottom:9}))}),FilledInputInput=styled$1(InputBaseComponent,{name:`MuiFilledInput`,slot:`Input`,overridesResolver:inputOverridesResolver})(({theme:e,ownerState:t})=>_extends$3({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`}},e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},t.size===`small`&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0},t.hiddenLabel&&t.size===`small`&&{paddingTop:8,paddingBottom:9},t.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0})),FilledInput=import_react$24.forwardRef(function(e,t){var n,a,o,s;let l=useDefaultProps({props:e,name:`MuiFilledInput`}),{components:u={},componentsProps:d,fullWidth:f=!1,inputComponent:m=`input`,multiline:h=!1,slotProps:v,slots:y={},type:b=`text`}=l,x=_objectWithoutPropertiesLoose$3(l,_excluded$32),S=_extends$3({},l,{fullWidth:f,inputComponent:m,multiline:h,type:b}),C=useUtilityClasses$28(l),T={root:{ownerState:S},input:{ownerState:S}},E=v??d?deepmerge(T,v??d):T;return(0,import_jsx_runtime.jsx)(InputBase,_extends$3({slots:{root:y.root??u.Root??FilledInputRoot,input:y.input??u.Input??FilledInputInput},componentsProps:E,fullWidth:f,inputComponent:m,multiline:h,ref:t,type:b},x,{classes:C}))});FilledInput.muiName=`Input`,init_objectWithoutPropertiesLoose(),init_extends(),init_styled();var _span$2,_excluded$31=[`children`,`classes`,`className`,`label`,`notched`],NotchedOutlineRoot$1=styled$1(`fieldset`,{name:`MuiNotchedOutlined`,shouldForwardProp:rootShouldForwardProp})({textAlign:`left`,position:`absolute`,bottom:0,right:0,top:-5,left:0,margin:0,padding:`0 8px`,pointerEvents:`none`,borderRadius:`inherit`,borderStyle:`solid`,borderWidth:1,overflow:`hidden`,minWidth:`0%`}),NotchedOutlineLegend=styled$1(`legend`,{name:`MuiNotchedOutlined`,shouldForwardProp:rootShouldForwardProp})(({ownerState:e,theme:t})=>_extends$3({float:`unset`,width:`auto`,overflow:`hidden`},!e.withLabel&&{padding:0,lineHeight:`11px`,transition:t.transitions.create(`width`,{duration:150,easing:t.transitions.easing.easeOut})},e.withLabel&&_extends$3({display:`block`,padding:0,height:11,fontSize:`0.75em`,visibility:`hidden`,maxWidth:.01,transition:t.transitions.create(`max-width`,{duration:50,easing:t.transitions.easing.easeOut}),whiteSpace:`nowrap`,"& > span":{paddingLeft:5,paddingRight:5,display:`inline-block`,opacity:0,visibility:`visible`}},e.notched&&{maxWidth:`100%`,transition:t.transitions.create(`max-width`,{duration:100,easing:t.transitions.easing.easeOut,delay:50})})));function NotchedOutline(e){let{className:t,label:n,notched:a}=e,o=_objectWithoutPropertiesLoose$3(e,_excluded$31),s=n!=null&&n!==``,l=_extends$3({},e,{notched:a,withLabel:s});return(0,import_jsx_runtime.jsx)(NotchedOutlineRoot$1,_extends$3({"aria-hidden":!0,className:t,ownerState:l},o,{children:(0,import_jsx_runtime.jsx)(NotchedOutlineLegend,{ownerState:l,children:s?(0,import_jsx_runtime.jsx)(`span`,{children:n}):_span$2||=(0,import_jsx_runtime.jsx)(`span`,{className:`notranslate`,children:``})})}))}init_extends(),init_generateUtilityClasses(),init_generateUtilityClass();function getOutlinedInputUtilityClass(e){return generateUtilityClass(`MuiOutlinedInput`,e)}var outlinedInputClasses=_extends$3({},inputBaseClasses,generateUtilityClasses(`MuiOutlinedInput`,[`root`,`notchedOutline`,`input`]));init_objectWithoutPropertiesLoose(),init_extends(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$30=[`components`,`fullWidth`,`inputComponent`,`label`,`multiline`,`notched`,`slots`,`type`],useUtilityClasses$27=e=>{let{classes:t}=e;return _extends$3({},t,composeClasses({root:[`root`],notchedOutline:[`notchedOutline`],input:[`input`]},getOutlinedInputUtilityClass,t))},OutlinedInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiOutlinedInput`,slot:`Root`,overridesResolver:rootOverridesResolver})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return _extends$3({position:`relative`,borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${outlinedInputClasses.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:n}},[`&.${outlinedInputClasses.focused} .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette[t.color].main,borderWidth:2},[`&.${outlinedInputClasses.error} .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${outlinedInputClasses.disabled} .${outlinedInputClasses.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}},t.startAdornment&&{paddingLeft:14},t.endAdornment&&{paddingRight:14},t.multiline&&_extends$3({padding:`16.5px 14px`},t.size===`small`&&{padding:`8.5px 14px`}))}),NotchedOutlineRoot=styled$1(NotchedOutline,{name:`MuiOutlinedInput`,slot:`NotchedOutline`,overridesResolver:(e,t)=>t.notchedOutline})(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}}),OutlinedInputInput=styled$1(InputBaseComponent,{name:`MuiOutlinedInput`,slot:`Input`,overridesResolver:inputOverridesResolver})(({theme:e,ownerState:t})=>_extends$3({padding:`16.5px 14px`},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderRadius:`inherit`}},e.vars&&{"&:-webkit-autofill":{borderRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},t.size===`small`&&{padding:`8.5px 14px`},t.multiline&&{padding:0},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0})),OutlinedInput=import_react$24.forwardRef(function(e,t){var n,a,o,s,l;let u=useDefaultProps({props:e,name:`MuiOutlinedInput`}),{components:d={},fullWidth:f=!1,inputComponent:m=`input`,label:h,multiline:v=!1,notched:y,slots:b={},type:x=`text`}=u,S=_objectWithoutPropertiesLoose$3(u,_excluded$30),C=useUtilityClasses$27(u),T=useFormControl(),E=formControlState({props:u,muiFormControl:T,states:[`color`,`disabled`,`error`,`focused`,`hiddenLabel`,`size`,`required`]}),D=_extends$3({},u,{color:E.color||`primary`,disabled:E.disabled,error:E.error,focused:E.focused,formControl:T,fullWidth:f,hiddenLabel:E.hiddenLabel,multiline:v,size:E.size,type:x});return(0,import_jsx_runtime.jsx)(InputBase,_extends$3({slots:{root:b.root??d.Root??OutlinedInputRoot,input:b.input??d.Input??OutlinedInputInput},renderSuffix:e=>(0,import_jsx_runtime.jsx)(NotchedOutlineRoot,{ownerState:D,className:C.notchedOutline,label:h!=null&&h!==``&&E.required?l||=(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[h,` `,`*`]}):h,notched:y===void 0?!!(e.startAdornment||e.filled||e.focused):y}),fullWidth:f,inputComponent:m,multiline:v,ref:t,type:x},S,{classes:_extends$3({},C,{notchedOutline:null})}))});OutlinedInput.muiName=`Input`,init_generateUtilityClasses(),init_generateUtilityClass();function getFormLabelUtilityClasses(e){return generateUtilityClass(`MuiFormLabel`,e)}var formLabelClasses=generateUtilityClasses(`MuiFormLabel`,[`root`,`colorSecondary`,`focused`,`disabled`,`error`,`filled`,`required`,`asterisk`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$29=[`children`,`className`,`color`,`component`,`disabled`,`error`,`filled`,`focused`,`required`],useUtilityClasses$26=e=>{let{classes:t,color:n,focused:a,disabled:o,error:s,filled:l,required:u}=e;return composeClasses({root:[`root`,`color${capitalize_default(n)}`,o&&`disabled`,s&&`error`,l&&`filled`,a&&`focused`,u&&`required`],asterisk:[`asterisk`,s&&`error`]},getFormLabelUtilityClasses,t)},FormLabelRoot=styled$1(`label`,{name:`MuiFormLabel`,slot:`Root`,overridesResolver:({ownerState:e},t)=>_extends$3({},t.root,e.color===`secondary`&&t.colorSecondary,e.filled&&t.filled)})(({theme:e,ownerState:t})=>_extends$3({color:(e.vars||e).palette.text.secondary},e.typography.body1,{lineHeight:`1.4375em`,padding:0,position:`relative`,[`&.${formLabelClasses.focused}`]:{color:(e.vars||e).palette[t.color].main},[`&.${formLabelClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${formLabelClasses.error}`]:{color:(e.vars||e).palette.error.main}})),AsteriskComponent=styled$1(`span`,{name:`MuiFormLabel`,slot:`Asterisk`,overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${formLabelClasses.error}`]:{color:(e.vars||e).palette.error.main}})),FormLabel=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiFormLabel`}),{children:a,className:o,component:s=`label`}=n,l=_objectWithoutPropertiesLoose$3(n,_excluded$29),u=formControlState({props:n,muiFormControl:useFormControl(),states:[`color`,`required`,`focused`,`disabled`,`error`,`filled`]}),d=_extends$3({},n,{color:u.color||`primary`,component:s,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),f=useUtilityClasses$26(d);return(0,import_jsx_runtime.jsxs)(FormLabelRoot,_extends$3({as:s,ownerState:d,className:clsx$1(f.root,o),ref:t},l,{children:[a,u.required&&(0,import_jsx_runtime.jsxs)(AsteriskComponent,{ownerState:d,"aria-hidden":!0,className:f.asterisk,children:[` `,`*`]})]}))});init_generateUtilityClasses(),init_generateUtilityClass();function getInputLabelUtilityClasses(e){return generateUtilityClass(`MuiInputLabel`,e)}var inputLabelClasses=generateUtilityClasses(`MuiInputLabel`,[`root`,`focused`,`disabled`,`error`,`required`,`asterisk`,`formControl`,`sizeSmall`,`shrink`,`animated`,`standard`,`filled`,`outlined`]);init_objectWithoutPropertiesLoose(),init_extends(),init_composeClasses(),init_clsx(),init_DefaultPropsProvider(),init_capitalize(),init_styled();var _excluded$28=[`disableAnimation`,`margin`,`shrink`,`variant`,`className`],useUtilityClasses$25=e=>{let{classes:t,formControl:n,size:a,shrink:o,disableAnimation:s,variant:l,required:u}=e;return _extends$3({},t,composeClasses({root:[`root`,n&&`formControl`,!s&&`animated`,o&&`shrink`,a&&a!==`normal`&&`size${capitalize_default(a)}`,l],asterisk:[u&&`asterisk`]},getInputLabelUtilityClasses,t))},InputLabelRoot=styled$1(FormLabel,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiInputLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${formLabelClasses.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size===`small`&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(({theme:e,ownerState:t})=>_extends$3({display:`block`,transformOrigin:`top left`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,maxWidth:`100%`},t.formControl&&{position:`absolute`,left:0,top:0,transform:`translate(0, 20px) scale(1)`},t.size===`small`&&{transform:`translate(0, 17px) scale(1)`},t.shrink&&{transform:`translate(0, -1.5px) scale(0.75)`,transformOrigin:`top left`,maxWidth:`133%`},!t.disableAnimation&&{transition:e.transitions.create([`color`,`transform`,`max-width`],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},t.variant===`filled`&&_extends$3({zIndex:1,pointerEvents:`none`,transform:`translate(12px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`},t.size===`small`&&{transform:`translate(12px, 13px) scale(1)`},t.shrink&&_extends$3({userSelect:`none`,pointerEvents:`auto`,transform:`translate(12px, 7px) scale(0.75)`,maxWidth:`calc(133% - 24px)`},t.size===`small`&&{transform:`translate(12px, 4px) scale(0.75)`})),t.variant===`outlined`&&_extends$3({zIndex:1,pointerEvents:`none`,transform:`translate(14px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`},t.size===`small`&&{transform:`translate(14px, 9px) scale(1)`},t.shrink&&{userSelect:`none`,pointerEvents:`auto`,maxWidth:`calc(133% - 32px)`,transform:`translate(14px, -9px) scale(0.75)`}))),InputLabel=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({name:`MuiInputLabel`,props:e}),{disableAnimation:a=!1,shrink:o,className:s}=n,l=_objectWithoutPropertiesLoose$3(n,_excluded$28),u=useFormControl(),d=o;d===void 0&&u&&(d=u.filled||u.focused||u.adornedStart);let f=formControlState({props:n,muiFormControl:u,states:[`size`,`variant`,`required`,`focused`]}),m=_extends$3({},n,{disableAnimation:a,formControl:u,shrink:d,size:f.size,variant:f.variant,required:f.required,focused:f.focused}),h=useUtilityClasses$25(m);return(0,import_jsx_runtime.jsx)(InputLabelRoot,_extends$3({"data-shrink":d,ownerState:m,ref:t,className:clsx$1(h.root,s)},l,{classes:h}))});init_generateUtilityClasses(),init_generateUtilityClass();function getFormHelperTextUtilityClasses(e){return generateUtilityClass(`MuiFormHelperText`,e)}var formHelperTextClasses=generateUtilityClasses(`MuiFormHelperText`,[`root`,`error`,`disabled`,`sizeSmall`,`sizeMedium`,`contained`,`focused`,`filled`,`required`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_capitalize(),init_DefaultPropsProvider();var _span$1,_excluded$27=[`children`,`className`,`component`,`disabled`,`error`,`filled`,`focused`,`margin`,`required`,`variant`],useUtilityClasses$24=e=>{let{classes:t,contained:n,size:a,disabled:o,error:s,filled:l,focused:u,required:d}=e;return composeClasses({root:[`root`,o&&`disabled`,s&&`error`,a&&`size${capitalize_default(a)}`,n&&`contained`,u&&`focused`,l&&`filled`,d&&`required`]},getFormHelperTextUtilityClasses,t)},FormHelperTextRoot=styled$1(`p`,{name:`MuiFormHelperText`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.size&&t[`size${capitalize_default(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(({theme:e,ownerState:t})=>_extends$3({color:(e.vars||e).palette.text.secondary},e.typography.caption,{textAlign:`left`,marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${formHelperTextClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${formHelperTextClasses.error}`]:{color:(e.vars||e).palette.error.main}},t.size===`small`&&{marginTop:4},t.contained&&{marginLeft:14,marginRight:14})),FormHelperText=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiFormHelperText`}),{children:a,className:o,component:s=`p`}=n,l=_objectWithoutPropertiesLoose$3(n,_excluded$27),u=formControlState({props:n,muiFormControl:useFormControl(),states:[`variant`,`size`,`disabled`,`error`,`filled`,`focused`,`required`]}),d=_extends$3({},n,{component:s,contained:u.variant===`filled`||u.variant===`outlined`,variant:u.variant,size:u.size,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),f=useUtilityClasses$24(d);return(0,import_jsx_runtime.jsx)(FormHelperTextRoot,_extends$3({as:s,ownerState:d,className:clsx$1(f.root,o),ref:t},l,{children:a===` `?_span$1||=(0,import_jsx_runtime.jsx)(`span`,{className:`notranslate`,children:``}):a}))}),ListContext=import_react$24.createContext({});init_generateUtilityClasses(),init_generateUtilityClass();function getListUtilityClass(e){return generateUtilityClass(`MuiList`,e)}var listClasses=generateUtilityClasses(`MuiList`,[`root`,`padding`,`dense`,`subheader`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$26=[`children`,`className`,`component`,`dense`,`disablePadding`,`subheader`],useUtilityClasses$23=e=>{let{classes:t,disablePadding:n,dense:a,subheader:o}=e;return composeClasses({root:[`root`,!n&&`padding`,a&&`dense`,o&&`subheader`]},getListUtilityClass,t)},ListRoot=styled$1(`ul`,{name:`MuiList`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})(({ownerState:e})=>_extends$3({listStyle:`none`,margin:0,padding:0,position:`relative`},!e.disablePadding&&{paddingTop:8,paddingBottom:8},e.subheader&&{paddingTop:0})),List=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiList`}),{children:a,className:o,component:s=`ul`,dense:l=!1,disablePadding:u=!1,subheader:d}=n,f=_objectWithoutPropertiesLoose$3(n,_excluded$26),m=import_react$24.useMemo(()=>({dense:l}),[l]),h=_extends$3({},n,{component:s,dense:l,disablePadding:u}),v=useUtilityClasses$23(h);return(0,import_jsx_runtime.jsx)(ListContext.Provider,{value:m,children:(0,import_jsx_runtime.jsxs)(ListRoot,_extends$3({as:s,className:clsx$1(v.root,o),ref:t,ownerState:h},f,{children:[d,a]}))})});init_getScrollbarSize();var getScrollbarSize_default=getScrollbarSize;init_extends(),init_objectWithoutPropertiesLoose(),init_ownerDocument(),init_useForkRef(),init_useEnhancedEffect();var _excluded$25=[`actions`,`autoFocus`,`autoFocusItem`,`children`,`className`,`disabledItemsFocusable`,`disableListWrap`,`onKeyDown`,`variant`];function nextItem$1(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function previousItem$1(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function textCriteriaMatches(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.indexOf(t.keys.join(``))===0}function moveFocus$1(e,t,n,a,o,s){let l=!1,u=o(e,t,t?n:!1);for(;u;){if(u===e.firstChild){if(l)return!1;l=!0}let t=a?!1:u.disabled||u.getAttribute(`aria-disabled`)===`true`;if(!u.hasAttribute(`tabindex`)||!textCriteriaMatches(u,s)||t)u=o(e,u,n);else return u.focus(),!0}return!1}var MenuList=import_react$24.forwardRef(function(e,t){let{actions:n,autoFocus:a=!1,autoFocusItem:o=!1,children:s,className:l,disabledItemsFocusable:u=!1,disableListWrap:d=!1,onKeyDown:f,variant:m=`selectedMenu`}=e,h=_objectWithoutPropertiesLoose$3(e,_excluded$25),v=import_react$24.useRef(null),y=import_react$24.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect_default(()=>{a&&v.current.focus()},[a]),import_react$24.useImperativeHandle(n,()=>({adjustStyleForScrollbar:(e,{direction:t})=>{let n=!v.current.style.width;if(e.clientHeight<v.current.clientHeight&&n){let n=`${getScrollbarSize_default(ownerDocument_default(e))}px`;v.current.style[t===`rtl`?`paddingLeft`:`paddingRight`]=n,v.current.style.width=`calc(100% + ${n})`}return v.current}}),[]);let b=e=>{let t=v.current,n=e.key,a=ownerDocument_default(t).activeElement;if(n===`ArrowDown`)e.preventDefault(),moveFocus$1(t,a,d,u,nextItem$1);else if(n===`ArrowUp`)e.preventDefault(),moveFocus$1(t,a,d,u,previousItem$1);else if(n===`Home`)e.preventDefault(),moveFocus$1(t,null,d,u,nextItem$1);else if(n===`End`)e.preventDefault(),moveFocus$1(t,null,d,u,previousItem$1);else if(n.length===1){let o=y.current,s=n.toLowerCase(),l=performance.now();o.keys.length>0&&(l-o.lastTime>500?(o.keys=[],o.repeating=!0,o.previousKeyMatched=!0):o.repeating&&s!==o.keys[0]&&(o.repeating=!1)),o.lastTime=l,o.keys.push(s);let d=a&&!o.repeating&&textCriteriaMatches(a,o);o.previousKeyMatched&&(d||moveFocus$1(t,a,!1,u,nextItem$1,o))?e.preventDefault():o.previousKeyMatched=!1}f&&f(e)},x=useForkRef_default(v,t),S=-1;import_react$24.Children.forEach(s,(e,t)=>{if(!import_react$24.isValidElement(e)){S===t&&(S+=1,S>=s.length&&(S=-1));return}e.props.disabled||(m===`selectedMenu`&&e.props.selected||S===-1)&&(S=t),S===t&&(e.props.disabled||e.props.muiSkipListHighlight||e.type.muiSkipListHighlight)&&(S+=1,S>=s.length&&(S=-1))});let C=import_react$24.Children.map(s,(e,t)=>{if(t===S){let t={};return o&&(t.autoFocus=!0),e.props.tabIndex===void 0&&m===`selectedMenu`&&(t.tabIndex=0),import_react$24.cloneElement(e,t)}return e});return(0,import_jsx_runtime.jsx)(List,_extends$3({role:`menu`,ref:x,className:l,onKeyDown:b,tabIndex:a?0:-1},h,{children:C}))});init_generateUtilityClasses(),init_generateUtilityClass();function getPopoverUtilityClass(e){return generateUtilityClass(`MuiPopover`,e)}var popoverClasses=generateUtilityClasses(`MuiPopover`,[`root`,`paper`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_isHostComponent(),init_styled(),init_DefaultPropsProvider(),init_debounce(),init_ownerDocument(),init_ownerWindow(),init_useForkRef();var _excluded$24=[`onEntering`],_excluded2$2=[`action`,`anchorEl`,`anchorOrigin`,`anchorPosition`,`anchorReference`,`children`,`className`,`container`,`elevation`,`marginThreshold`,`open`,`PaperProps`,`slots`,`slotProps`,`transformOrigin`,`TransitionComponent`,`transitionDuration`,`TransitionProps`,`disableScrollLock`],_excluded3=[`slotProps`];function getOffsetTop(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.height/2:t===`bottom`&&(n=e.height),n}function getOffsetLeft(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.width/2:t===`right`&&(n=e.width),n}function getTransformOriginValue(e){return[e.horizontal,e.vertical].map(e=>typeof e==`number`?`${e}px`:e).join(` `)}function resolveAnchorEl(e){return typeof e==`function`?e():e}var useUtilityClasses$22=e=>{let{classes:t}=e;return composeClasses({root:[`root`],paper:[`paper`]},getPopoverUtilityClass,t)},PopoverRoot=styled$1(Modal,{name:`MuiPopover`,slot:`Root`,overridesResolver:(e,t)=>t.root})({}),PopoverPaper=styled$1(Paper,{name:`MuiPopover`,slot:`Paper`,overridesResolver:(e,t)=>t.paper})({position:`absolute`,overflowY:`auto`,overflowX:`hidden`,minWidth:16,minHeight:16,maxWidth:`calc(100% - 32px)`,maxHeight:`calc(100% - 32px)`,outline:0}),Popover=import_react$24.forwardRef(function(e,t){var n,a,o;let s=useDefaultProps({props:e,name:`MuiPopover`}),{action:l,anchorEl:u,anchorOrigin:d={vertical:`top`,horizontal:`left`},anchorPosition:f,anchorReference:m=`anchorEl`,children:h,className:v,container:y,elevation:b=8,marginThreshold:x=16,open:S,PaperProps:C={},slots:T,slotProps:E,transformOrigin:D={vertical:`top`,horizontal:`left`},TransitionComponent:O=Grow,transitionDuration:k=`auto`,TransitionProps:{onEntering:j}={},disableScrollLock:M=!1}=s,N=_objectWithoutPropertiesLoose$3(s.TransitionProps,_excluded$24),F=_objectWithoutPropertiesLoose$3(s,_excluded2$2),I=E?.paper??C,L=import_react$24.useRef(),R=useForkRef_default(L,I.ref),z=_extends$3({},s,{anchorOrigin:d,anchorReference:m,elevation:b,marginThreshold:x,externalPaperSlotProps:I,transformOrigin:D,TransitionComponent:O,transitionDuration:k,TransitionProps:N}),B=useUtilityClasses$22(z),V=import_react$24.useCallback(()=>{if(m===`anchorPosition`)return f;let e=resolveAnchorEl(u),t=(e&&e.nodeType===1?e:ownerDocument_default(L.current).body).getBoundingClientRect();return{top:t.top+getOffsetTop(t,d.vertical),left:t.left+getOffsetLeft(t,d.horizontal)}},[u,d.horizontal,d.vertical,f,m]),H=import_react$24.useCallback(e=>({vertical:getOffsetTop(e,D.vertical),horizontal:getOffsetLeft(e,D.horizontal)}),[D.horizontal,D.vertical]),U=import_react$24.useCallback(e=>{let t={width:e.offsetWidth,height:e.offsetHeight},n=H(t);if(m===`none`)return{top:null,left:null,transformOrigin:getTransformOriginValue(n)};let a=V(),o=a.top-n.vertical,s=a.left-n.horizontal,l=o+t.height,d=s+t.width,f=ownerWindow_default(resolveAnchorEl(u)),h=f.innerHeight-x,v=f.innerWidth-x;if(x!==null&&o<x){let e=o-x;o-=e,n.vertical+=e}else if(x!==null&&l>h){let e=l-h;o-=e,n.vertical+=e}if(x!==null&&s<x){let e=s-x;s-=e,n.horizontal+=e}else if(d>v){let e=d-v;s-=e,n.horizontal+=e}return{top:`${Math.round(o)}px`,left:`${Math.round(s)}px`,transformOrigin:getTransformOriginValue(n)}},[u,m,V,H,x]),[W,G]=import_react$24.useState(S),ee=import_react$24.useCallback(()=>{let e=L.current;if(!e)return;let t=U(e);t.top!==null&&(e.style.top=t.top),t.left!==null&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,G(!0)},[U]);import_react$24.useEffect(()=>(M&&window.addEventListener(`scroll`,ee),()=>window.removeEventListener(`scroll`,ee)),[u,M,ee]);let te=(e,t)=>{j&&j(e,t),ee()},K=()=>{G(!1)};import_react$24.useEffect(()=>{S&&ee()}),import_react$24.useImperativeHandle(l,()=>S?{updatePosition:()=>{ee()}}:null,[S,ee]),import_react$24.useEffect(()=>{if(!S)return;let e=debounce_default(()=>{ee()}),t=ownerWindow_default(u);return t.addEventListener(`resize`,e),()=>{e.clear(),t.removeEventListener(`resize`,e)}},[u,S,ee]);let q=k;k===`auto`&&!O.muiSupportAuto&&(q=void 0);let ne=y||(u?ownerDocument_default(resolveAnchorEl(u)).body:void 0),re=T?.root??PopoverRoot,J=T?.paper??PopoverPaper,ie=useSlotProps({elementType:J,externalSlotProps:_extends$3({},I,{style:W?I.style:_extends$3({},I.style,{opacity:0})}),additionalProps:{elevation:b,ref:R},ownerState:z,className:clsx$1(B.paper,I?.className)}),ae=useSlotProps({elementType:re,externalSlotProps:E?.root||{},externalForwardedProps:F,additionalProps:{ref:t,slotProps:{backdrop:{invisible:!0}},container:ne,open:S},ownerState:z,className:clsx$1(B.root,v)}),{slotProps:oe}=ae;return(0,import_jsx_runtime.jsx)(re,_extends$3({},_objectWithoutPropertiesLoose$3(ae,_excluded3),!isHostComponent(re)&&{slotProps:oe,disableScrollLock:M},{children:(0,import_jsx_runtime.jsx)(O,_extends$3({appear:!0,in:S,onEntering:te,onExited:K,timeout:q},N,{children:(0,import_jsx_runtime.jsx)(J,_extends$3({},ie,{children:h}))}))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getMenuUtilityClass(e){return generateUtilityClass(`MuiMenu`,e)}var menuClasses=generateUtilityClasses(`MuiMenu`,[`root`,`paper`,`list`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_styled(),init_DefaultPropsProvider();var _excluded$23=[`onEntering`],_excluded2$1=[`autoFocus`,`children`,`className`,`disableAutoFocusItem`,`MenuListProps`,`onClose`,`open`,`PaperProps`,`PopoverClasses`,`transitionDuration`,`TransitionProps`,`variant`,`slots`,`slotProps`],RTL_ORIGIN={vertical:`top`,horizontal:`right`},LTR_ORIGIN={vertical:`top`,horizontal:`left`},useUtilityClasses$21=e=>{let{classes:t}=e;return composeClasses({root:[`root`],paper:[`paper`],list:[`list`]},getMenuUtilityClass,t)},MenuRoot=styled$1(Popover,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiMenu`,slot:`Root`,overridesResolver:(e,t)=>t.root})({}),MenuPaper=styled$1(PopoverPaper,{name:`MuiMenu`,slot:`Paper`,overridesResolver:(e,t)=>t.paper})({maxHeight:`calc(100% - 96px)`,WebkitOverflowScrolling:`touch`}),MenuMenuList=styled$1(MenuList,{name:`MuiMenu`,slot:`List`,overridesResolver:(e,t)=>t.list})({outline:0}),Menu=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiMenu`}),{autoFocus:s=!0,children:l,className:u,disableAutoFocusItem:d=!1,MenuListProps:f={},onClose:m,open:h,PaperProps:v={},PopoverClasses:y,transitionDuration:b=`auto`,TransitionProps:{onEntering:x}={},variant:S=`selectedMenu`,slots:C={},slotProps:T={}}=o,E=_objectWithoutPropertiesLoose$3(o.TransitionProps,_excluded$23),D=_objectWithoutPropertiesLoose$3(o,_excluded2$1),O=useRtl(),k=_extends$3({},o,{autoFocus:s,disableAutoFocusItem:d,MenuListProps:f,onEntering:x,PaperProps:v,transitionDuration:b,TransitionProps:E,variant:S}),j=useUtilityClasses$21(k),M=s&&!d&&h,N=import_react$24.useRef(null),F=(e,t)=>{N.current&&N.current.adjustStyleForScrollbar(e,{direction:O?`rtl`:`ltr`}),x&&x(e,t)},I=e=>{e.key===`Tab`&&(e.preventDefault(),m&&m(e,`tabKeyDown`))},L=-1;import_react$24.Children.map(l,(e,t)=>{import_react$24.isValidElement(e)&&(e.props.disabled||(S===`selectedMenu`&&e.props.selected||L===-1)&&(L=t))});let R=C.paper??MenuPaper,z=T.paper??v,B=useSlotProps({elementType:C.root,externalSlotProps:T.root,ownerState:k,className:[j.root,u]}),V=useSlotProps({elementType:R,externalSlotProps:z,ownerState:k,className:j.paper});return(0,import_jsx_runtime.jsx)(MenuRoot,_extends$3({onClose:m,anchorOrigin:{vertical:`bottom`,horizontal:O?`right`:`left`},transformOrigin:O?RTL_ORIGIN:LTR_ORIGIN,slots:{paper:R,root:C.root},slotProps:{root:B,paper:V},open:h,ref:t,transitionDuration:b,TransitionProps:_extends$3({onEntering:F},E),ownerState:k},D,{classes:y,children:(0,import_jsx_runtime.jsx)(MenuMenuList,_extends$3({onKeyDown:I,actions:N,autoFocus:s&&(L===-1||d),autoFocusItem:M,variant:S},f,{className:clsx$1(j.list,f.className),children:l}))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getNativeSelectUtilityClasses(e){return generateUtilityClass(`MuiNativeSelect`,e)}var nativeSelectClasses=generateUtilityClasses(`MuiNativeSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`icon`,`iconOpen`,`iconFilled`,`iconOutlined`,`iconStandard`,`nativeInput`,`error`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_styled();var _excluded$22=[`className`,`disabled`,`error`,`IconComponent`,`inputRef`,`variant`],useUtilityClasses$20=e=>{let{classes:t,variant:n,disabled:a,multiple:o,open:s,error:l}=e;return composeClasses({select:[`select`,n,a&&`disabled`,o&&`multiple`,l&&`error`],icon:[`icon`,`icon${capitalize_default(n)}`,s&&`iconOpen`,a&&`disabled`]},getNativeSelectUtilityClasses,t)},nativeSelectSelectStyles=({ownerState:e,theme:t})=>_extends$3({MozAppearance:`none`,WebkitAppearance:`none`,userSelect:`none`,borderRadius:0,cursor:`pointer`,"&:focus":_extends$3({},t.vars?{backgroundColor:`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:t.palette.mode===`light`?`rgba(0, 0, 0, 0.05)`:`rgba(255, 255, 255, 0.05)`},{borderRadius:0}),"&::-ms-expand":{display:`none`},[`&.${nativeSelectClasses.disabled}`]:{cursor:`default`},"&[multiple]":{height:`auto`},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(t.vars||t).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},e.variant===`filled`&&{"&&&":{paddingRight:32}},e.variant===`outlined`&&{borderRadius:(t.vars||t).shape.borderRadius,"&:focus":{borderRadius:(t.vars||t).shape.borderRadius},"&&&":{paddingRight:32}}),NativeSelectSelect=styled$1(`select`,{name:`MuiNativeSelect`,slot:`Select`,shouldForwardProp:rootShouldForwardProp,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${nativeSelectClasses.multiple}`]:t.multiple}]}})(nativeSelectSelectStyles),nativeSelectIconStyles=({ownerState:e,theme:t})=>_extends$3({position:`absolute`,right:0,top:`calc(50% - .5em)`,pointerEvents:`none`,color:(t.vars||t).palette.action.active,[`&.${nativeSelectClasses.disabled}`]:{color:(t.vars||t).palette.action.disabled}},e.open&&{transform:`rotate(180deg)`},e.variant===`filled`&&{right:7},e.variant===`outlined`&&{right:7}),NativeSelectIcon=styled$1(`svg`,{name:`MuiNativeSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${capitalize_default(n.variant)}`],n.open&&t.iconOpen]}})(nativeSelectIconStyles),NativeSelectInput=import_react$24.forwardRef(function(e,t){let{className:n,disabled:a,error:o,IconComponent:s,inputRef:l,variant:u=`standard`}=e,d=_objectWithoutPropertiesLoose$3(e,_excluded$22),f=_extends$3({},e,{disabled:a,variant:u,error:o}),m=useUtilityClasses$20(f);return(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(NativeSelectSelect,_extends$3({ownerState:f,className:clsx$1(m.select,n),disabled:a,ref:l||t},d)),e.multiple?null:(0,import_jsx_runtime.jsx)(NativeSelectIcon,{as:s,ownerState:f,className:m.icon})]})});init_generateUtilityClasses(),init_generateUtilityClass();function getSelectUtilityClasses(e){return generateUtilityClass(`MuiSelect`,e)}var selectClasses=generateUtilityClasses(`MuiSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`focused`,`icon`,`iconOpen`,`iconFilled`,`iconOutlined`,`iconStandard`,`nativeInput`,`error`]);init_extends(),init_objectWithoutPropertiesLoose(),init_formatMuiErrorMessage(),init_clsx(),init_composeClasses(),init_useId$1(),init_ownerDocument(),init_capitalize(),init_styled(),init_useForkRef(),init_useControlled();var _span,_excluded$21=`aria-describedby.aria-label.autoFocus.autoWidth.children.className.defaultOpen.defaultValue.disabled.displayEmpty.error.IconComponent.inputRef.labelId.MenuProps.multiple.name.onBlur.onChange.onClose.onFocus.onOpen.open.readOnly.renderValue.SelectDisplayProps.tabIndex.type.value.variant`.split(`.`),SelectSelect=styled$1(`div`,{name:`MuiSelect`,slot:`Select`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`&.${selectClasses.select}`]:t.select},{[`&.${selectClasses.select}`]:t[n.variant]},{[`&.${selectClasses.error}`]:t.error},{[`&.${selectClasses.multiple}`]:t.multiple}]}})(nativeSelectSelectStyles,{[`&.${selectClasses.select}`]:{height:`auto`,minHeight:`1.4375em`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,overflow:`hidden`}}),SelectIcon=styled$1(`svg`,{name:`MuiSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${capitalize_default(n.variant)}`],n.open&&t.iconOpen]}})(nativeSelectIconStyles),SelectNativeInput=styled$1(`input`,{shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`classes`,name:`MuiSelect`,slot:`NativeInput`,overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:`absolute`,opacity:0,pointerEvents:`none`,width:`100%`,boxSizing:`border-box`});function areEqualValues(e,t){return typeof t==`object`&&t?e===t:String(e)===String(t)}function isEmpty(e){return e==null||typeof e==`string`&&!e.trim()}var useUtilityClasses$19=e=>{let{classes:t,variant:n,disabled:a,multiple:o,open:s,error:l}=e;return composeClasses({select:[`select`,n,a&&`disabled`,o&&`multiple`,l&&`error`],icon:[`icon`,`icon${capitalize_default(n)}`,s&&`iconOpen`,a&&`disabled`],nativeInput:[`nativeInput`]},getSelectUtilityClasses,t)},SelectInput=import_react$24.forwardRef(function(e,t){var n;let{"aria-describedby":a,"aria-label":o,autoFocus:s,autoWidth:l,children:u,className:d,defaultOpen:f,defaultValue:m,disabled:h,displayEmpty:v,error:y=!1,IconComponent:b,inputRef:x,labelId:S,MenuProps:C={},multiple:T,name:E,onBlur:D,onChange:O,onClose:k,onFocus:j,onOpen:M,open:N,readOnly:F,renderValue:I,SelectDisplayProps:L={},tabIndex:R,value:z,variant:B=`standard`}=e,V=_objectWithoutPropertiesLoose$3(e,_excluded$21),[H,U]=useControlled_default({controlled:z,default:m,name:`Select`}),[W,G]=useControlled_default({controlled:N,default:f,name:`Select`}),ee=import_react$24.useRef(null),te=import_react$24.useRef(null),[K,q]=import_react$24.useState(null),{current:ne}=import_react$24.useRef(N!=null),[re,J]=import_react$24.useState(),ie=useForkRef_default(t,x),ae=import_react$24.useCallback(e=>{te.current=e,e&&q(e)},[]),oe=K?.parentNode;import_react$24.useImperativeHandle(ie,()=>({focus:()=>{te.current.focus()},node:ee.current,value:H}),[H]),import_react$24.useEffect(()=>{f&&W&&K&&!ne&&(J(l?null:oe.clientWidth),te.current.focus())},[K,l]),import_react$24.useEffect(()=>{s&&te.current.focus()},[s]),import_react$24.useEffect(()=>{if(!S)return;let e=ownerDocument_default(te.current).getElementById(S);if(e){let t=()=>{getSelection().isCollapsed&&te.current.focus()};return e.addEventListener(`click`,t),()=>{e.removeEventListener(`click`,t)}}},[S]);let se=(e,t)=>{e?M&&M(t):k&&k(t),ne||(J(l?null:oe.clientWidth),G(e))},ce=e=>{e.button===0&&(e.preventDefault(),te.current.focus(),se(!0,e))},Y=e=>{se(!1,e)},le=import_react$24.Children.toArray(u),ue=e=>{let t=le.find(t=>t.props.value===e.target.value);t!==void 0&&(U(t.props.value),O&&O(e,t))},de=e=>t=>{let n;if(t.currentTarget.hasAttribute(`tabindex`)){if(T){n=Array.isArray(H)?H.slice():[];let t=H.indexOf(e.props.value);t===-1?n.push(e.props.value):n.splice(t,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),H!==n&&(U(n),O)){let a=t.nativeEvent||t,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:n,name:E}}),O(o,e)}T||se(!1,t)}},X=e=>{F||[` `,`ArrowUp`,`ArrowDown`,`Enter`].indexOf(e.key)!==-1&&(e.preventDefault(),se(!0,e))},fe=K!==null&&W,pe=e=>{!fe&&D&&(Object.defineProperty(e,"target",{writable:!0,value:{value:H,name:E}}),D(e))};delete V[`aria-invalid`];let me,he,ge=[],Z=!1;(isFilled({value:H})||v)&&(I?me=I(H):Z=!0);let _e=le.map(e=>{if(!import_react$24.isValidElement(e))return null;let t;if(T){if(!Array.isArray(H))throw Error(formatMuiErrorMessage(2));t=H.some(t=>areEqualValues(t,e.props.value)),t&&Z&&ge.push(e.props.children)}else t=areEqualValues(H,e.props.value),t&&Z&&(he=e.props.children);return import_react$24.cloneElement(e,{"aria-selected":t?`true`:`false`,onClick:de(e),onKeyUp:t=>{t.key===` `&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:`option`,selected:t,value:void 0,"data-value":e.props.value})});Z&&(me=T?ge.length===0?null:ge.reduce((e,t,n)=>(e.push(t),n<ge.length-1&&e.push(`, `),e),[]):he);let Q=re;!l&&ne&&K&&(Q=oe.clientWidth);let $;$=R===void 0?h?null:0:R;let ve=L.id||(E?`mui-component-select-${E}`:void 0),ye=_extends$3({},e,{variant:B,value:H,open:fe,error:y}),be=useUtilityClasses$19(ye),xe=_extends$3({},C.PaperProps,C.slotProps?.paper),Se=useId();return(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(SelectSelect,_extends$3({ref:ae,tabIndex:$,role:`combobox`,"aria-controls":Se,"aria-disabled":h?`true`:void 0,"aria-expanded":fe?`true`:`false`,"aria-haspopup":`listbox`,"aria-label":o,"aria-labelledby":[S,ve].filter(Boolean).join(` `)||void 0,"aria-describedby":a,onKeyDown:X,onMouseDown:h||F?null:ce,onBlur:pe,onFocus:j},L,{ownerState:ye,className:clsx$1(L.className,be.select,d),id:ve,children:isEmpty(me)?_span||=(0,import_jsx_runtime.jsx)(`span`,{className:`notranslate`,children:``}):me})),(0,import_jsx_runtime.jsx)(SelectNativeInput,_extends$3({"aria-invalid":y,value:Array.isArray(H)?H.join(`,`):H,name:E,ref:ee,"aria-hidden":!0,onChange:ue,tabIndex:-1,disabled:h,className:be.nativeInput,autoFocus:s,ownerState:ye},V)),(0,import_jsx_runtime.jsx)(SelectIcon,{as:b,className:be.icon,ownerState:ye}),(0,import_jsx_runtime.jsx)(Menu,_extends$3({id:`menu-${E||``}`,anchorEl:oe,open:fe,onClose:Y,anchorOrigin:{vertical:`bottom`,horizontal:`center`},transformOrigin:{vertical:`top`,horizontal:`center`}},C,{MenuListProps:_extends$3({"aria-labelledby":S,role:`listbox`,"aria-multiselectable":T?`true`:void 0,disableListWrap:!0,id:Se},C.MenuListProps),slotProps:_extends$3({},C.slotProps,{paper:_extends$3({},xe,{style:_extends$3({minWidth:Q},xe==null?null:xe.style)})}),children:_e}))]})});init_createSvgIcon();var ArrowDropDown_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M7 10l5 5 5-5z`}),`ArrowDropDown`);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_deepmerge(),init_getReactElementRef(),init_DefaultPropsProvider(),init_useForkRef(),init_styled();var _excluded$20=[`autoWidth`,`children`,`classes`,`className`,`defaultOpen`,`displayEmpty`,`IconComponent`,`id`,`input`,`inputProps`,`label`,`labelId`,`MenuProps`,`multiple`,`native`,`onClose`,`onOpen`,`open`,`renderValue`,`SelectDisplayProps`,`variant`],_excluded2=[`root`],useUtilityClasses$18=e=>{let{classes:t}=e;return t},styledRootConfig={name:`MuiSelect`,overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>rootShouldForwardProp(e)&&e!==`variant`,slot:`Root`},StyledInput=styled$1(Input,styledRootConfig)(``),StyledOutlinedInput=styled$1(OutlinedInput,styledRootConfig)(``),StyledFilledInput=styled$1(FilledInput,styledRootConfig)(``),Select=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({name:`MuiSelect`,props:e}),{autoWidth:a=!1,children:o,classes:s={},className:l,defaultOpen:u=!1,displayEmpty:d=!1,IconComponent:f=ArrowDropDown_default,id:m,input:h,inputProps:v,label:y,labelId:b,MenuProps:x,multiple:S=!1,native:C=!1,onClose:T,onOpen:E,open:D,renderValue:O,SelectDisplayProps:k,variant:j=`outlined`}=n,M=_objectWithoutPropertiesLoose$3(n,_excluded$20),N=C?NativeSelectInput:SelectInput,F=formControlState({props:n,muiFormControl:useFormControl(),states:[`variant`,`error`]}),I=F.variant||j,L=_extends$3({},n,{variant:I,classes:s}),R=useUtilityClasses$18(L),z=_objectWithoutPropertiesLoose$3(R,_excluded2),B=h||{standard:(0,import_jsx_runtime.jsx)(StyledInput,{ownerState:L}),outlined:(0,import_jsx_runtime.jsx)(StyledOutlinedInput,{label:y,ownerState:L}),filled:(0,import_jsx_runtime.jsx)(StyledFilledInput,{ownerState:L})}[I],V=useForkRef_default(t,getReactElementRef(B));return(0,import_jsx_runtime.jsx)(import_react$24.Fragment,{children:import_react$24.cloneElement(B,_extends$3({inputComponent:N,inputProps:_extends$3({children:o,error:F.error,IconComponent:f,variant:I,type:void 0,multiple:S},C?{id:m}:{autoWidth:a,defaultOpen:u,displayEmpty:d,labelId:b,MenuProps:x,onClose:T,onOpen:E,open:D,renderValue:O,SelectDisplayProps:_extends$3({id:m},k)},v,{classes:v?deepmerge(z,v.classes):z},h?h.props.inputProps:{})},(S&&C||d)&&I===`outlined`?{notched:!0}:{},{ref:V,className:clsx$1(B.props.className,l,R.root)},!h&&{variant:I},M))})});Select.muiName=`Select`,init_generateUtilityClasses(),init_generateUtilityClass();function getTextFieldUtilityClass(e){return generateUtilityClass(`MuiTextField`,e)}var textFieldClasses=generateUtilityClasses(`MuiTextField`,[`root`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_useId$1(),init_styled(),init_DefaultPropsProvider();var _excluded$19=`autoComplete.autoFocus.children.className.color.defaultValue.disabled.error.FormHelperTextProps.fullWidth.helperText.id.InputLabelProps.inputProps.InputProps.inputRef.label.maxRows.minRows.multiline.name.onBlur.onChange.onFocus.placeholder.required.rows.select.SelectProps.type.value.variant`.split(`.`),variantComponent={standard:Input,filled:FilledInput,outlined:OutlinedInput},useUtilityClasses$17=e=>{let{classes:t}=e;return composeClasses({root:[`root`]},getTextFieldUtilityClass,t)},TextFieldRoot=styled$1(FormControl,{name:`MuiTextField`,slot:`Root`,overridesResolver:(e,t)=>t.root})({}),TextField=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTextField`}),{autoComplete:a,autoFocus:o=!1,children:s,className:l,color:u=`primary`,defaultValue:d,disabled:f=!1,error:m=!1,FormHelperTextProps:h,fullWidth:v=!1,helperText:y,id:b,InputLabelProps:x,inputProps:S,InputProps:C,inputRef:T,label:E,maxRows:D,minRows:O,multiline:k=!1,name:j,onBlur:M,onChange:N,onFocus:F,placeholder:I,required:L=!1,rows:R,select:z=!1,SelectProps:B,type:V,value:H,variant:U=`outlined`}=n,W=_objectWithoutPropertiesLoose$3(n,_excluded$19),G=_extends$3({},n,{autoFocus:o,color:u,disabled:f,error:m,fullWidth:v,multiline:k,required:L,select:z,variant:U}),ee=useUtilityClasses$17(G),te={};U===`outlined`&&(x&&x.shrink!==void 0&&(te.notched=x.shrink),te.label=E),z&&((!B||!B.native)&&(te.id=void 0),te[`aria-describedby`]=void 0);let K=useId(b),q=y&&K?`${K}-helper-text`:void 0,ne=E&&K?`${K}-label`:void 0,re=variantComponent[U],J=(0,import_jsx_runtime.jsx)(re,_extends$3({"aria-describedby":q,autoComplete:a,autoFocus:o,defaultValue:d,fullWidth:v,multiline:k,name:j,rows:R,maxRows:D,minRows:O,type:V,value:H,id:K,inputRef:T,onBlur:M,onChange:N,onFocus:F,placeholder:I,inputProps:S},te,C));return(0,import_jsx_runtime.jsxs)(TextFieldRoot,_extends$3({className:clsx$1(ee.root,l),disabled:f,error:m,fullWidth:v,ref:t,required:L,color:u,variant:U,ownerState:G},W,{children:[E!=null&&E!==``&&(0,import_jsx_runtime.jsx)(InputLabel,_extends$3({htmlFor:K,id:ne},x,{children:E})),z?(0,import_jsx_runtime.jsx)(Select,_extends$3({"aria-describedby":q,id:K,labelId:ne,value:H,input:J},B,{children:s})):J,y&&(0,import_jsx_runtime.jsx)(FormHelperText,_extends$3({id:q},h,{children:y}))]}))}),defaultFormatter=e=>`${e}`,AnimatedNumber=({number:e,formatter:t=defaultFormatter})=>{let n=usePrefersReducedMotion(),[a,o]=(0,import_react$24.useState)(e),s=(0,import_react$24.useRef)(e),l=(0,import_react$24.useRef)(null);return(0,import_react$24.useEffect)(()=>{if(l.current?.cancel(),l.current=null,n||s.current===e){s.current=e,o(e);return}return l.current=(0,import_shifty.tween)({easing:`easeOutQuad`,duration:750,render:({number:e})=>{o(Number(e))},from:{number:s.current},to:{number:e}}),s.current=e,()=>{l.current?.cancel(),l.current=null}},[e,n]),(0,import_jsx_runtime.jsx)(`span`,{className:`AnimatedNumber`,children:t(a)})};AnimatedNumber.propTypes={formatter:import_prop_types$1.func,number:import_prop_types$1.number.isRequired};var QUANTITY_INPUT_PLACEHOLDER_TEXT=`0`,QuantityNumberFormat=(0,import_react$24.forwardRef)(({min:e,max:t,onChange:n,...a},o)=>(0,import_jsx_runtime.jsx)(NumberFormat,{isNumericString:!0,thousandSeparator:!0,getInputRef:o,...a,allowNegative:!1,decimalScale:0,onValueChange:({floatValue:e=0})=>n(Math.min(e,t))})),QuantityTextInput=({handleSubmit:e,handleUpdateNumber:t,maxQuantity:n,value:a})=>(0,import_jsx_runtime.jsx)(TextField,{variant:`standard`,value:a,placeholder:`0`,inputProps:{pattern:`[0-9]*`,min:0,max:n},onChange:t,onFocus:e=>{e.target.select()},onKeyUp:({which:t})=>{t===13&&e()},InputProps:{inputComponent:QuantityNumberFormat,endAdornment:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Span,{sx:{px:1},children:`/`}),(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:n,formatter:integerString})]})}}),QuantityInput=({handleSubmit:e,handleUpdateNumber:t,maxQuantity:n,setQuantity:a,value:o})=>{let s=()=>{let e=o-1;e===0&&(e=n),a(e)},l=()=>{let e=o+1;e>n&&(e=1),a(e)};return(0,import_jsx_runtime.jsxs)(Div,{className:`QuantityInput`,sx:{"& .MuiInput-root":{margin:`1px 0.25em 0`,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{margin:`0 0.25em 0 0.5em`},"& input":{textAlign:`right`}}},children:[(0,import_jsx_runtime.jsx)(QuantityTextInput,{handleSubmit:e,handleUpdateNumber:t,maxQuantity:n,value:o}),(0,import_jsx_runtime.jsxs)(Div,{className:`number-nudger-container`,sx:{display:`flex`,flexDirection:`column`,position:`absolute`,top:`0.25em`,right:0,"& button":{margin:`0.25em 0.5em`,"& svg":{marginBottom:0}}},children:[(0,import_jsx_runtime.jsx)(Fab,{disabled:!o,"aria-label":`Increment`,color:`primary`,onClick:l,size:`small`,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowUp.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{disabled:!o,"aria-label":`Decrement`,color:`primary`,onClick:s,size:`small`,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowDown.default,{})})]})]})};QuantityInput.propTypes={handleSubmit:import_prop_types$1.func.isRequired,handleUpdateNumber:import_prop_types$1.func.isRequired,maxQuantity:import_prop_types$1.number.isRequired,setQuantity:import_prop_types$1.func.isRequired,value:import_prop_types$1.number},QuantityInput.defaultProps={value:1};var ValueIndicator=({poorValue:e})=>(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:`${e?`Poor`:`Good`} opportunity`,children:e?(0,import_jsx_runtime.jsx)(import_KeyboardArrowDown.default,{color:`error`}):(0,import_jsx_runtime.jsx)(import_KeyboardArrowUp.default,{color:`primary`})}),PurchaseValueIndicator=({id:e,value:t,valueAdjustments:n,poorValue:a=t>itemsMap[e].value})=>(0,import_jsx_runtime.jsx)(ValueIndicator,{id:e,poorValue:a,value:t,valueAdjustments:n}),SellValueIndicator=({id:e,value:t,valueAdjustments:n,poorValue:a=t<itemsMap[e].value})=>(0,import_jsx_runtime.jsx)(ValueIndicator,{id:e,poorValue:a,value:t,valueAdjustments:n}),Item=({item:e,completedAchievements:t,dayCount:n,handleItemPurchaseClick:a,handleItemSelectClick:o,handleItemSellClick:s,historicalValueAdjustments:l,inventory:u,inventoryLimit:d,isPurchaseView:f,isSelectView:m,isSelected:h,isSellView:v,money:y,playerInventoryQuantities:b,showQuantity:x,valueAdjustments:S,item:{description:C,doesPriceFluctuate:T,id:E,isReplantable:D,name:O,type:k,value:j}={},adjustedValue:M=v&&isItemSoldInShop(e)?getResaleValue(e):getItemCurrentValue(e,S),previousDayAdjustedValue:N=v&&isItemSoldInShop(e)||l.length===0||!T?null:getItemCurrentValue(e,l[0]),maxQuantityPlayerCanPurchase:F=Math.max(0,Math.min(Math.floor(y/M),inventorySpaceRemaining({inventory:u,inventoryLimit:d})))})=>{let[I,L]=(0,import_react$24.useState)(1),[R,z]=(0,import_react$24.useState)(1);(0,import_react$24.useEffect)(()=>{L(Math.min(F,Math.max(1,I)))},[F,I]),(0,import_react$24.useEffect)(()=>{z(Math.min(b[E],R))},[E,b,R]);let B=()=>{a?.(e,I),L(Math.min(1,F))},V=()=>{s?.(e,R),z(Math.min(1,b[E]))},H=(0,import_jsx_runtime.jsx)(`img`,{src:items[E],alt:O}),U=getCurrentSeason(n),W=M;return itemIds$1.has(E)||(W*=getSalePriceMultiplier(t),W*=getSeasonalDemandMultiplier(e,U)),(0,import_jsx_runtime.jsxs)(Card,{className:(0,import_classnames.default)(`Item`,{"is-selectable":m,"is-selected":h}),onClick:m?()=>o?.(e):noop$3,raised:h,sx:{position:`relative`,cursor:m?`pointer`:void 0,"& img":{width:`3em`},"& svg":{marginBottom:`-0.25em`},"& .MuiCardContent-root":{paddingTop:0,"& p":{paddingTop:`1em`}},"& .MuiCardHeader-subheader":{userSelect:`none`}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{avatar:!f&&C?(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:C}),children:H}):H,title:O,subheader:(0,import_jsx_runtime.jsxs)(`div`,{children:[f&&(0,import_jsx_runtime.jsxs)(`p`,{children:[(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:N===null?``:`Yesterday's price: ${moneyString(N)}`,children:(0,import_jsx_runtime.jsxs)(`span`,{children:[`Price:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:M,formatter:moneyString})]})}),t?.[`unlock-crop-price-guide`]&&S[E]&&(0,import_jsx_runtime.jsx)(PurchaseValueIndicator,{id:E,value:M,valueAdjustments:S})]}),f&&(0,import_jsx_runtime.jsxs)(`p`,{children:[`Total:`,` `,I?(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:I*M,formatter:moneyString}):null]}),v&&(0,import_jsx_runtime.jsxs)(`p`,{children:[(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:N===null?``:`Yesterday's sell price: ${moneyString(N)}`,children:(0,import_jsx_runtime.jsxs)(`span`,{children:[`Sell price:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:W,formatter:moneyString})]})}),t?.[`unlock-crop-price-guide`]&&S[E]&&(0,import_jsx_runtime.jsx)(SellValueIndicator,{id:E,value:M,valueAdjustments:S})]}),v&&(0,import_jsx_runtime.jsxs)(`p`,{children:[`Total:`,` `,R?(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:R*W,formatter:moneyString}):null]}),v&&!itemIds$1.has(E)&&(()=>{let t=getSeasonalDemandStatus(e,U);return t?(0,import_jsx_runtime.jsx)(`p`,{className:(0,import_classnames.default)({"success-text":t===`HIGH`,"danger-text":t===`LOW`}),children:t===`HIGH`?`In Season`:`Out of Season`}):null})(),x&&(0,import_jsx_runtime.jsxs)(`p`,{children:[(0,import_jsx_runtime.jsx)(`strong`,{children:`In inventory:`}),` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:b[E],formatter:integerString})]}),f&&e.growsInto&&(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to mature:`,` `,getCropLifecycleDuration({cropTimeline:getFinalCropItemFromSeedItem(e)?.cropTimeline??getFinalCropItemFromSeedItem(e)?.treeTimeline??[]})]})]})}),f&&(C||D)&&(0,import_jsx_runtime.jsxs)(CardContent,{children:[C&&(0,import_jsx_runtime.jsx)(Typography,{children:C}),D&&(0,import_jsx_runtime.jsx)(Typography,{color:`textSecondary`,children:`Once planted in the field, this item can be returned to your inventory with the hoe and then replanted elsewhere.`})]}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[m&&(0,import_jsx_runtime.jsx)(Button,{className:`select`,color:`primary`,variant:h?`contained`:`outlined`,children:`Select`}),f&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`purchase`,color:`primary`,disabled:!I||M*I>y,onClick:B,variant:`contained`,children:`Buy`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:B,handleUpdateNumber:L,maxQuantity:F,setQuantity:L,value:I})]}),v&&(0,import_jsx_runtime.jsxs)(Box,{display:`flex`,children:[(0,import_jsx_runtime.jsx)(Button,{className:`sell`,color:`error`,disabled:R===0||!R,onClick:V,variant:`contained`,children:`Sell`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:V,handleUpdateNumber:z,maxQuantity:b[E],setQuantity:z,value:R})]})]})]})};Item.propTypes={adjustedValue:import_prop_types$1.number,completedAchievements:import_prop_types$1.object.isRequired,handleItemPurchaseClick:import_prop_types$1.func,handleItemSelectClick:import_prop_types$1.func,handleItemSellClick:import_prop_types$1.func,historicalValueAdjustments:import_prop_types$1.array.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isPurchaseView:import_prop_types$1.bool,isSelectView:import_prop_types$1.bool,isSelected:import_prop_types$1.bool,isSellView:import_prop_types$1.bool,item:import_prop_types$1.object.isRequired,money:import_prop_types$1.number.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,showQuantity:import_prop_types$1.bool,valueAdjustments:import_prop_types$1.object.isRequired};function Consumer$28(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Item,{...t,...n,...e})})}var require_lodash_sortby=__commonJSMin(((e,t)=>{var n=200,a=`Expected a function`,o=`__lodash_hash_undefined__`,s=1,l=2,u=9007199254740991,d=`[object Arguments]`,f=`[object Array]`,m=`[object Boolean]`,h=`[object Date]`,v=`[object Error]`,y=`[object Function]`,b=`[object GeneratorFunction]`,x=`[object Map]`,S=`[object Number]`,C=`[object Object]`,T=`[object Promise]`,E=`[object RegExp]`,D=`[object Set]`,O=`[object String]`,k=`[object Symbol]`,j=`[object WeakMap]`,M=`[object ArrayBuffer]`,N=`[object DataView]`,F=`[object Float32Array]`,I=`[object Float64Array]`,L=`[object Int8Array]`,R=`[object Int16Array]`,z=`[object Int32Array]`,B=`[object Uint8Array]`,V=`[object Uint8ClampedArray]`,H=`[object Uint16Array]`,U=`[object Uint32Array]`,W=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,G=/^\w*$/,ee=/^\./,te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,K=/[\\^$.*+?()[\]{}|]/g,q=/\\(\\)?/g,ne=/^\[object .+?Constructor\]$/,re=/^(?:0|[1-9]\d*)$/,J={};J[F]=J[I]=J[L]=J[R]=J[z]=J[B]=J[V]=J[H]=J[U]=!0,J[d]=J[f]=J[M]=J[m]=J[N]=J[h]=J[v]=J[y]=J[x]=J[S]=J[C]=J[E]=J[D]=J[O]=J[j]=!1;var ie={}.Object===Object&&{},ae=typeof self==`object`&&self&&self.Object===Object&&self,oe=ie||ae||Function(`return this`)(),se=typeof e==`object`&&e&&!e.nodeType&&e,ce=se&&typeof t==`object`&&t&&!t.nodeType&&t,Y=ce&&ce.exports===se&&ie.process,le=function(){try{return Y&&Y.binding(`util`)}catch{}}(),ue=le&&le.isTypedArray;function de(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function X(e,t){for(var n=-1,a=e?e.length:0,o=Array(a);++n<a;)o[n]=t(e[n],n,e);return o}function fe(e,t){for(var n=-1,a=t.length,o=e.length;++n<a;)e[o+n]=t[n];return e}function pe(e,t){for(var n=-1,a=e?e.length:0;++n<a;)if(t(e[n],n,e))return!0;return!1}function me(e){return function(t){return t?.[e]}}function he(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}function ge(e,t){for(var n=-1,a=Array(e);++n<e;)a[n]=t(n);return a}function Z(e){return function(t){return e(t)}}function _e(e,t){return e?.[t]}function Q(e){var t=!1;if(e!=null&&typeof e.toString!=`function`)try{t=!!(e+``)}catch{}return t}function $(e){var t=-1,n=Array(e.size);return e.forEach(function(e,a){n[++t]=[a,e]}),n}function ve(e,t){return function(n){return e(t(n))}}function ye(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var be=Array.prototype,xe=Function.prototype,Se=Object.prototype,Ce=oe[`__core-js_shared__`],we=function(){var e=/[^.]+$/.exec(Ce&&Ce.keys&&Ce.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}(),Te=xe.toString,Ee=Se.hasOwnProperty,De=Se.toString,Oe=RegExp(`^`+Te.call(Ee).replace(K,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`),ke=oe.Symbol,Ae=oe.Uint8Array,je=Se.propertyIsEnumerable,Me=be.splice,Ne=ke?ke.isConcatSpreadable:void 0,Pe=ve(Object.keys,Object),Fe=Math.max,Ie=on(oe,`DataView`),Le=on(oe,`Map`),Re=on(oe,`Promise`),ze=on(oe,`Set`),Be=on(oe,`WeakMap`),Ve=on(Object,`create`),He=bn(Ie),Ue=bn(Le),We=bn(Re),Ge=bn(ze),Ke=bn(Be),qe=ke?ke.prototype:void 0,Je=qe?qe.valueOf:void 0,Ye=qe?qe.toString:void 0;function Xe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function Ze(){this.__data__=Ve?Ve(null):{}}function Qe(e){return this.has(e)&&delete this.__data__[e]}function $e(e){var t=this.__data__;if(Ve){var n=t[e];return n===o?void 0:n}return Ee.call(t,e)?t[e]:void 0}function et(e){var t=this.__data__;return Ve?t[e]!==void 0:Ee.call(t,e)}function tt(e,t){var n=this.__data__;return n[e]=Ve&&t===void 0?o:t,this}Xe.prototype.clear=Ze,Xe.prototype.delete=Qe,Xe.prototype.get=$e,Xe.prototype.has=et,Xe.prototype.set=tt;function nt(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function rt(){this.__data__=[]}function it(e){var t=this.__data__,n=Dt(t,e);return n<0?!1:(n==t.length-1?t.pop():Me.call(t,n,1),!0)}function at(e){var t=this.__data__,n=Dt(t,e);return n<0?void 0:t[n][1]}function ot(e){return Dt(this.__data__,e)>-1}function st(e,t){var n=this.__data__,a=Dt(n,e);return a<0?n.push([e,t]):n[a][1]=t,this}nt.prototype.clear=rt,nt.prototype.delete=it,nt.prototype.get=at,nt.prototype.has=ot,nt.prototype.set=st;function ct(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function ut(){this.__data__={hash:new Xe,map:new(Le||nt),string:new Xe}}function dt(e){return rn(this,e).delete(e)}function ft(e){return rn(this,e).get(e)}function pt(e){return rn(this,e).has(e)}function mt(e,t){return rn(this,e).set(e,t),this}ct.prototype.clear=ut,ct.prototype.delete=dt,ct.prototype.get=ft,ct.prototype.has=pt,ct.prototype.set=mt;function ht(e){var t=-1,n=e?e.length:0;for(this.__data__=new ct;++t<n;)this.add(e[t])}function vt(e){return this.__data__.set(e,o),this}function yt(e){return this.__data__.has(e)}ht.prototype.add=ht.prototype.push=vt,ht.prototype.has=yt;function bt(e){this.__data__=new nt(e)}function xt(){this.__data__=new nt}function St(e){return this.__data__.delete(e)}function Ct(e){return this.__data__.get(e)}function wt(e){return this.__data__.has(e)}function Tt(e,t){var n=this.__data__;if(n instanceof nt){var a=n.__data__;if(!Le||a.length<199)return a.push([e,t]),this;n=this.__data__=new ct(a)}return n.set(e,t),this}bt.prototype.clear=xt,bt.prototype.delete=St,bt.prototype.get=Ct,bt.prototype.has=wt,bt.prototype.set=Tt;function Et(e,t){var n=Tn(e)||wn(e)?ge(e.length,String):[],a=n.length,o=!!a;for(var s in e)(t||Ee.call(e,s))&&!(o&&(s==`length`||un(s,a)))&&n.push(s);return n}function Dt(e,t){for(var n=e.length;n--;)if(Cn(e[n][0],t))return n;return-1}var Ot=Qt(jt);function kt(e,t,n,a,o){var s=-1,l=e.length;for(n||=ln,o||=[];++s<l;){var u=e[s];t>0&&n(u)?t>1?kt(u,t-1,n,a,o):fe(o,u):a||(o[o.length]=u)}return o}var At=$t();function jt(e,t){return e&&At(e,t,Ln)}function Mt(e,t){t=fn(t,e)?[t]:Yt(t);for(var n=0,a=t.length;e!=null&&n<a;)e=e[yn(t[n++])];return n&&n==a?e:void 0}function Nt(e){return De.call(e)}function Pt(e,t){return e!=null&&t in Object(e)}function Ft(e,t,n,a,o){return e===t?!0:e==null||t==null||!An(e)&&!jn(t)?e!==e&&t!==t:It(e,t,Ft,n,a,o)}function It(e,t,n,a,o,s){var l=Tn(e),u=Tn(t),m=f,h=f;l||(m=sn(e),m=m==d?C:m),u||(h=sn(t),h=h==d?C:h);var v=m==C&&!Q(e),y=h==C&&!Q(t),b=m==h;if(b&&!v)return s||=new bt,l||Nn(e)?en(e,t,n,a,o,s):tn(e,t,m,n,a,o,s);if(!(o&2)){var x=v&&Ee.call(e,`__wrapped__`),S=y&&Ee.call(t,`__wrapped__`);if(x||S){var T=x?e.value():e,E=S?t.value():t;return s||=new bt,n(T,E,a,o,s)}}return b?(s||=new bt,nn(e,t,n,a,o,s)):!1}function Lt(e,t,n,a){var o=n.length,s=o,l=!a;if(e==null)return!s;for(e=Object(e);o--;){var u=n[o];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<s;){u=n[o];var d=u[0],f=e[d],m=u[1];if(l&&u[2]){if(f===void 0&&!(d in e))return!1}else{var h=new bt;if(a)var v=a(f,m,d,e,t,h);if(!(v===void 0?Ft(m,f,a,3,h):v))return!1}}return!0}function Rt(e){return!An(e)||mn(e)?!1:(On(e)||Q(e)?Oe:ne).test(bn(e))}function zt(e){return jn(e)&&kn(e.length)&&!!J[De.call(e)]}function Bt(e){return typeof e==`function`?e:e==null?Rn:typeof e==`object`?Tn(e)?Wt(e[0],e[1]):Ut(e):zn(e)}function Vt(e){if(!hn(e))return Pe(e);var t=[];for(var n in Object(e))Ee.call(e,n)&&n!=`constructor`&&t.push(n);return t}function Ht(e,t){var n=-1,a=En(e)?Array(e.length):[];return Ot(e,function(e,o,s){a[++n]=t(e,o,s)}),a}function Ut(e){var t=an(e);return t.length==1&&t[0][2]?_n(t[0][0],t[0][1]):function(n){return n===e||Lt(n,e,t)}}function Wt(e,t){return fn(e)&&gn(t)?_n(yn(e),t):function(n){var a=Fn(n,e);return a===void 0&&a===t?In(n,e):Ft(t,a,void 0,3)}}function Gt(e,t,n){var a=-1;return t=X(t.length?t:[Rn],Z(Bt)),he(Ht(e,function(e,n,o){return{criteria:X(t,function(t){return t(e)}),index:++a,value:e}}),function(e,t){return Zt(e,t,n)})}function Kt(e){return function(t){return Mt(t,e)}}function qt(e,t){return t=Fe(t===void 0?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=Fe(n.length-t,0),s=Array(o);++a<o;)s[a]=n[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=n[a];return l[t]=s,de(e,this,l)}}function Jt(e){if(typeof e==`string`)return e;if(Mn(e))return Ye?Ye.call(e):``;var t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function Yt(e){return Tn(e)?e:vn(e)}function Xt(e,t){if(e!==t){var n=e!==void 0,a=e===null,o=e===e,s=Mn(e),l=t!==void 0,u=t===null,d=t===t,f=Mn(t);if(!u&&!f&&!s&&e>t||s&&l&&d&&!u&&!f||a&&l&&d||!n&&d||!o)return 1;if(!a&&!s&&!f&&e<t||f&&n&&o&&!a&&!s||u&&n&&o||!l&&o||!d)return-1}return 0}function Zt(e,t,n){for(var a=-1,o=e.criteria,s=t.criteria,l=o.length,u=n.length;++a<l;){var d=Xt(o[a],s[a]);if(d)return a>=u?d:d*(n[a]==`desc`?-1:1)}return e.index-t.index}function Qt(e,t){return function(n,a){if(n==null)return n;if(!En(n))return e(n,a);for(var o=n.length,s=t?o:-1,l=Object(n);(t?s--:++s<o)&&a(l[s],s,l)!==!1;);return n}}function $t(e){return function(t,n,a){for(var o=-1,s=Object(t),l=a(t),u=l.length;u--;){var d=l[e?u:++o];if(n(s[d],d,s)===!1)break}return t}}function en(e,t,n,a,o,s){var l=o&2,u=e.length,d=t.length;if(u!=d&&!(l&&d>u))return!1;var f=s.get(e);if(f&&s.get(t))return f==t;var m=-1,h=!0,v=o&1?new ht:void 0;for(s.set(e,t),s.set(t,e);++m<u;){var y=e[m],b=t[m];if(a)var x=l?a(b,y,m,t,e,s):a(y,b,m,e,t,s);if(x!==void 0){if(x)continue;h=!1;break}if(v){if(!pe(t,function(e,t){if(!v.has(t)&&(y===e||n(y,e,a,o,s)))return v.add(t)})){h=!1;break}}else if(!(y===b||n(y,b,a,o,s))){h=!1;break}}return s.delete(e),s.delete(t),h}function tn(e,t,n,a,o,s,l){switch(n){case N:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case M:return!(e.byteLength!=t.byteLength||!a(new Ae(e),new Ae(t)));case m:case h:case S:return Cn(+e,+t);case v:return e.name==t.name&&e.message==t.message;case E:case O:return e==t+``;case x:var u=$;case D:var d=s&2;if(u||=ye,e.size!=t.size&&!d)return!1;var f=l.get(e);if(f)return f==t;s|=1,l.set(e,t);var y=en(u(e),u(t),a,o,s,l);return l.delete(e),y;case k:if(Je)return Je.call(e)==Je.call(t)}return!1}function nn(e,t,n,a,o,s){var l=o&2,u=Ln(e),d=u.length;if(d!=Ln(t).length&&!l)return!1;for(var f=d;f--;){var m=u[f];if(!(l?m in t:Ee.call(t,m)))return!1}var h=s.get(e);if(h&&s.get(t))return h==t;var v=!0;s.set(e,t),s.set(t,e);for(var y=l;++f<d;){m=u[f];var b=e[m],x=t[m];if(a)var S=l?a(x,b,m,t,e,s):a(b,x,m,e,t,s);if(!(S===void 0?b===x||n(b,x,a,o,s):S)){v=!1;break}y||=m==`constructor`}if(v&&!y){var C=e.constructor,T=t.constructor;C!=T&&`constructor`in e&&`constructor`in t&&!(typeof C==`function`&&C instanceof C&&typeof T==`function`&&T instanceof T)&&(v=!1)}return s.delete(e),s.delete(t),v}function rn(e,t){var n=e.__data__;return pn(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function an(e){for(var t=Ln(e),n=t.length;n--;){var a=t[n],o=e[a];t[n]=[a,o,gn(o)]}return t}function on(e,t){var n=_e(e,t);return Rt(n)?n:void 0}var sn=Nt;(Ie&&sn(new Ie(new ArrayBuffer(1)))!=N||Le&&sn(new Le)!=x||Re&&sn(Re.resolve())!=T||ze&&sn(new ze)!=D||Be&&sn(new Be)!=j)&&(sn=function(e){var t=De.call(e),n=t==C?e.constructor:void 0,a=n?bn(n):void 0;if(a)switch(a){case He:return N;case Ue:return x;case We:return T;case Ge:return D;case Ke:return j}return t});function cn(e,t,n){t=fn(t,e)?[t]:Yt(t);for(var a,o=-1,s=t.length;++o<s;){var l=yn(t[o]);if(!(a=e!=null&&n(e,l)))break;e=e[l]}if(a)return a;var s=e?e.length:0;return!!s&&kn(s)&&un(l,s)&&(Tn(e)||wn(e))}function ln(e){return Tn(e)||wn(e)||!!(Ne&&e&&e[Ne])}function un(e,t){return t??=u,!!t&&(typeof e==`number`||re.test(e))&&e>-1&&e%1==0&&e<t}function dn(e,t,n){if(!An(n))return!1;var a=typeof t;return(a==`number`?En(n)&&un(t,n.length):a==`string`&&t in n)?Cn(n[t],e):!1}function fn(e,t){if(Tn(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||Mn(e)?!0:G.test(e)||!W.test(e)||t!=null&&e in Object(t)}function pn(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function mn(e){return!!we&&we in e}function hn(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||Se)}function gn(e){return e===e&&!An(e)}function _n(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}var vn=Sn(function(e){e=Pn(e);var t=[];return ee.test(e)&&t.push(``),e.replace(te,function(e,n,a,o){t.push(a?o.replace(q,`$1`):n||e)}),t});function yn(e){if(typeof e==`string`||Mn(e))return e;var t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function bn(e){if(e!=null){try{return Te.call(e)}catch{}try{return e+``}catch{}}return``}var xn=qt(function(e,t){if(e==null)return[];var n=t.length;return n>1&&dn(e,t[0],t[1])?t=[]:n>2&&dn(t[0],t[1],t[2])&&(t=[t[0]]),Gt(e,kt(t,1),[])});function Sn(e,t){if(typeof e!=`function`||t&&typeof t!=`function`)throw TypeError(`Expected a function`);var n=function(){var a=arguments,o=t?t.apply(this,a):a[0],s=n.cache;if(s.has(o))return s.get(o);var l=e.apply(this,a);return n.cache=s.set(o,l),l};return n.cache=new(Sn.Cache||ct),n}Sn.Cache=ct;function Cn(e,t){return e===t||e!==e&&t!==t}function wn(e){return Dn(e)&&Ee.call(e,`callee`)&&(!je.call(e,`callee`)||De.call(e)==d)}var Tn=Array.isArray;function En(e){return e!=null&&kn(e.length)&&!On(e)}function Dn(e){return jn(e)&&En(e)}function On(e){var t=An(e)?De.call(e):``;return t==y||t==`[object GeneratorFunction]`}function kn(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=u}function An(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function jn(e){return!!e&&typeof e==`object`}function Mn(e){return typeof e==`symbol`||jn(e)&&De.call(e)==k}var Nn=ue?Z(ue):zt;function Pn(e){return e==null?``:Jt(e)}function Fn(e,t,n){var a=e==null?void 0:Mt(e,t);return a===void 0?n:a}function In(e,t){return e!=null&&cn(e,t,Pt)}function Ln(e){return En(e)?Et(e):Vt(e)}function Rn(e){return e}function zn(e){return fn(e)?me(yn(e)):Kt(e)}t.exports=xn})),import_lodash_sortby=__toESM(require_lodash_sortby()),itemTypesToShowInReverse=new Set([itemType.MILK]),sortItemIdsByTypeAndValue=memoize(e=>(0,import_lodash_sortby.default)(e,[e=>Number(itemsMap[e].type!==itemType.CROP),e=>{let{type:t,value:n}=itemsMap[e];return itemTypesToShowInReverse.has(t)?-n:n}]),{}),sortItems=e=>{let t={};return e.forEach(e=>t[e.id]=e),sortItemIdsByTypeAndValue(e.map(({id:e})=>e)).map(e=>t[e])},require_lodash_debounce=__commonJSMin(((e,t)=>{var n=`Expected a function`,a=NaN,o=`[object Symbol]`,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,f=parseInt,m={}.Object===Object&&{},h=typeof self==`object`&&self&&self.Object===Object&&self,v=m||h||Function(`return this`)(),y=Object.prototype.toString,b=Math.max,x=Math.min,S=function(){return v.Date.now()};function C(e,t,n){var a,o,s,l,u,d,f=0,m=!1,h=!1,v=!0;if(typeof e!=`function`)throw TypeError(`Expected a function`);t=O(t)||0,T(n)&&(m=!!n.leading,h=`maxWait`in n,s=h?b(O(n.maxWait)||0,t):s,v=`trailing`in n?!!n.trailing:v);function y(t){var n=a,s=o;return a=o=void 0,f=t,l=e.apply(s,n),l}function C(e){return f=e,u=setTimeout(k,t),m?y(e):l}function E(e){var n=e-d,a=e-f,o=t-n;return h?x(o,s-a):o}function D(e){var n=e-d,a=e-f;return d===void 0||n>=t||n<0||h&&a>=s}function k(){var e=S();if(D(e))return j(e);u=setTimeout(k,E(e))}function j(e){return u=void 0,v&&a?y(e):(a=o=void 0,l)}function M(){u!==void 0&&clearTimeout(u),f=0,a=d=o=u=void 0}function N(){return u===void 0?l:j(S())}function F(){var e=S(),n=D(e);if(a=arguments,o=this,d=e,n){if(u===void 0)return C(d);if(h)return u=setTimeout(k,t),y(d)}return u===void 0&&(u=setTimeout(k,t)),l}return F.cancel=M,F.flush=N,F}function T(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function E(e){return!!e&&typeof e==`object`}function D(e){return typeof e==`symbol`||E(e)&&y.call(e)==`[object Symbol]`}function O(e){if(typeof e==`number`)return e;if(D(e))return a;if(T(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=T(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=e.replace(s,``);var n=u.test(e);return n||d.test(e)?f(e.slice(2),n?2:8):l.test(e)?a:+e}t.exports=C})),import_lodash_debounce=__toESM(require_lodash_debounce());function useUnmount(e){let t=(0,import_react$24.useRef)(e);t.current=e,(0,import_react$24.useEffect)(()=>()=>{t.current()},[])}function useDebounceCallback(e,t=500,n){let a=(0,import_react$24.useRef)();useUnmount(()=>{a.current&&a.current.cancel()});let o=(0,import_react$24.useMemo)(()=>{let o=(0,import_lodash_debounce.default)(e,t,n),s=(...e)=>o(...e);return s.cancel=()=>{o.cancel()},s.isPending=()=>!!a.current,s.flush=()=>o.flush(),s},[e,t,n]);return(0,import_react$24.useEffect)(()=>{a.current=(0,import_lodash_debounce.default)(e,t,n)},[e,t,n]),o}function useIsMounted(){let e=(0,import_react$24.useRef)(!1);return(0,import_react$24.useEffect)(()=>(e.current=!0,()=>{e.current=!1}),[]),(0,import_react$24.useCallback)(()=>e.current,[])}var SearchBar=({placeholder:e,onSearch:t})=>{let n=useDebounceCallback(e=>{t(e)},300);return(0,import_jsx_runtime.jsx)(Div,{className:`search-bar`,sx:{position:`relative`,maxWidth:layout.cardMaxWidth,padding:`0.5em`,margin:`1em auto`,display:`flex`,justifyContent:`center`,alignItems:`center`,backgroundColor:`#fff`,borderRadius:`1em`,boxShadow:`0 0.25em 0.5em rgba(0, 0, 0, 0.1)`,"& .MuiOutlinedInput-root":{width:`100%`,fontSize:`1em`,backgroundColor:`transparent`,borderRadius:`0.5em`,transition:`all 0.3s ease`,"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:`#ffd24d`},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:`#ffb913`},"& .MuiOutlinedInput-notchedOutline":{transition:`border-color 0.3s ease`},"& input":{color:`#333`,caretColor:`#333`,transition:`background-color 0.3s ease`,"&:focus":{backgroundColor:`#fff`}},"& input::placeholder":{color:`#999`,transition:`color 0.3s ease`}},"@media (max-width: 768px)":{padding:`1em`,margin:`0.5em auto`,"& .MuiOutlinedInput-root":{fontSize:`0.9em`}}},children:(0,import_jsx_runtime.jsx)(TextField,{variant:`outlined`,fullWidth:!0,placeholder:e||`Search...`,onChange:e=>{n(e.target.value)},inputProps:{"aria-label":`search`}})})};SearchBar.propTypes={placeholder:import_prop_types$1.default.string,onSearch:import_prop_types$1.default.func.isRequired};var categoryIds=new Map([[`CROPS`,`CROPS`],[`SEEDS`,`SEEDS`],[`FORAGED_ITEMS`,`FORAGED_ITEMS`],[`FIELD_TOOLS`,`FIELD_TOOLS`],[`ANIMAL_PRODUCTS`,`ANIMAL_PRODUCTS`],[`ANIMAL_SUPPLIES`,`ANIMAL_SUPPLIES`],[`CRAFTED_ITEMS`,`CRAFTED_ITEMS`],[`MINED_RESOURCES`,`MINED_RESOURCES`]]),itemTypeCategoryMap=new Map([[`SEEDS`,`SEEDS`],[`COW_FEED`,`ANIMAL_SUPPLIES`],[`CRAFTED_ITEM`,`CRAFTED_ITEMS`],[`CROP`,`CROPS`],[`FERTILIZER`,`FIELD_TOOLS`],[`FUEL`,`MINED_RESOURCES`],[`HUGGING_MACHINE`,`ANIMAL_SUPPLIES`],[`LIGHTNING_ROD`,`FIELD_TOOLS`],[`MILK`,`ANIMAL_PRODUCTS`],[`MULCH`,`FIELD_TOOLS`],[`ORE`,`MINED_RESOURCES`],[`SCARECROW`,`FIELD_TOOLS`],[`SPRINKLER`,`FIELD_TOOLS`],[`STONE`,`MINED_RESOURCES`],[`TREE`,`CROPS`],[`WEED`,`FORAGED_ITEMS`],[`WOOD`,`MINED_RESOURCES`]]),getItemCategories=()=>new Map(Array.from(categoryIds.keys()).map(e=>[e,[]])),separateItemsIntoCategories=e=>sortItems(e).reduce((e,t)=>{let{type:n}=itemsMap[t.id],a=itemTypeCategoryMap.get(n);if(a===`CROPS`){let n=t.isPlantableCrop||t.isPlantableTree?`SEEDS`:`CROPS`;e.get(n)?.push(t)}else a!=null&&e.has(a)&&e.get(a)?.push(t);return e},getItemCategories()),formatCategoryName=e=>e.replace(/_/g,` `).toLowerCase().replace(/\b\w/g,e=>e.toUpperCase()),Inventory=({items:e,title:t,columns:n,playerInventory:a,shopInventory:o,isPurchaseView:s=!1,isSellView:l=!1,itemCategories:u=separateItemsIntoCategories(e),placeholder:d=`Search inventory...`})=>{let[f,m]=(0,import_react$24.useState)(``),[h,v]=(0,import_react$24.useState)([]),y=e=>{v(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},b=Array.from(u.entries()).reduce((e,[t,n])=>{let a=n.filter(e=>{let t=itemsMap[e.id];return t&&t.name&&t.name.toLowerCase().includes(f.toLowerCase())});return a.length&&(!h.length||h.includes(t))&&e.set(t,a),e},new Map);return(0,import_jsx_runtime.jsxs)(Div,{className:`Inventory`,children:[(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:d,onSearch:m}),!s&&(0,import_jsx_runtime.jsxs)(Accordion,{children:[(0,import_jsx_runtime.jsx)(AccordionSummary,{expandIcon:(0,import_jsx_runtime.jsx)(import_ExpandMore.default,{}),"aria-controls":`filter-content`,id:`filter-header`,children:(0,import_jsx_runtime.jsx)(`h4`,{children:`Filter by category`})}),(0,import_jsx_runtime.jsx)(AccordionDetails,{children:(0,import_jsx_runtime.jsx)(Div,{className:`filter-section`,sx:{marginBottom:`20px`,padding:`10px`,border:`1px solid #ccc`,borderRadius:`5px`,backgroundColor:`#f7f7f7`,"& h4":{marginBottom:`10px`,fontSize:`16px`,color:`#555`}},children:Array.from(categoryIds.keys()).map(e=>(0,import_jsx_runtime.jsx)(FormControlLabel,{sx:{display:`block`},control:(0,import_jsx_runtime.jsx)(Checkbox,{disabled:s,checked:h.includes(e),onChange:()=>y(e)}),label:formatCategoryName(e)},e))})})]}),Array.from(b.entries()).map(([e,t])=>t.length?(0,import_jsx_runtime.jsx)(import_react$24.Fragment,{children:(0,import_jsx_runtime.jsxs)(`section`,{children:[(0,import_jsx_runtime.jsx)(`h3`,{children:formatCategoryName(e)}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:t.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$28,{isPurchaseView:s,isSellView:l,item:e,showQuantity:s})},e.id))})]})},e):null)]})};Inventory.propTypes={items:import_prop_types$1.array.isRequired,playerInventory:import_prop_types$1.array,shopInventory:import_prop_types$1.array};function Consumer$27(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Inventory,{...t,...n,...e})})}var require_ArrowDownward=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z`}),`ArrowDownward`)})),require_ArrowUpward=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z`}),`ArrowUpward`)}));init_generateUtilityClasses(),init_generateUtilityClass();function getDividerUtilityClass(e){return generateUtilityClass(`MuiDivider`,e)}var dividerClasses=generateUtilityClasses(`MuiDivider`,[`root`,`absolute`,`fullWidth`,`inset`,`middle`,`flexItem`,`light`,`vertical`,`withChildren`,`withChildrenVertical`,`textAlignRight`,`textAlignLeft`,`wrapper`,`wrapperVertical`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded$18=[`absolute`,`children`,`className`,`component`,`flexItem`,`light`,`orientation`,`role`,`textAlign`,`variant`],useUtilityClasses$16=e=>{let{absolute:t,children:n,classes:a,flexItem:o,light:s,orientation:l,textAlign:u,variant:d}=e;return composeClasses({root:[`root`,t&&`absolute`,d,s&&`light`,l===`vertical`&&`vertical`,o&&`flexItem`,n&&`withChildren`,n&&l===`vertical`&&`withChildrenVertical`,u===`right`&&l!==`vertical`&&`textAlignRight`,u===`left`&&l!==`vertical`&&`textAlignLeft`],wrapper:[`wrapper`,l===`vertical`&&`wrapperVertical`]},getDividerUtilityClass,a)},DividerRoot=styled$1(`div`,{name:`MuiDivider`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],n.light&&t.light,n.orientation===`vertical`&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.children&&n.orientation===`vertical`&&t.withChildrenVertical,n.textAlign===`right`&&n.orientation!==`vertical`&&t.textAlignRight,n.textAlign===`left`&&n.orientation!==`vertical`&&t.textAlignLeft]}})(({theme:e,ownerState:t})=>_extends$3({margin:0,flexShrink:0,borderWidth:0,borderStyle:`solid`,borderColor:(e.vars||e).palette.divider,borderBottomWidth:`thin`},t.absolute&&{position:`absolute`,bottom:0,left:0,width:`100%`},t.light&&{borderColor:e.vars?`rgba(${e.vars.palette.dividerChannel} / 0.08)`:(0,import_colorManipulator.alpha)(e.palette.divider,.08)},t.variant===`inset`&&{marginLeft:72},t.variant===`middle`&&t.orientation===`horizontal`&&{marginLeft:e.spacing(2),marginRight:e.spacing(2)},t.variant===`middle`&&t.orientation===`vertical`&&{marginTop:e.spacing(1),marginBottom:e.spacing(1)},t.orientation===`vertical`&&{height:`100%`,borderBottomWidth:0,borderRightWidth:`thin`},t.flexItem&&{alignSelf:`stretch`,height:`auto`}),({ownerState:e})=>_extends$3({},e.children&&{display:`flex`,whiteSpace:`nowrap`,textAlign:`center`,border:0,borderTopStyle:`solid`,borderLeftStyle:`solid`,"&::before, &::after":{content:`""`,alignSelf:`center`}}),({theme:e,ownerState:t})=>_extends$3({},t.children&&t.orientation!==`vertical`&&{"&::before, &::after":{width:`100%`,borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:`inherit`}}),({theme:e,ownerState:t})=>_extends$3({},t.children&&t.orientation===`vertical`&&{flexDirection:`column`,"&::before, &::after":{height:`100%`,borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:`inherit`}}),({ownerState:e})=>_extends$3({},e.textAlign===`right`&&e.orientation!==`vertical`&&{"&::before":{width:`90%`},"&::after":{width:`10%`}},e.textAlign===`left`&&e.orientation!==`vertical`&&{"&::before":{width:`10%`},"&::after":{width:`90%`}})),DividerWrapper=styled$1(`span`,{name:`MuiDivider`,slot:`Wrapper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.wrapper,n.orientation===`vertical`&&t.wrapperVertical]}})(({theme:e,ownerState:t})=>_extends$3({display:`inline-block`,paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`},t.orientation===`vertical`&&{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`})),Divider=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiDivider`}),{absolute:a=!1,children:o,className:s,component:l=o?`div`:`hr`,flexItem:u=!1,light:d=!1,orientation:f=`horizontal`,role:m=l===`hr`?void 0:`separator`,textAlign:h=`center`,variant:v=`fullWidth`}=n,y=_objectWithoutPropertiesLoose$3(n,_excluded$18),b=_extends$3({},n,{absolute:a,component:l,flexItem:u,light:d,orientation:f,role:m,textAlign:h,variant:v}),x=useUtilityClasses$16(b);return(0,import_jsx_runtime.jsx)(DividerRoot,_extends$3({as:l,className:clsx$1(x.root,s),role:m,ref:t,ownerState:b},y,{children:o?(0,import_jsx_runtime.jsx)(DividerWrapper,{className:x.wrapper,ownerState:b,children:o}):null}))});Divider.muiSkipListHighlight=!0,init_generateUtilityClasses();var listItemIconClasses=generateUtilityClasses(`MuiListItemIcon`,[`root`,`alignItemsFlexStart`]);init_generateUtilityClasses();var listItemTextClasses=generateUtilityClasses(`MuiListItemText`,[`root`,`multiline`,`dense`,`inset`,`primary`,`secondary`]);init_generateUtilityClasses(),init_generateUtilityClass();function getMenuItemUtilityClass(e){return generateUtilityClass(`MuiMenuItem`,e)}var menuItemClasses=generateUtilityClasses(`MuiMenuItem`,[`root`,`focusVisible`,`dense`,`disabled`,`divider`,`gutters`,`selected`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_useEnhancedEffect(),init_useForkRef();var _excluded$17=[`autoFocus`,`component`,`dense`,`divider`,`disableGutters`,`focusVisibleClassName`,`role`,`tabIndex`,`className`],overridesResolver=(e,t)=>{let{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},useUtilityClasses$15=e=>{let{disabled:t,dense:n,divider:a,disableGutters:o,selected:s,classes:l}=e;return _extends$3({},l,composeClasses({root:[`root`,n&&`dense`,t&&`disabled`,!o&&`gutters`,a&&`divider`,s&&`selected`]},getMenuItemUtilityClass,l))},MenuItemRoot=styled$1(ButtonBase,{shouldForwardProp:e=>rootShouldForwardProp(e)||e===`classes`,name:`MuiMenuItem`,slot:`Root`,overridesResolver})(({theme:e,ownerState:t})=>_extends$3({},e.typography.body1,{display:`flex`,justifyContent:`flex-start`,alignItems:`center`,position:`relative`,textDecoration:`none`,minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:`border-box`,whiteSpace:`nowrap`},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.divider&&{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:`padding-box`},{"&:hover":{textDecoration:`none`,backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:`transparent`}},[`&.${menuItemClasses.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${menuItemClasses.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${menuItemClasses.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,import_colorManipulator.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${menuItemClasses.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${menuItemClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${dividerClasses.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${dividerClasses.inset}`]:{marginLeft:52},[`& .${listItemTextClasses.root}`]:{marginTop:0,marginBottom:0},[`& .${listItemTextClasses.inset}`]:{paddingLeft:36},[`& .${listItemIconClasses.root}`]:{minWidth:36}},!t.dense&&{[e.breakpoints.up(`sm`)]:{minHeight:`auto`}},t.dense&&_extends$3({minHeight:32,paddingTop:4,paddingBottom:4},e.typography.body2,{[`& .${listItemIconClasses.root} svg`]:{fontSize:`1.25rem`}}))),MenuItem=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiMenuItem`}),{autoFocus:a=!1,component:o=`li`,dense:s=!1,divider:l=!1,disableGutters:u=!1,focusVisibleClassName:d,role:f=`menuitem`,tabIndex:m,className:h}=n,v=_objectWithoutPropertiesLoose$3(n,_excluded$17),y=import_react$24.useContext(ListContext),b=import_react$24.useMemo(()=>({dense:s||y.dense||!1,disableGutters:u}),[y.dense,s,u]),x=import_react$24.useRef(null);useEnhancedEffect_default(()=>{a&&x.current&&x.current.focus()},[a]);let S=_extends$3({},n,{dense:b.dense,divider:l,disableGutters:u}),C=useUtilityClasses$15(n),T=useForkRef_default(x,t),E;return n.disabled||(E=m===void 0?-1:m),(0,import_jsx_runtime.jsx)(ListContext.Provider,{value:b,children:(0,import_jsx_runtime.jsx)(MenuItemRoot,_extends$3({ref:T,role:f,tabIndex:E,component:o,focusVisibleClassName:clsx$1(C.focusVisible,d),className:clsx$1(C.root,h)},v,{ownerState:S,classes:C}))})});init_generateUtilityClasses(),init_generateUtilityClass();function getTabUtilityClass(e){return generateUtilityClass(`MuiTab`,e)}var tabClasses=generateUtilityClasses(`MuiTab`,[`root`,`labelIcon`,`textColorInherit`,`textColorPrimary`,`textColorSecondary`,`selected`,`disabled`,`fullWidth`,`wrapped`,`iconWrapper`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_capitalize(),init_DefaultPropsProvider(),init_styled();var _excluded$16=[`className`,`disabled`,`disableFocusRipple`,`fullWidth`,`icon`,`iconPosition`,`indicator`,`label`,`onChange`,`onClick`,`onFocus`,`selected`,`selectionFollowsFocus`,`textColor`,`value`,`wrapped`],useUtilityClasses$14=e=>{let{classes:t,textColor:n,fullWidth:a,wrapped:o,icon:s,label:l,selected:u,disabled:d}=e;return composeClasses({root:[`root`,s&&l&&`labelIcon`,`textColor${capitalize_default(n)}`,a&&`fullWidth`,o&&`wrapped`,u&&`selected`,d&&`disabled`],iconWrapper:[`iconWrapper`]},getTabUtilityClass,t)},TabRoot=styled$1(ButtonBase,{name:`MuiTab`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${capitalize_default(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${tabClasses.iconWrapper}`]:t.iconWrapper}]}})(({theme:e,ownerState:t})=>_extends$3({},e.typography.button,{maxWidth:360,minWidth:90,position:`relative`,minHeight:48,flexShrink:0,padding:`12px 16px`,overflow:`hidden`,whiteSpace:`normal`,textAlign:`center`},t.label&&{flexDirection:t.iconPosition===`top`||t.iconPosition===`bottom`?`column`:`row`},{lineHeight:1.25},t.icon&&t.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses.iconWrapper}`]:_extends$3({},t.iconPosition===`top`&&{marginBottom:6},t.iconPosition===`bottom`&&{marginTop:6},t.iconPosition===`start`&&{marginRight:e.spacing(1)},t.iconPosition===`end`&&{marginLeft:e.spacing(1)})},t.textColor===`inherit`&&{color:`inherit`,opacity:.6,[`&.${tabClasses.selected}`]:{opacity:1},[`&.${tabClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}},t.textColor===`primary`&&{color:(e.vars||e).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${tabClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled}},t.textColor===`secondary`&&{color:(e.vars||e).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${tabClasses.disabled}`]:{color:(e.vars||e).palette.text.disabled}},t.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:`none`},t.wrapped&&{fontSize:e.typography.pxToRem(12)})),Tab=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTab`}),{className:a,disabled:o=!1,disableFocusRipple:s=!1,fullWidth:l,icon:u,iconPosition:d=`top`,indicator:f,label:m,onChange:h,onClick:v,onFocus:y,selected:b,selectionFollowsFocus:x,textColor:S=`inherit`,value:C,wrapped:T=!1}=n,E=_objectWithoutPropertiesLoose$3(n,_excluded$16),D=_extends$3({},n,{disabled:o,disableFocusRipple:s,selected:b,icon:!!u,iconPosition:d,label:!!m,fullWidth:l,textColor:S,wrapped:T}),O=useUtilityClasses$14(D),k=u&&m&&import_react$24.isValidElement(u)?import_react$24.cloneElement(u,{className:clsx$1(O.iconWrapper,u.props.className)}):u;return(0,import_jsx_runtime.jsxs)(TabRoot,_extends$3({focusRipple:!s,className:clsx$1(O.root,a),ref:t,role:`tab`,"aria-selected":b,disabled:o,onClick:e=>{!b&&h&&h(e,C),v&&v(e)},onFocus:e=>{x&&!b&&h&&h(e,C),y&&y(e)},ownerState:D,tabIndex:b?0:-1},E,{children:[d===`top`||d===`start`?(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[k,m]}):(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[m,k]}),f]}))});function easeInOutSin(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function animate$1(e,t,n,a={},o=()=>{}){let{ease:s=easeInOutSin,duration:l=300}=a,u=null,d=t[e],f=!1,m=()=>{f=!0},h=a=>{if(f){o(Error(`Animation cancelled`));return}u===null&&(u=a);let m=Math.min(1,(a-u)/l);if(t[e]=s(m)*(n-d)+d,m>=1){requestAnimationFrame(()=>{o(null)});return}requestAnimationFrame(h)};return d===n?(o(Error(`Element already at target position`)),m):(requestAnimationFrame(h),m)}init_extends(),init_objectWithoutPropertiesLoose(),init_debounce(),init_utils();var _excluded$15=[`onChange`],styles$4={width:99,height:99,position:`absolute`,top:-9999,overflow:`scroll`};function ScrollbarSize(e){let{onChange:t}=e,n=_objectWithoutPropertiesLoose$3(e,_excluded$15),a=import_react$24.useRef(),o=import_react$24.useRef(null),s=()=>{a.current=o.current.offsetHeight-o.current.clientHeight};return useEnhancedEffect_default(()=>{let e=debounce_default(()=>{let e=a.current;s(),e!==a.current&&t(a.current)}),n=ownerWindow_default(o.current);return n.addEventListener(`resize`,e),()=>{e.clear(),n.removeEventListener(`resize`,e)}},[t]),import_react$24.useEffect(()=>{s(),t(a.current)},[t]),(0,import_jsx_runtime.jsx)(`div`,_extends$3({style:styles$4},n,{ref:o}))}init_createSvgIcon();var KeyboardArrowLeft_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z`}),`KeyboardArrowLeft`);init_createSvgIcon();var KeyboardArrowRight_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z`}),`KeyboardArrowRight`);init_generateUtilityClasses(),init_generateUtilityClass();function getTabScrollButtonUtilityClass(e){return generateUtilityClass(`MuiTabScrollButton`,e)}var tabScrollButtonClasses=generateUtilityClasses(`MuiTabScrollButton`,[`root`,`vertical`,`horizontal`,`disabled`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_DefaultPropsProvider(),init_styled();var _excluded$14=[`className`,`slots`,`slotProps`,`direction`,`orientation`,`disabled`],useUtilityClasses$13=e=>{let{classes:t,orientation:n,disabled:a}=e;return composeClasses({root:[`root`,n,a&&`disabled`]},getTabScrollButtonUtilityClass,t)},TabScrollButtonRoot=styled$1(ButtonBase,{name:`MuiTabScrollButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})(({ownerState:e})=>_extends$3({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses.disabled}`]:{opacity:0}},e.orientation===`vertical`&&{width:`100%`,height:40,"& svg":{transform:`rotate(${e.isRtl?-90:90}deg)`}})),TabScrollButton=import_react$24.forwardRef(function(e,t){var n,a;let o=useDefaultProps({props:e,name:`MuiTabScrollButton`}),{className:s,slots:l={},slotProps:u={},direction:d}=o,f=_objectWithoutPropertiesLoose$3(o,_excluded$14),m=_extends$3({isRtl:useRtl()},o),h=useUtilityClasses$13(m),v=l.StartScrollButtonIcon??KeyboardArrowLeft_default,y=l.EndScrollButtonIcon??KeyboardArrowRight_default,b=useSlotProps({elementType:v,externalSlotProps:u.startScrollButtonIcon,additionalProps:{fontSize:`small`},ownerState:m}),x=useSlotProps({elementType:y,externalSlotProps:u.endScrollButtonIcon,additionalProps:{fontSize:`small`},ownerState:m});return(0,import_jsx_runtime.jsx)(TabScrollButtonRoot,_extends$3({component:`div`,className:clsx$1(h.root,s),ref:t,role:null,ownerState:m,tabIndex:null},f,{children:d===`left`?(0,import_jsx_runtime.jsx)(v,_extends$3({},b)):(0,import_jsx_runtime.jsx)(y,_extends$3({},x))}))});init_generateUtilityClasses(),init_generateUtilityClass();function getTabsUtilityClass(e){return generateUtilityClass(`MuiTabs`,e)}var tabsClasses=generateUtilityClasses(`MuiTabs`,[`root`,`vertical`,`flexContainer`,`flexContainerVertical`,`centered`,`scroller`,`fixed`,`scrollableX`,`scrollableY`,`hideScrollbar`,`scrollButtons`,`scrollButtonsHideMobile`,`indicator`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_styled(),init_DefaultPropsProvider(),init_debounce(),init_scrollLeft$1(),init_useEventCallback(),init_ownerDocument(),init_ownerWindow();var _excluded$13=[`aria-label`,`aria-labelledby`,`action`,`centered`,`children`,`className`,`component`,`allowScrollButtonsMobile`,`indicatorColor`,`onChange`,`orientation`,`ScrollButtonComponent`,`scrollButtons`,`selectionFollowsFocus`,`slots`,`slotProps`,`TabIndicatorProps`,`TabScrollButtonProps`,`textColor`,`value`,`variant`,`visibleScrollbar`],nextItem=(e,t)=>e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild,previousItem=(e,t)=>e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild,moveFocus=(e,t,n)=>{let a=!1,o=n(e,t);for(;o;){if(o===e.firstChild){if(a)return;a=!0}let t=o.disabled||o.getAttribute(`aria-disabled`)===`true`;if(!o.hasAttribute(`tabindex`)||t)o=n(e,o);else{o.focus();return}}},useUtilityClasses$12=e=>{let{vertical:t,fixed:n,hideScrollbar:a,scrollableX:o,scrollableY:s,centered:l,scrollButtonsHideMobile:u,classes:d}=e;return composeClasses({root:[`root`,t&&`vertical`],scroller:[`scroller`,n&&`fixed`,a&&`hideScrollbar`,o&&`scrollableX`,s&&`scrollableY`],flexContainer:[`flexContainer`,t&&`flexContainerVertical`,l&&`centered`],indicator:[`indicator`],scrollButtons:[`scrollButtons`,u&&`scrollButtonsHideMobile`],scrollableX:[o&&`scrollableX`],hideScrollbar:[a&&`hideScrollbar`]},getTabsUtilityClass,d)},TabsRoot=styled$1(`div`,{name:`MuiTabs`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${tabsClasses.scrollButtons}`]:t.scrollButtons},{[`& .${tabsClasses.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})(({ownerState:e,theme:t})=>_extends$3({overflow:`hidden`,minHeight:48,WebkitOverflowScrolling:`touch`,display:`flex`},e.vertical&&{flexDirection:`column`},e.scrollButtonsHideMobile&&{[`& .${tabsClasses.scrollButtons}`]:{[t.breakpoints.down(`sm`)]:{display:`none`}}})),TabsScroller=styled$1(`div`,{name:`MuiTabs`,slot:`Scroller`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})(({ownerState:e})=>_extends$3({position:`relative`,display:`inline-block`,flex:`1 1 auto`,whiteSpace:`nowrap`},e.fixed&&{overflowX:`hidden`,width:`100%`},e.hideScrollbar&&{scrollbarWidth:`none`,"&::-webkit-scrollbar":{display:`none`}},e.scrollableX&&{overflowX:`auto`,overflowY:`hidden`},e.scrollableY&&{overflowY:`auto`,overflowX:`hidden`})),FlexContainer=styled$1(`div`,{name:`MuiTabs`,slot:`FlexContainer`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})(({ownerState:e})=>_extends$3({display:`flex`},e.vertical&&{flexDirection:`column`},e.centered&&{justifyContent:`center`})),TabsIndicator=styled$1(`span`,{name:`MuiTabs`,slot:`Indicator`,overridesResolver:(e,t)=>t.indicator})(({ownerState:e,theme:t})=>_extends$3({position:`absolute`,height:2,bottom:0,width:`100%`,transition:t.transitions.create()},e.indicatorColor===`primary`&&{backgroundColor:(t.vars||t).palette.primary.main},e.indicatorColor===`secondary`&&{backgroundColor:(t.vars||t).palette.secondary.main},e.vertical&&{height:`100%`,width:2,right:0})),TabsScrollbarSize=styled$1(ScrollbarSize)({overflowX:`auto`,overflowY:`hidden`,scrollbarWidth:`none`,"&::-webkit-scrollbar":{display:`none`}}),defaultIndicatorStyle={},Tabs=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTabs`}),a=useTheme$1(),o=useRtl(),{"aria-label":s,"aria-labelledby":l,action:u,centered:d=!1,children:f,className:m,component:h=`div`,allowScrollButtonsMobile:v=!1,indicatorColor:y=`primary`,onChange:b,orientation:x=`horizontal`,ScrollButtonComponent:S=TabScrollButton,scrollButtons:C=`auto`,selectionFollowsFocus:T,slots:E={},slotProps:D={},TabIndicatorProps:O={},TabScrollButtonProps:k={},textColor:j=`primary`,value:M,variant:N=`standard`,visibleScrollbar:F=!1}=n,I=_objectWithoutPropertiesLoose$3(n,_excluded$13),L=N===`scrollable`,R=x===`vertical`,z=R?`scrollTop`:`scrollLeft`,B=R?`top`:`left`,V=R?`bottom`:`right`,H=R?`clientHeight`:`clientWidth`,U=R?`height`:`width`,W=_extends$3({},n,{component:h,allowScrollButtonsMobile:v,indicatorColor:y,orientation:x,vertical:R,scrollButtons:C,textColor:j,variant:N,visibleScrollbar:F,fixed:!L,hideScrollbar:L&&!F,scrollableX:L&&!R,scrollableY:L&&R,centered:d&&!L,scrollButtonsHideMobile:!v}),G=useUtilityClasses$12(W),ee=useSlotProps({elementType:E.StartScrollButtonIcon,externalSlotProps:D.startScrollButtonIcon,ownerState:W}),te=useSlotProps({elementType:E.EndScrollButtonIcon,externalSlotProps:D.endScrollButtonIcon,ownerState:W}),[K,q]=import_react$24.useState(!1),[ne,re]=import_react$24.useState(defaultIndicatorStyle),[J,ie]=import_react$24.useState(!1),[ae,oe]=import_react$24.useState(!1),[se,ce]=import_react$24.useState(!1),[Y,le]=import_react$24.useState({overflow:`hidden`,scrollbarWidth:0}),ue=new Map,de=import_react$24.useRef(null),X=import_react$24.useRef(null),fe=()=>{let e=de.current,t;if(e){let n=e.getBoundingClientRect();t={clientWidth:e.clientWidth,scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(e,o?`rtl`:`ltr`),scrollWidth:e.scrollWidth,top:n.top,bottom:n.bottom,left:n.left,right:n.right}}let n;if(e&&M!==!1){let e=X.current.children;if(e.length>0){let t=e[ue.get(M)];n=t?t.getBoundingClientRect():null}}return{tabsMeta:t,tabMeta:n}},pe=useEventCallback_default(()=>{let{tabsMeta:e,tabMeta:t}=fe(),n=0,a;if(R)a=`top`,t&&e&&(n=t.top-e.top+e.scrollTop);else if(a=o?`right`:`left`,t&&e){let s=o?e.scrollLeftNormalized+e.clientWidth-e.scrollWidth:e.scrollLeft;n=(o?-1:1)*(t[a]-e[a]+s)}let s={[a]:n,[U]:t?t[U]:0};if(isNaN(ne[a])||isNaN(ne[U]))re(s);else{let e=Math.abs(ne[a]-s[a]),t=Math.abs(ne[U]-s[U]);(e>=1||t>=1)&&re(s)}}),me=(e,{animation:t=!0}={})=>{t?animate$1(z,de.current,e,{duration:a.transitions.duration.standard}):de.current[z]=e},he=e=>{let t=de.current[z];R?t+=e:(t+=e*(o?-1:1),t*=o&&detectScrollType()===`reverse`?-1:1),me(t)},ge=()=>{let e=de.current[H],t=0,n=Array.from(X.current.children);for(let a=0;a<n.length;a+=1){let o=n[a];if(t+o[H]>e){a===0&&(t=e);break}t+=o[H]}return t},Z=()=>{he(-1*ge())},_e=()=>{he(ge())},Q=import_react$24.useCallback(e=>{le({overflow:null,scrollbarWidth:e})},[]),$=()=>{let e={};e.scrollbarSizeListener=L?(0,import_jsx_runtime.jsx)(TabsScrollbarSize,{onChange:Q,className:clsx$1(G.scrollableX,G.hideScrollbar)}):null;let t=L&&(C===`auto`&&(J||ae)||C===!0);return e.scrollButtonStart=t?(0,import_jsx_runtime.jsx)(S,_extends$3({slots:{StartScrollButtonIcon:E.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:ee},orientation:x,direction:o?`right`:`left`,onClick:Z,disabled:!J},k,{className:clsx$1(G.scrollButtons,k.className)})):null,e.scrollButtonEnd=t?(0,import_jsx_runtime.jsx)(S,_extends$3({slots:{EndScrollButtonIcon:E.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:te},orientation:x,direction:o?`left`:`right`,onClick:_e,disabled:!ae},k,{className:clsx$1(G.scrollButtons,k.className)})):null,e},ve=useEventCallback_default(e=>{let{tabsMeta:t,tabMeta:n}=fe();if(!(!n||!t)){if(n[B]<t[B]){let a=t[z]+(n[B]-t[B]);me(a,{animation:e})}else if(n[V]>t[V]){let a=t[z]+(n[V]-t[V]);me(a,{animation:e})}}}),ye=useEventCallback_default(()=>{L&&C!==!1&&ce(!se)});import_react$24.useEffect(()=>{let e=debounce_default(()=>{de.current&&pe()}),t,n=n=>{n.forEach(e=>{e.removedNodes.forEach(e=>{var n;(n=t)==null||n.unobserve(e)}),e.addedNodes.forEach(e=>{var n;(n=t)==null||n.observe(e)})}),e(),ye()},a=ownerWindow_default(de.current);a.addEventListener(`resize`,e);let o;return typeof ResizeObserver<`u`&&(t=new ResizeObserver(e),Array.from(X.current.children).forEach(e=>{t.observe(e)})),typeof MutationObserver<`u`&&(o=new MutationObserver(n),o.observe(X.current,{childList:!0})),()=>{var n,s;e.clear(),a.removeEventListener(`resize`,e),(n=o)==null||n.disconnect(),(s=t)==null||s.disconnect()}},[pe,ye]),import_react$24.useEffect(()=>{let e=Array.from(X.current.children),t=e.length;if(typeof IntersectionObserver<`u`&&t>0&&L&&C!==!1){let n=e[0],a=e[t-1],o={root:de.current,threshold:.99},s=new IntersectionObserver(e=>{ie(!e[0].isIntersecting)},o);s.observe(n);let l=new IntersectionObserver(e=>{oe(!e[0].isIntersecting)},o);return l.observe(a),()=>{s.disconnect(),l.disconnect()}}},[L,C,se,f?.length]),import_react$24.useEffect(()=>{q(!0)},[]),import_react$24.useEffect(()=>{pe()}),import_react$24.useEffect(()=>{ve(defaultIndicatorStyle!==ne)},[ve,ne]),import_react$24.useImperativeHandle(u,()=>({updateIndicator:pe,updateScrollButtons:ye}),[pe,ye]);let be=(0,import_jsx_runtime.jsx)(TabsIndicator,_extends$3({},O,{className:clsx$1(G.indicator,O.className),ownerState:W,style:_extends$3({},ne,O.style)})),xe=0,Se=import_react$24.Children.map(f,e=>{if(!import_react$24.isValidElement(e))return null;let t=e.props.value===void 0?xe:e.props.value;ue.set(t,xe);let n=t===M;return xe+=1,import_react$24.cloneElement(e,_extends$3({fullWidth:N===`fullWidth`,indicator:n&&!K&&be,selected:n,selectionFollowsFocus:T,onChange:b,textColor:j,value:t},xe===1&&M===!1&&!e.props.tabIndex?{tabIndex:0}:{}))}),Ce=e=>{let t=X.current,n=ownerDocument_default(t).activeElement;if(n.getAttribute(`role`)!==`tab`)return;let a=x===`horizontal`?`ArrowLeft`:`ArrowUp`,s=x===`horizontal`?`ArrowRight`:`ArrowDown`;switch(x===`horizontal`&&o&&(a=`ArrowRight`,s=`ArrowLeft`),e.key){case a:e.preventDefault(),moveFocus(t,n,previousItem);break;case s:e.preventDefault(),moveFocus(t,n,nextItem);break;case`Home`:e.preventDefault(),moveFocus(t,null,nextItem);break;case`End`:e.preventDefault(),moveFocus(t,null,previousItem);break;default:break}},we=$();return(0,import_jsx_runtime.jsxs)(TabsRoot,_extends$3({className:clsx$1(G.root,m),ownerState:W,ref:t,as:h},I,{children:[we.scrollButtonStart,we.scrollbarSizeListener,(0,import_jsx_runtime.jsxs)(TabsScroller,{className:G.scroller,ownerState:W,style:{overflow:Y.overflow,[R?`margin${o?`Left`:`Right`}`:`marginBottom`]:F?void 0:-Y.scrollbarWidth},ref:de,children:[(0,import_jsx_runtime.jsx)(FlexContainer,{"aria-label":s,"aria-labelledby":l,"aria-orientation":x===`vertical`?`vertical`:null,className:G.flexContainer,ownerState:W,onKeyDown:Ce,ref:X,role:`tablist`,children:Se}),K&&be]}),we.scrollButtonEnd]}))}),import_ArrowDownward=__toESM(require_ArrowDownward()),import_ArrowUpward=__toESM(require_ArrowUpward()),getCowSellValue=e=>getCowValue(e,!0),isCowInBreedingPen=(e,t)=>t.cowId1===e.id||t.cowId2===e.id,faHeart$1={prefix:`fas`,iconName:`heart`,icon:[512,512,[],`f004`,`M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z`]},faMars={prefix:`fas`,iconName:`mars`,icon:[384,512,[],`f222`,`M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z`]},faVenus={prefix:`fas`,iconName:`venus`,icon:[288,512,[],`f221`,`M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z`]};function _typeof$2(e){return _typeof$2=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof$2(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty$2(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t],a=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach(function(t){_defineProperty$2(e,t,n[t])})}return e}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=[],a=!0,o=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(a=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));a=!0);}catch(e){o=!0,s=e}finally{try{!a&&l.return!=null&&l.return()}finally{if(o)throw s}}return n}function _nonIterableRest(){throw TypeError(`Invalid attempt to destructure non-iterable instance`)}var noop$1=function(){},_WINDOW={},_DOCUMENT={},_MUTATION_OBSERVER=null,_PERFORMANCE={mark:noop$1,measure:noop$1};try{typeof window<`u`&&(_WINDOW=window),typeof document<`u`&&(_DOCUMENT=document),typeof performance<`u`&&(_PERFORMANCE=performance)}catch{}var _ref$userAgent=(_WINDOW.navigator||{}).userAgent,userAgent=_ref$userAgent===void 0?``:_ref$userAgent,WINDOW=_WINDOW,DOCUMENT=_DOCUMENT,PERFORMANCE=_PERFORMANCE;WINDOW.document;var IS_DOM=!!DOCUMENT.documentElement&&!!DOCUMENT.head&&typeof DOCUMENT.addEventListener==`function`&&typeof DOCUMENT.createElement==`function`,IS_IE=~userAgent.indexOf(`MSIE`)||~userAgent.indexOf(`Trident/`),NAMESPACE_IDENTIFIER=`___FONT_AWESOME___`,DEFAULT_FAMILY_PREFIX=`fa`,DEFAULT_REPLACEMENT_CLASS=`svg-inline--fa`,DATA_FA_I2SVG=`data-fa-i2svg`,oneToTen=[1,2,3,4,5,6,7,8,9,10],oneToTwenty=oneToTen.concat([11,12,13,14,15,16,17,18,19,20]),DUOTONE_CLASSES={GROUP:`group`,SWAP_OPACITY:`swap-opacity`,PRIMARY:`primary`,SECONDARY:`secondary`},RESERVED_CLASSES=[`xs`,`sm`,`lg`,`fw`,`ul`,`li`,`border`,`pull-left`,`pull-right`,`spin`,`pulse`,`rotate-90`,`rotate-180`,`rotate-270`,`flip-horizontal`,`flip-vertical`,`flip-both`,`stack`,`stack-1x`,`stack-2x`,`inverse`,`layers`,`layers-text`,`layers-counter`,DUOTONE_CLASSES.GROUP,DUOTONE_CLASSES.SWAP_OPACITY,DUOTONE_CLASSES.PRIMARY,DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function(e){return`${e}x`}),oneToTwenty.map(function(e){return`w-${e}`})),initial=WINDOW.FontAwesomeConfig||{};function getAttrConfig(e){var t=DOCUMENT.querySelector(`script[`+e+`]`);if(t)return t.getAttribute(e)}function coerce(e){return e===``?!0:e===`false`?!1:e===`true`||e}DOCUMENT&&typeof DOCUMENT.querySelector==`function`&&[[`data-family-prefix`,`familyPrefix`],[`data-replacement-class`,`replacementClass`],[`data-auto-replace-svg`,`autoReplaceSvg`],[`data-auto-add-css`,`autoAddCss`],[`data-auto-a11y`,`autoA11y`],[`data-search-pseudo-elements`,`searchPseudoElements`],[`data-observe-mutations`,`observeMutations`],[`data-mutate-approach`,`mutateApproach`],[`data-keep-original-source`,`keepOriginalSource`],[`data-measure-performance`,`measurePerformance`],[`data-show-missing-icons`,`showMissingIcons`]].forEach(function(e){var t=_slicedToArray(e,2),n=t[0],a=t[1],o=coerce(getAttrConfig(n));o!=null&&(initial[a]=o)});var _config=_objectSpread({},{familyPrefix:DEFAULT_FAMILY_PREFIX,replacementClass:DEFAULT_REPLACEMENT_CLASS,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:`async`,keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},initial);_config.autoReplaceSvg||(_config.observeMutations=!1);var config=_objectSpread({},_config);WINDOW.FontAwesomeConfig=config;var w=WINDOW||{};w[NAMESPACE_IDENTIFIER]||(w[NAMESPACE_IDENTIFIER]={}),w[NAMESPACE_IDENTIFIER].styles||(w[NAMESPACE_IDENTIFIER].styles={}),w[NAMESPACE_IDENTIFIER].hooks||(w[NAMESPACE_IDENTIFIER].hooks={}),w[NAMESPACE_IDENTIFIER].shims||(w[NAMESPACE_IDENTIFIER].shims=[]);var namespace=w[NAMESPACE_IDENTIFIER],functions=[],listener=function e(){DOCUMENT.removeEventListener(`DOMContentLoaded`,e),loaded=1,functions.map(function(e){return e()})},loaded=!1;IS_DOM&&(loaded=(DOCUMENT.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(DOCUMENT.readyState),loaded||DOCUMENT.addEventListener(`DOMContentLoaded`,listener));var PENDING=`pending`,SETTLED=`settled`,FULFILLED=`fulfilled`,REJECTED=`rejected`,NOOP=function(){},isNode={}.process!==void 0&&typeof{}.process.emit==`function`,asyncSetTimer=typeof setImmediate>`u`?setTimeout:setImmediate,asyncQueue=[],asyncTimer;function asyncFlush(){for(var e=0;e<asyncQueue.length;e++)asyncQueue[e][0](asyncQueue[e][1]);asyncQueue=[],asyncTimer=!1}function asyncCall(e,t){asyncQueue.push([e,t]),asyncTimer||(asyncTimer=!0,asyncSetTimer(asyncFlush,0))}function invokeResolver(e,t){function n(e){resolve(t,e)}function a(e){reject(t,e)}try{e(n,a)}catch(e){a(e)}}function invokeCallback(e){var t=e.owner,n=t._state,a=t._data,o=e[n],s=e.then;if(typeof o==`function`){n=FULFILLED;try{a=o(a)}catch(e){reject(s,e)}}handleThenable(s,a)||(n===FULFILLED&&resolve(s,a),n===REJECTED&&reject(s,a))}function handleThenable(e,t){var n;try{if(e===t)throw TypeError(`A promises callback cannot return that same promise.`);if(t&&(typeof t==`function`||_typeof$2(t)===`object`)){var a=t.then;if(typeof a==`function`)return a.call(t,function(a){n||(n=!0,t===a?fulfill(e,a):resolve(e,a))},function(t){n||(n=!0,reject(e,t))}),!0}}catch(t){return n||reject(e,t),!0}return!1}function resolve(e,t){(e===t||!handleThenable(e,t))&&fulfill(e,t)}function fulfill(e,t){e._state===PENDING&&(e._state=SETTLED,e._data=t,asyncCall(publishFulfillment,e))}function reject(e,t){e._state===PENDING&&(e._state=SETTLED,e._data=t,asyncCall(publishRejection,e))}function publish(e){e._then=e._then.forEach(invokeCallback)}function publishFulfillment(e){e._state=FULFILLED,publish(e)}function publishRejection(e){e._state=REJECTED,publish(e),!e._handled&&isNode&&{}.process.emit(`unhandledRejection`,e._data,e)}function notifyRejectionHandled(e){({}).process.emit(`rejectionHandled`,e)}function P(e){if(typeof e!=`function`)throw TypeError(`Promise resolver `+e+` is not a function`);if(!(this instanceof P))throw TypeError(`Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.`);this._then=[],invokeResolver(e,this)}P.prototype={constructor:P,_state:PENDING,_then:null,_data:void 0,_handled:!1,then:function(e,t){var n={owner:this,then:new this.constructor(NOOP),fulfilled:e,rejected:t};return(t||e)&&!this._handled&&(this._handled=!0,this._state===REJECTED&&isNode&&asyncCall(notifyRejectionHandled,this)),this._state===FULFILLED||this._state===REJECTED?asyncCall(invokeCallback,n):this._then.push(n),n.then},catch:function(e){return this.then(null,e)}},P.all=function(e){if(!Array.isArray(e))throw TypeError(`You must pass an array to Promise.all().`);return new P(function(t,n){var a=[],o=0;function s(e){return o++,function(n){a[e]=n,--o||t(a)}}for(var l=0,u;l<e.length;l++)u=e[l],u&&typeof u.then==`function`?u.then(s(l),n):a[l]=u;o||t(a)})},P.race=function(e){if(!Array.isArray(e))throw TypeError(`You must pass an array to Promise.race().`);return new P(function(t,n){for(var a=0,o;a<e.length;a++)o=e[a],o&&typeof o.then==`function`?o.then(t,n):t(o)})},P.resolve=function(e){return e&&_typeof$2(e)===`object`&&e.constructor===P?e:new P(function(t){t(e)})},P.reject=function(e){return new P(function(t,n){n(e)})};var meaninglessTransform={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function insertCss(e){if(!(!e||!IS_DOM)){var t=DOCUMENT.createElement(`style`);t.setAttribute(`type`,`text/css`),t.innerHTML=e;for(var n=DOCUMENT.head.childNodes,a=null,o=n.length-1;o>-1;o--){var s=n[o],l=(s.tagName||``).toUpperCase();[`STYLE`,`LINK`].indexOf(l)>-1&&(a=s)}return DOCUMENT.head.insertBefore(t,a),e}}var idPool=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`;function nextUniqueId(){for(var e=12,t=``;e-->0;)t+=idPool[Math.random()*62|0];return t}function htmlEscape(e){return`${e}`.replace(/&/g,`&`).replace(/"/g,`"`).replace(/'/g,`'`).replace(/</g,`<`).replace(/>/g,`>`)}function joinAttributes(e){return Object.keys(e||{}).reduce(function(t,n){return t+`${n}="${htmlEscape(e[n])}" `},``).trim()}function joinStyles(e){return Object.keys(e||{}).reduce(function(t,n){return t+`${n}: ${e[n]};`},``)}function transformIsMeaningful(e){return e.size!==meaninglessTransform.size||e.x!==meaninglessTransform.x||e.y!==meaninglessTransform.y||e.rotate!==meaninglessTransform.rotate||e.flipX||e.flipY}function transformForSvg(e){var t=e.transform,n=e.containerWidth,a=e.iconWidth;return{outer:{transform:`translate(${n/2} 256)`},inner:{transform:`${`translate(${t.x*32}, ${t.y*32}) `} ${`scale(${t.size/16*(t.flipX?-1:1)}, ${t.size/16*(t.flipY?-1:1)}) `} ${`rotate(${t.rotate} 0 0)`}`},path:{transform:`translate(${a/2*-1} -256)`}}}var ALL_SPACE={x:0,y:0,width:`100%`,height:`100%`};function fillBlack(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill=`black`),e}function deGroup(e){return e.tag===`g`?e.children:[e]}function makeIconMasking(e){var t=e.children,n=e.attributes,a=e.main,o=e.mask,s=e.maskId,l=e.transform,u=a.width,d=a.icon,f=o.width,m=o.icon,h=transformForSvg({transform:l,containerWidth:f,iconWidth:u}),v={tag:`rect`,attributes:_objectSpread({},ALL_SPACE,{fill:`white`})},y=d.children?{children:d.children.map(fillBlack)}:{},b={tag:`g`,attributes:_objectSpread({},h.inner),children:[fillBlack(_objectSpread({tag:d.tag,attributes:_objectSpread({},d.attributes,h.path)},y))]},x={tag:`g`,attributes:_objectSpread({},h.outer),children:[b]},S=`mask-${s||nextUniqueId()}`,C=`clip-${s||nextUniqueId()}`,T={tag:`mask`,attributes:_objectSpread({},ALL_SPACE,{id:S,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`}),children:[v,x]},E={tag:`defs`,children:[{tag:`clipPath`,attributes:{id:C},children:deGroup(m)},T]};return t.push(E,{tag:`rect`,attributes:_objectSpread({fill:`currentColor`,"clip-path":`url(#${C})`,mask:`url(#${S})`},ALL_SPACE)}),{children:t,attributes:n}}function makeIconStandard(e){var t=e.children,n=e.attributes,a=e.main,o=e.transform,s=e.styles,l=joinStyles(s);if(l.length>0&&(n.style=l),transformIsMeaningful(o)){var u=transformForSvg({transform:o,containerWidth:a.width,iconWidth:a.width});t.push({tag:`g`,attributes:_objectSpread({},u.outer),children:[{tag:`g`,attributes:_objectSpread({},u.inner),children:[{tag:a.icon.tag,children:a.icon.children,attributes:_objectSpread({},a.icon.attributes,u.path)}]}]})}else t.push(a.icon);return{children:t,attributes:n}}function asIcon(e){var t=e.children,n=e.main,a=e.mask,o=e.attributes,s=e.styles,l=e.transform;if(transformIsMeaningful(l)&&n.found&&!a.found){var u={x:n.width/n.height/2,y:.5};o.style=joinStyles(_objectSpread({},s,{"transform-origin":`${u.x+l.x/16}em ${u.y+l.y/16}em`}))}return[{tag:`svg`,attributes:o,children:t}]}function asSymbol(e){var t=e.prefix,n=e.iconName,a=e.children,o=e.attributes,s=e.symbol;return[{tag:`svg`,attributes:{style:`display: none;`},children:[{tag:`symbol`,attributes:_objectSpread({},o,{id:s===!0?`${t}-${config.familyPrefix}-${n}`:s}),children:a}]}]}function makeInlineSvgAbstract(e){var t=e.icons,n=t.main,a=t.mask,o=e.prefix,s=e.iconName,l=e.transform,u=e.symbol,d=e.title,f=e.maskId,m=e.titleId,h=e.extra,v=e.watchable,y=v!==void 0&&v,b=a.found?a:n,x=b.width,S=b.height,C=o===`fak`,T=C?``:`fa-w-${Math.ceil(x/S*16)}`,E=[config.replacementClass,s?`${config.familyPrefix}-${s}`:``,T].filter(function(e){return h.classes.indexOf(e)===-1}).filter(function(e){return e!==``||!!e}).concat(h.classes).join(` `),D={children:[],attributes:_objectSpread({},h.attributes,{"data-prefix":o,"data-icon":s,class:E,role:h.attributes.role||`img`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 ${x} ${S}`})},O=C&&!~h.classes.indexOf(`fa-fw`)?{width:`${x/S*16*.0625}em`}:{};y&&(D.attributes[DATA_FA_I2SVG]=``),d&&D.children.push({tag:`title`,attributes:{id:D.attributes[`aria-labelledby`]||`title-${m||nextUniqueId()}`},children:[d]});var k=_objectSpread({},D,{prefix:o,iconName:s,main:n,mask:a,maskId:f,transform:l,symbol:u,styles:_objectSpread({},O,h.styles)}),j=a.found&&n.found?makeIconMasking(k):makeIconStandard(k),M=j.children,N=j.attributes;return k.children=M,k.attributes=N,u?asSymbol(k):asIcon(k)}var noop$1$1=function(){},p=config.measurePerformance&&PERFORMANCE&&PERFORMANCE.mark&&PERFORMANCE.measure?PERFORMANCE:{mark:noop$1$1,measure:noop$1$1},bindInternal4=function(e,t){return function(n,a,o,s){return e.call(t,n,a,o,s)}},reduce=function(e,t,n,a){var o=Object.keys(e),s=o.length,l=a===void 0?t:bindInternal4(t,a),u,d,f;for(n===void 0?(u=1,f=e[o[0]]):(u=0,f=n);u<s;u++)d=o[u],f=l(f,e[d],d,e);return f};function defineIcons(e,t){var n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}).skipHooks,a=n!==void 0&&n,o=Object.keys(t).reduce(function(e,n){var a=t[n];return a.icon?e[a.iconName]=a.icon:e[n]=a,e},{});typeof namespace.hooks.addPack==`function`&&!a?namespace.hooks.addPack(e,o):namespace.styles[e]=_objectSpread({},namespace.styles[e]||{},o),e===`fas`&&defineIcons(`fa`,t)}var styles$1=namespace.styles,shims=namespace.shims,_byUnicode={},_byLigature={},_byOldName={},build=function(){var e=function(e){return reduce(styles$1,function(t,n,a){return t[a]=reduce(n,e,{}),t},{})};e(function(e,t,n){return t[3]&&(e[t[3]]=n),e}),e(function(e,t,n){var a=t[2];return e[n]=n,a.forEach(function(t){e[t]=n}),e});var t=`far`in styles$1;reduce(shims,function(e,n){var a=n[0],o=n[1],s=n[2];return o===`far`&&!t&&(o=`fas`),e[a]={prefix:o,iconName:s},e},{})};build();var styles$1$1=namespace.styles;function iconFromMapping(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}function toHtml(e){var t=e.tag,n=e.attributes,a=n===void 0?{}:n,o=e.children,s=o===void 0?[]:o;return typeof e==`string`?htmlEscape(e):`<${t} ${joinAttributes(a)}>${s.map(toHtml).join(``)}</${t}>`}var parseTransformString=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(` `).reduce(function(e,t){var n=t.toLowerCase().split(`-`),a=n[0],o=n.slice(1).join(`-`);if(a&&o===`h`)return e.flipX=!0,e;if(a&&o===`v`)return e.flipY=!0,e;if(o=parseFloat(o),isNaN(o))return e;switch(a){case`grow`:e.size+=o;break;case`shrink`:e.size-=o;break;case`left`:e.x-=o;break;case`right`:e.x+=o;break;case`up`:e.y-=o;break;case`down`:e.y+=o;break;case`rotate`:e.rotate+=o;break}return e},t):t};function MissingIcon(e){this.name=`MissingIcon`,this.message=e||`Icon unavailable`,this.stack=Error().stack}MissingIcon.prototype=Object.create(Error.prototype),MissingIcon.prototype.constructor=MissingIcon;var FILL={fill:`currentColor`},ANIMATION_BASE={attributeType:`XML`,repeatCount:`indefinite`,dur:`2s`},RING={tag:`path`,attributes:_objectSpread({},FILL,{d:`M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z`})},OPACITY_ANIMATE=_objectSpread({},ANIMATION_BASE,{attributeName:`opacity`}),missing={tag:`g`,children:[RING,{tag:`circle`,attributes:_objectSpread({},FILL,{cx:`256`,cy:`364`,r:`28`}),children:[{tag:`animate`,attributes:_objectSpread({},ANIMATION_BASE,{attributeName:`r`,values:`28;14;28;28;14;28;`})},{tag:`animate`,attributes:_objectSpread({},OPACITY_ANIMATE,{values:`1;0;1;1;0;1;`})}]},{tag:`path`,attributes:_objectSpread({},FILL,{opacity:`1`,d:`M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z`}),children:[{tag:`animate`,attributes:_objectSpread({},OPACITY_ANIMATE,{values:`1;0;0;0;0;1;`})}]},{tag:`path`,attributes:_objectSpread({},FILL,{opacity:`0`,d:`M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z`}),children:[{tag:`animate`,attributes:_objectSpread({},OPACITY_ANIMATE,{values:`0;0;1;1;0;0;`})}]}]},styles$2=namespace.styles;function asFoundIcon(e){var t=e[0],n=e[1],a=_slicedToArray(e.slice(4),1)[0],o=null;return o=Array.isArray(a)?{tag:`g`,attributes:{class:`${config.familyPrefix}-${DUOTONE_CLASSES.GROUP}`},children:[{tag:`path`,attributes:{class:`${config.familyPrefix}-${DUOTONE_CLASSES.SECONDARY}`,fill:`currentColor`,d:a[0]}},{tag:`path`,attributes:{class:`${config.familyPrefix}-${DUOTONE_CLASSES.PRIMARY}`,fill:`currentColor`,d:a[1]}}]}:{tag:`path`,attributes:{fill:`currentColor`,d:a}},{found:!0,width:t,height:n,icon:o}}var styles$3=namespace.styles,baseStyles=`svg:not(:root).svg-inline--fa {
|
|
162
162
|
overflow: visible;
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -726,7 +726,7 @@ Create a new `,"processor first, by invoking it: use `processor()` instead of ",
|
|
|
726
726
|
animation: ${0} 1.4s linear infinite;
|
|
727
727
|
`,circularRotateKeyframe)),CircularProgressSVG=styled$1(`svg`,{name:`MuiCircularProgress`,slot:`Svg`,overridesResolver:(e,t)=>t.svg})({display:`block`}),CircularProgressCircle=styled$1(`circle`,{name:`MuiCircularProgress`,slot:`Circle`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.circle,t[`circle${capitalize_default(n.variant)}`],n.disableShrink&&t.circleDisableShrink]}})(({ownerState:e,theme:t})=>_extends$3({stroke:`currentColor`},e.variant===`determinate`&&{transition:t.transitions.create(`stroke-dashoffset`)},e.variant===`indeterminate`&&{strokeDasharray:`80px, 200px`,strokeDashoffset:0}),({ownerState:e})=>e.variant===`indeterminate`&&!e.disableShrink&&css$2(_t4||=_`
|
|
728
728
|
animation: ${0} 1.4s ease-in-out infinite;
|
|
729
|
-
`,circularDashKeyframe)),CircularProgress=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCircularProgress`}),{className:a,color:o=`primary`,disableShrink:s=!1,size:l=40,style:u,thickness:d=3.6,value:f=0,variant:m=`indeterminate`}=n,h=_objectWithoutPropertiesLoose$3(n,_excluded$2),v=_extends$3({},n,{color:o,disableShrink:s,size:l,thickness:d,value:f,variant:m}),y=useUtilityClasses$2(v),b={},x={},S={};if(m===`determinate`){let e=2*Math.PI*((SIZE-d)/2);b.strokeDasharray=e.toFixed(3),S[`aria-valuenow`]=Math.round(f),b.strokeDashoffset=`${((100-f)/100*e).toFixed(3)}px`,x.transform=`rotate(-90deg)`}return(0,import_jsx_runtime.jsx)(CircularProgressRoot,_extends$3({className:clsx$1(y.root,a),style:_extends$3({width:l,height:l},x,u),ownerState:v,ref:t,role:`progressbar`},S,h,{children:(0,import_jsx_runtime.jsx)(CircularProgressSVG,{className:y.svg,ownerState:v,viewBox:`${SIZE/2} ${SIZE/2} ${SIZE} ${SIZE}`,children:(0,import_jsx_runtime.jsx)(CircularProgressCircle,{className:y.circle,style:b,ownerState:v,cx:SIZE,cy:SIZE,r:(SIZE-d)/2,fill:`none`,strokeWidth:d})})}))});function DayAndProgressContainer({dayCount:e,experience:t,itemsSold:n}){let a=levelAchieved(t),o=scaleNumber(t,experienceNeededForLevel(a),experienceNeededForLevel(a+1),0,100),s=experienceNeededForLevel(a+1)-t,l=a+1;return(0,import_jsx_runtime.jsxs)(`h2`,{className:`day-and-progress-container`,children:[(0,import_jsx_runtime.jsxs)(`span`,{children:[`Day `,integerString(e),`, level:`]}),(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:EXPERIENCE_GAUGE_TOOLTIP_LABEL`${s}${l}`,children:(0,import_jsx_runtime.jsxs)(Box,{children:[(0,import_jsx_runtime.jsx)(CircularProgress,{value:o,variant:`determinate`}),(0,import_jsx_runtime.jsx)(`span`,{className:`current-level`,children:integerString(a)})]})})]})}DayAndProgressContainer.propTypes={dayCount:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,itemsSold:import_prop_types$1.object.isRequired};function Consumer$15(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(DayAndProgressContainer,{...t,...n,...e})})}var FarmNameDisplay=({farmName:e,handleFarmNameUpdate:t})=>{let[n,a]=(0,import_react$24.useState)(e);return(0,import_react$24.useEffect)(()=>{a(e)},[e,a]),(0,import_jsx_runtime.jsxs)(`h2`,{className:`farm-name`,children:[(0,import_jsx_runtime.jsx)(TextField,{variant:`standard`,inputProps:{maxLength:12},onChange:({target:{value:e}})=>{a(e)},onBlur:({target:{value:e}})=>{t(e)},placeholder:`Farm Name`,value:n}),` `,`Farm`]})},OnlineControls=({activePlayers:e,handleActivePlayerButtonClick:t,handleChatRoomOpenStateChange:n,handleOnlineToggleChange:a,handleRoomChange:o,isChatAvailable:s,isOnline:l,room:u})=>{let[d,f]=(0,import_react$24.useState)(u);(0,import_react$24.useEffect)(()=>{f(u)},[u,f]);let m=()=>{n(!0)},h=()=>{o(d)},v=e=>{h(),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(FormControl,{variant:`standard`,className:`online-control-container`,component:`fieldset`,children:[(0,import_jsx_runtime.jsx)(FormGroup,{className:`toggle-container`,children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:l,onChange:(e,t)=>{v(t)},name:`play-online`}),label:`Play online`})}),(0,import_jsx_runtime.jsx)(TextField,{className:`room-name`,inputProps:{maxLength:25},label:`Room name`,onChange:({target:{value:e}})=>{f(e)},onKeyUp:({key:e})=>{e===`Enter`&&h()},value:d,variant:`outlined`})]}),e&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(Button,{color:`primary`,onClick:t,variant:`contained`,children:[`Connected players: `,integerString(e)]}),s?(0,import_jsx_runtime.jsx)(Button,{variant:`contained`,color:`primary`,onClick:m,children:`Open chat`}):(0,import_jsx_runtime.jsxs)(Typography,{className:`chat-placeholder`,children:[`Chat is available for online rooms other than "`,`global`,`"`]})]})]})},{FARMERS_LOG,PRICE_EVENTS,STATS,ACHIEVEMENTS,ACCOUNTING,SETTINGS,ONLINE_PEERS,KEYBINDINGS}=dialogView,dialogTriggerTextMap={[FARMERS_LOG]:`Open Farmer's Log (l)`,[PRICE_EVENTS]:`See Price Events (e)`,[STATS]:`View your stats (s)`,[ACHIEVEMENTS]:`View Achievements (a)`,[ACCOUNTING]:`View Bank Account (b)`,[SETTINGS]:`View Settings (comma)`},dialogTitleMap={[FARMERS_LOG]:`Farmer's Log`,[PRICE_EVENTS]:`Price Events`,[STATS]:`Farm Stats`,[ACHIEVEMENTS]:`Achievements`,[ACCOUNTING]:`Bank Account`,[SETTINGS]:`Settings`,[ONLINE_PEERS]:`Active Players`,[KEYBINDINGS]:`Keyboard Shortcuts`},dialogContentMap={[FARMERS_LOG]:(0,import_jsx_runtime.jsx)(Consumer$20,{}),[PRICE_EVENTS]:(0,import_jsx_runtime.jsx)(Consumer$18,{}),[STATS]:(0,import_jsx_runtime.jsx)(Consumer$16,{}),[ACHIEVEMENTS]:(0,import_jsx_runtime.jsx)(Consumer$21,{}),[ACCOUNTING]:(0,import_jsx_runtime.jsx)(Consumer$23,{}),[SETTINGS]:(0,import_jsx_runtime.jsx)(Consumer$17,{}),[ONLINE_PEERS]:(0,import_jsx_runtime.jsx)(Consumer$19,{}),[KEYBINDINGS]:(0,import_jsx_runtime.jsx)(KeybindingsView,{})},Navigation=({activePlayers:e,blockInput:t,currentDialogView:n,farmName:a,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleClickDialogViewButton:l,handleCloseDialogView:u,handleDialogViewExited:d,handleFarmNameUpdate:f,handleOnlineToggleChange:m,handleRoomChange:h,handleViewChange:v,inventory:y,inventoryLimit:b,isChatAvailable:x,isDialogViewOpen:S,isOnline:C,room:T,stageFocus:E,viewList:D,currentDialogViewLowerCase:O=(n||``).toLowerCase(),modalTitleId:k=`${O}-modal-title`,modalContentId:j=`${O}-modal-content`})=>(0,import_jsx_runtime.jsxs)(Header,{className:`Navigation`,sx:{flexDirection:`column`,flexShrink:0,display:`flex`,"& .version":{fontFamily:`"Francois One", sans-serif`,textAlign:`center`},"& .farm-name":{lineHeight:`1.3em`,margin:`0.25em 0`,"& .MuiInput-root":{background:`none`,margin:0,"& input":{fontFamily:`"Francois One"`,paddingLeft:`0.5em`,paddingRight:`0.5em`,textAlign:`center`}}},"& .online-control-container":{alignItems:`center`,display:`flex`,flexDirection:`row`,margin:`1em 0`,"& .toggle-container":{minWidth:`155px`}},"& .button-array":{marginLeft:`3em`,marginRight:`3em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`2em`,marginRight:`2em`}},"& .current-level":{alignItems:`center`,bottom:0,display:`flex`,justifyContent:`center`,left:0,position:`absolute`,right:0,top:0,userSelect:`none`},"& h1":{fontSize:`3em`,fontWeight:`bold`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{fontSize:`2.5em`}},"& button":{fontSize:`1.3em`,margin:`0.3em`,minWidth:`56px`},"& h1, & h2, & h3":{textAlign:`center`},"& .day-and-progress-container":{alignItems:`center`,display:`flex`,fontSize:`1.5em`,margin:`0.5em auto`,"& .MuiBox-root":{display:`inline-flex`,marginLeft:`0.5em`,position:`relative`}},"& .inventory-info":{fontSize:`1em`},"& .MuiSelect-select":{padding:`1em`},"& .chat-placeholder":{fontSize:`0.75em`,padding:`0.5em 0`,textAlign:`center`}},children:[(0,import_jsx_runtime.jsx)(`h1`,{children:`Farmhand`}),(0,import_jsx_runtime.jsxs)(`p`,{className:`version`,children:[`v`,`1.20.5`]}),(0,import_jsx_runtime.jsx)(FarmNameDisplay,{farmName:a,handleFarmNameUpdate:f}),(0,import_jsx_runtime.jsx)(Consumer$15,{}),(0,import_jsx_runtime.jsx)(OnlineControls,{activePlayers:e,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleOnlineToggleChange:m,handleRoomChange:h,isChatAvailable:x,isOnline:C,room:T}),b>-1&&(0,import_jsx_runtime.jsxs)(H3,{className:(0,import_classnames.default)(`inventory-info`,{"is-inventory-full":!doesInventorySpaceRemain({inventory:y,inventoryLimit:b})}),sx:{color:doesInventorySpaceRemain({inventory:y,inventoryLimit:b})?void 0:colors.error},children:[`Inventory: `,integerString(inventorySpaceConsumed(y)),` /`,` `,integerString(b)]}),(0,import_jsx_runtime.jsx)(Select,{variant:`standard`,className:`view-select`,onChange:v,value:E,children:D.map((e,t)=>(0,import_jsx_runtime.jsxs)(MenuItem,{key:e,value:e,children:[t+1,`: `,STAGE_TITLE_MAP[e]]}))}),(0,import_jsx_runtime.jsx)(`div`,{className:`button-array`,children:[{dialogView:FARMERS_LOG,Icon:import_Book.default},{dialogView:PRICE_EVENTS,Icon:import_FlashOn.default},{dialogView:STATS,Icon:import_Assessment.default},{dialogView:ACHIEVEMENTS,Icon:import_Beenhere.default},{dialogView:ACCOUNTING,Icon:import_AccountBalance.default},{dialogView:SETTINGS,Icon:import_Settings.default}].map(({dialogView:e,Icon:t})=>(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,key:e,placement:`top`,title:dialogTriggerTextMap[e],children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":dialogTriggerTextMap[e],color:`primary`,onClick:()=>l(e),children:(0,import_jsx_runtime.jsx)(t,{})})}))}),(0,import_jsx_runtime.jsxs)(Dialog,{className:(0,import_classnames.default)(`Farmhand`,{"block-input":t}),fullWidth:!0,maxWidth:`xs`,onClose:u,open:S,TransitionProps:{onExited:d},"aria-describedby":k,"aria-labelledby":j,children:[(0,import_jsx_runtime.jsx)(DialogTitle,{id:k,children:n?dialogTitleMap[n]:``}),(0,import_jsx_runtime.jsx)(DialogContent,{id:j,children:n?dialogContentMap[n]:null}),(0,import_jsx_runtime.jsx)(DialogActions,{children:(0,import_jsx_runtime.jsx)(Button,{onClick:u,color:`primary`,autoFocus:!0,children:`Close`})})]})]});Navigation.propTypes={activePlayers:import_prop_types$1.number,blockInput:import_prop_types$1.bool.isRequired,farmName:import_prop_types$1.string.isRequired,handleClickDialogViewButton:import_prop_types$1.func.isRequired,handleChatRoomOpenStateChange:import_prop_types$1.func.isRequired,handleActivePlayerButtonClick:import_prop_types$1.func.isRequired,handleCloseDialogView:import_prop_types$1.func.isRequired,handleDialogViewExited:import_prop_types$1.func.isRequired,handleFarmNameUpdate:import_prop_types$1.func.isRequired,handleOnlineToggleChange:import_prop_types$1.func.isRequired,handleRoomChange:import_prop_types$1.func.isRequired,handleViewChange:import_prop_types$1.func.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isChatAvailable:import_prop_types$1.bool.isRequired,isDialogViewOpen:import_prop_types$1.bool.isRequired,isOnline:import_prop_types$1.bool.isRequired,stageFocus:import_prop_types$1.string.isRequired,viewList:import_prop_types$1.array.isRequired};function Consumer$14(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Navigation,{...t,...n,...e})})}var getNotificationKey=({message:e,severity:t})=>`${t}:${e}`,snackbarProviderContentCallback=(e,{message:t,onClick:n,severity:a})=>(0,import_jsx_runtime.jsx)(Alert,{elevation:3,key:e,onClick:n,severity:a,style:{cursor:n?`pointer`:`default`},children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{source:t})}),NotificationSystem=({enqueueSnackbar:e,latestNotification:t})=>((0,import_react$24.useEffect)(()=>{t&&e(t,{key:getNotificationKey(t),autoHideDuration:NOTIFICATION_DURATION,preventDuplicate:!0})},[e,t]),null);NotificationSystem.propTypes={latestNotification:(0,import_prop_types$1.shape)({message:import_prop_types$1.string.isRequired,onClick:import_prop_types$1.func,severity:import_prop_types$1.string.isRequired})};var NotificationSystem_default=withSnackbar(function(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(NotificationSystem,{...t,...n,...e})})}),require_ZoomIn=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)([(0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14`},`0`),(0,a.jsx)(`path`,{d:`M12 10h-2v2H9v-2H7V9h2V7h1v2h2z`},`1`)],`ZoomIn`)})),require_ZoomOut=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z`}),`ZoomOut`)}));function areArraysEqual(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,a)=>n(e,t[a]))}init_extends(),init_esm(),init_extractEventHandlers();var INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(e,t){return e-t}function findClosest(e,t){var n;let{index:a}=e.reduce((e,n,a)=>{let o=Math.abs(t-n);return e===null||o<e.distance||o===e.distance?{distance:o,index:a}:e},null)??{};return a}function trackFinger(e,t){if(t.current!==void 0&&e.changedTouches){let n=e;for(let e=0;e<n.changedTouches.length;e+=1){let a=n.changedTouches[e];if(a.identifier===t.current)return{x:a.clientX,y:a.clientY}}return!1}return{x:e.clientX,y:e.clientY}}function valueToPercent(e,t,n){return(e-t)*100/(n-t)}function percentToValue(e,t,n){return(n-t)*e+t}function getDecimalPrecision(e){if(Math.abs(e)<1){let t=e.toExponential().split(`e-`),n=t[0].split(`.`)[1];return(n?n.length:0)+parseInt(t[1],10)}let t=e.toString().split(`.`)[1];return t?t.length:0}function roundValueToStep(e,t,n){let a=Math.round((e-n)/t)*t+n;return Number(a.toFixed(getDecimalPrecision(t)))}function setValueIndex({values:e,newValue:t,index:n}){let a=e.slice();return a[n]=t,a.sort(asc)}function focusThumb({sliderRef:e,activeIndex:t,setActive:n}){var a,o;let s=ownerDocument(e.current);if(!((a=e.current)!=null&&a.contains(s.activeElement))||Number(s==null||(o=s.activeElement)==null?void 0:o.getAttribute(`data-index`))!==t){var l;(l=e.current)==null||l.querySelector(`[type="range"][data-index="${t}"]`).focus()}n&&n(t)}function areValuesEqual(e,t){return typeof e==`number`&&typeof t==`number`?e===t:typeof e==`object`&&typeof t==`object`&&areArraysEqual(e,t)}var axisProps={horizontal:{offset:e=>({left:`${e}%`}),leap:e=>({width:`${e}%`})},"horizontal-reverse":{offset:e=>({right:`${e}%`}),leap:e=>({width:`${e}%`})},vertical:{offset:e=>({bottom:`${e}%`}),leap:e=>({height:`${e}%`})}},Identity$1=e=>e,cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(cachedSupportsTouchActionNone=typeof CSS<`u`&&typeof CSS.supports==`function`?CSS.supports(`touch-action`,`none`):!0),cachedSupportsTouchActionNone}function useSlider(e){let{"aria-labelledby":t,defaultValue:n,disabled:a=!1,disableSwap:o=!1,isRtl:s=!1,marks:l=!1,max:u=100,min:d=0,name:f,onChange:m,onChangeCommitted:h,orientation:v=`horizontal`,rootRef:y,scale:b=Identity$1,step:x=1,shiftStep:S=10,tabIndex:C,value:T}=e,E=import_react$24.useRef(void 0),[D,O]=import_react$24.useState(-1),[k,j]=import_react$24.useState(-1),[M,N]=import_react$24.useState(!1),F=import_react$24.useRef(0),[I,L]=useControlled({controlled:T,default:n??d,name:`Slider`}),R=m&&((e,t,n)=>{let a=e.nativeEvent||e,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:t,name:f}}),m(o,t,n)}),z=Array.isArray(I),B=z?I.slice().sort(asc):[I];B=B.map(e=>e==null?d:clamp$1(e,d,u));let V=l===!0&&x!==null?[...Array(Math.floor((u-d)/x)+1)].map((e,t)=>({value:d+x*t})):l||[],H=V.map(e=>e.value),{isFocusVisibleRef:U,onBlur:W,onFocus:G,ref:ee}=useIsFocusVisible(),[te,K]=import_react$24.useState(-1),q=import_react$24.useRef(null),ne=useForkRef(y,useForkRef(ee,q)),re=e=>t=>{var n;let a=Number(t.currentTarget.getAttribute(`data-index`));G(t),U.current===!0&&K(a),j(a),e==null||(n=e.onFocus)==null||n.call(e,t)},J=e=>t=>{var n;W(t),U.current===!1&&K(-1),j(-1),e==null||(n=e.onBlur)==null||n.call(e,t)},ie=(e,t)=>{let n=Number(e.currentTarget.getAttribute(`data-index`)),a=B[n],s=H.indexOf(a),l=t;if(V&&x==null){let e=H[H.length-1];l=l>e?e:l<H[0]?H[0]:l<a?H[s-1]:H[s+1]}if(l=clamp$1(l,d,u),z){o&&(l=clamp$1(l,B[n-1]||-1/0,B[n+1]||1/0));let e=l;l=setValueIndex({values:B,newValue:l,index:n});let t=n;o||(t=l.indexOf(e)),focusThumb({sliderRef:q,activeIndex:t})}L(l),K(n),R&&!areValuesEqual(l,I)&&R(e,l,n),h&&h(e,l)},ae=e=>t=>{var n;if(x!==null){let e=Number(t.currentTarget.getAttribute(`data-index`)),n=B[e],a=null;(t.key===`ArrowLeft`||t.key===`ArrowDown`)&&t.shiftKey||t.key===`PageDown`?a=Math.max(n-S,d):((t.key===`ArrowRight`||t.key===`ArrowUp`)&&t.shiftKey||t.key===`PageUp`)&&(a=Math.min(n+S,u)),a!==null&&(ie(t,a),t.preventDefault())}e==null||(n=e.onKeyDown)==null||n.call(e,t)};useEnhancedEffect$1(()=>{if(a&&q.current.contains(document.activeElement)){var e;(e=document.activeElement)==null||e.blur()}},[a]),a&&D!==-1&&O(-1),a&&te!==-1&&K(-1);let oe=e=>t=>{var n;(n=e.onChange)==null||n.call(e,t),ie(t,t.target.valueAsNumber)},se=import_react$24.useRef(void 0),ce=v;s&&v===`horizontal`&&(ce+=`-reverse`);let Y=({finger:e,move:t=!1})=>{let{current:n}=q,{width:a,height:s,bottom:l,left:f}=n.getBoundingClientRect(),m;m=ce.indexOf(`vertical`)===0?(l-e.y)/s:(e.x-f)/a,ce.indexOf(`-reverse`)!==-1&&(m=1-m);let h;if(h=percentToValue(m,d,u),x)h=roundValueToStep(h,x,d);else{let e=findClosest(H,h);h=H[e]}h=clamp$1(h,d,u);let v=0;if(z){v=t?se.current:findClosest(B,h),o&&(h=clamp$1(h,B[v-1]||-1/0,B[v+1]||1/0));let e=h;h=setValueIndex({values:B,newValue:h,index:v}),o&&t||(v=h.indexOf(e),se.current=v)}return{newValue:h,activeIndex:v}},le=useEventCallback$1(e=>{let t=trackFinger(e,E);if(!t)return;if(F.current+=1,e.type===`mousemove`&&e.buttons===0){ue(e);return}let{newValue:n,activeIndex:a}=Y({finger:t,move:!0});focusThumb({sliderRef:q,activeIndex:a,setActive:O}),L(n),!M&&F.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&N(!0),R&&!areValuesEqual(n,I)&&R(e,n,a)}),ue=useEventCallback$1(e=>{let t=trackFinger(e,E);if(N(!1),!t)return;let{newValue:n}=Y({finger:t,move:!0});O(-1),e.type===`touchend`&&j(-1),h&&h(e,n),E.current=void 0,X()}),de=useEventCallback$1(e=>{if(a)return;doesSupportTouchActionNone()||e.preventDefault();let t=e.changedTouches[0];t!=null&&(E.current=t.identifier);let n=trackFinger(e,E);if(n!==!1){let{newValue:t,activeIndex:a}=Y({finger:n});focusThumb({sliderRef:q,activeIndex:a,setActive:O}),L(t),R&&!areValuesEqual(t,I)&&R(e,t,a)}F.current=0;let o=ownerDocument(q.current);o.addEventListener(`touchmove`,le,{passive:!0}),o.addEventListener(`touchend`,ue,{passive:!0})}),X=import_react$24.useCallback(()=>{let e=ownerDocument(q.current);e.removeEventListener(`mousemove`,le),e.removeEventListener(`mouseup`,ue),e.removeEventListener(`touchmove`,le),e.removeEventListener(`touchend`,ue)},[ue,le]);import_react$24.useEffect(()=>{let{current:e}=q;return e.addEventListener(`touchstart`,de,{passive:doesSupportTouchActionNone()}),()=>{e.removeEventListener(`touchstart`,de),X()}},[X,de]),import_react$24.useEffect(()=>{a&&X()},[a,X]);let fe=e=>t=>{var n;if((n=e.onMouseDown)==null||n.call(e,t),a||t.defaultPrevented||t.button!==0)return;t.preventDefault();let o=trackFinger(t,E);if(o!==!1){let{newValue:e,activeIndex:n}=Y({finger:o});focusThumb({sliderRef:q,activeIndex:n,setActive:O}),L(e),R&&!areValuesEqual(e,I)&&R(t,e,n)}F.current=0;let s=ownerDocument(q.current);s.addEventListener(`mousemove`,le,{passive:!0}),s.addEventListener(`mouseup`,ue)},pe=valueToPercent(z?B[0]:d,d,u),me=valueToPercent(B[B.length-1],d,u)-pe,he=(e={})=>{let t=extractEventHandlers(e),n=_extends$3({},t,{onMouseDown:fe(t||{})});return _extends$3({},e,{ref:ne},n)},ge=e=>t=>{var n;(n=e.onMouseOver)==null||n.call(e,t);let a=Number(t.currentTarget.getAttribute(`data-index`));j(a)},Z=e=>t=>{var n;(n=e.onMouseLeave)==null||n.call(e,t),j(-1)};return{active:D,axis:ce,axisProps,dragging:M,focusedThumbIndex:te,getHiddenInputProps:(n={})=>{var o;let l=extractEventHandlers(n),m=_extends$3({},l,{onChange:oe(l||{}),onFocus:re(l||{}),onBlur:J(l||{}),onKeyDown:ae(l||{})});return _extends$3({tabIndex:C,"aria-labelledby":t,"aria-orientation":v,"aria-valuemax":b(u),"aria-valuemin":b(d),name:f,type:`range`,min:e.min,max:e.max,step:e.step===null&&e.marks?`any`:e.step??void 0,disabled:a},n,m,{style:_extends$3({},visuallyHidden,{direction:s?`rtl`:`ltr`,width:`100%`,height:`100%`})})},getRootProps:he,getThumbProps:(e={})=>{let t=extractEventHandlers(e);return _extends$3({},e,t,{onMouseOver:ge(t||{}),onMouseLeave:Z(t||{})})},marks:V,open:k,range:z,rootRef:ne,trackLeap:me,trackOffset:pe,values:B,getThumbStyle:e=>({pointerEvents:D!==-1&&D!==e?`none`:void 0})}}init_isHostComponent();var shouldSpreadAdditionalProps=e=>!e||!isHostComponent(e);init_generateUtilityClasses(),init_generateUtilityClass();function getSliderUtilityClass(e){return generateUtilityClass(`MuiSlider`,e)}var sliderClasses=generateUtilityClasses(`MuiSlider`,`root.active.colorPrimary.colorSecondary.colorError.colorInfo.colorSuccess.colorWarning.disabled.dragging.focusVisible.mark.markActive.marked.markLabel.markLabelActive.rail.sizeSmall.thumb.thumbColorPrimary.thumbColorSecondary.thumbColorError.thumbColorSuccess.thumbColorInfo.thumbColorWarning.track.trackInverted.trackFalse.thumbSizeSmall.valueLabel.valueLabelOpen.valueLabelCircle.valueLabelLabel.vertical`.split(`.`));init_clsx();var useValueLabelClasses=e=>{let{open:t}=e;return{offset:clsx$1(t&&sliderClasses.valueLabelOpen),circle:sliderClasses.valueLabelCircle,label:sliderClasses.valueLabelLabel}};function SliderValueLabel$1(e){let{children:t,className:n,value:a}=e,o=useValueLabelClasses(e);return t?import_react$24.cloneElement(t,{className:clsx$1(t.props.className)},(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[t.props.children,(0,import_jsx_runtime.jsx)(`span`,{className:clsx$1(o.offset,n),"aria-hidden":!0,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.circle,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.label,children:a})})})]})):null}init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_isHostComponent(),init_styled(),init_DefaultPropsProvider(),init_slotShouldForwardProp(),init_capitalize();var _excluded$1=`aria-label.aria-valuetext.aria-labelledby.component.components.componentsProps.color.classes.className.disableSwap.disabled.getAriaLabel.getAriaValueText.marks.max.min.name.onChange.onChangeCommitted.orientation.shiftStep.size.step.scale.slotProps.slots.tabIndex.track.value.valueLabelDisplay.valueLabelFormat`.split(`.`);function Identity(e){return e}var SliderRoot=styled$1(`span`,{name:`MuiSlider`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`color${capitalize_default(n.color)}`],n.size!==`medium`&&t[`size${capitalize_default(n.size)}`],n.marked&&t.marked,n.orientation===`vertical`&&t.vertical,n.track===`inverted`&&t.trackInverted,n.track===!1&&t.trackFalse]}})(({theme:e})=>{var t;return{borderRadius:12,boxSizing:`content-box`,display:`inline-block`,position:`relative`,cursor:`pointer`,touchAction:`none`,WebkitTapHighlightColor:`transparent`,"@media print":{colorAdjust:`exact`},[`&.${sliderClasses.disabled}`]:{pointerEvents:`none`,cursor:`default`,color:(e.vars||e).palette.grey[400]},[`&.${sliderClasses.dragging}`]:{[`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]:{transition:`none`}},variants:[...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),{props:{orientation:`horizontal`},style:{height:4,width:`100%`,padding:`13px 0`,"@media (pointer: coarse)":{padding:`20px 0`}}},{props:{orientation:`horizontal`,size:`small`},style:{height:2}},{props:{orientation:`horizontal`,marked:!0},style:{marginBottom:20}},{props:{orientation:`vertical`},style:{height:`100%`,width:4,padding:`0 13px`,"@media (pointer: coarse)":{padding:`0 20px`}}},{props:{orientation:`vertical`,size:`small`},style:{width:2}},{props:{orientation:`vertical`,marked:!0},style:{marginRight:44}}]}}),SliderRail=styled$1(`span`,{name:`MuiSlider`,slot:`Rail`,overridesResolver:(e,t)=>t.rail})({display:`block`,position:`absolute`,borderRadius:`inherit`,backgroundColor:`currentColor`,opacity:.38,variants:[{props:{orientation:`horizontal`},style:{width:`100%`,height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{height:`100%`,width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:`inverted`},style:{opacity:1}}]}),SliderTrack=styled$1(`span`,{name:`MuiSlider`,slot:`Track`,overridesResolver:(e,t)=>t.track})(({theme:e})=>{var t;return{display:`block`,position:`absolute`,borderRadius:`inherit`,border:`1px solid currentColor`,backgroundColor:`currentColor`,transition:e.transitions.create([`left`,`width`,`bottom`,`height`],{duration:e.transitions.duration.shortest}),variants:[{props:{size:`small`},style:{border:`none`}},{props:{orientation:`horizontal`},style:{height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:!1},style:{display:`none`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t,track:`inverted`},style:_extends$3({},e.vars?{backgroundColor:e.vars.palette.Slider[`${t}Track`],borderColor:e.vars.palette.Slider[`${t}Track`]}:_extends$3({backgroundColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62),borderColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62)},e.applyStyles(`dark`,{backgroundColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)}),e.applyStyles(`dark`,{borderColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)})))}))]}}),SliderThumb=styled$1(`span`,{name:`MuiSlider`,slot:`Thumb`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.thumb,t[`thumbColor${capitalize_default(n.color)}`],n.size!==`medium`&&t[`thumbSize${capitalize_default(n.size)}`]]}})(({theme:e})=>{var t;return{position:`absolute`,width:20,height:20,boxSizing:`border-box`,borderRadius:`50%`,outline:0,backgroundColor:`currentColor`,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:e.transitions.create([`box-shadow`,`left`,`bottom`],{duration:e.transitions.duration.shortest}),"&::before":{position:`absolute`,content:`""`,borderRadius:`inherit`,width:`100%`,height:`100%`,boxShadow:(e.vars||e).shadows[2]},"&::after":{position:`absolute`,content:`""`,borderRadius:`50%`,width:42,height:42,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`},[`&.${sliderClasses.disabled}`]:{"&:hover":{boxShadow:`none`}},variants:[{props:{size:`small`},style:{width:12,height:12,"&::before":{boxShadow:`none`}}},{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-50%, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 50%)`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{[`&:hover, &.${sliderClasses.focusVisible}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 8px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`},{"@media (hover: none)":{boxShadow:`none`}}),[`&.${sliderClasses.active}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 14px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`})}}))]}}),SliderValueLabel=styled$1(SliderValueLabel$1,{name:`MuiSlider`,slot:`ValueLabel`,overridesResolver:(e,t)=>t.valueLabel})(({theme:e})=>_extends$3({zIndex:1,whiteSpace:`nowrap`},e.typography.body2,{fontWeight:500,transition:e.transitions.create([`transform`],{duration:e.transitions.duration.shortest}),position:`absolute`,backgroundColor:(e.vars||e).palette.grey[600],borderRadius:2,color:(e.vars||e).palette.common.white,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`0.25rem 0.75rem`,variants:[{props:{orientation:`horizontal`},style:{transform:`translateY(-100%) scale(0)`,top:`-10px`,transformOrigin:`bottom center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, 50%) rotate(45deg)`,backgroundColor:`inherit`,bottom:0,left:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-100%) scale(1)`}}},{props:{orientation:`vertical`},style:{transform:`translateY(-50%) scale(0)`,right:`30px`,top:`50%`,transformOrigin:`right center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, -50%) rotate(45deg)`,backgroundColor:`inherit`,right:-8,top:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-50%) scale(1)`}}},{props:{size:`small`},style:{fontSize:e.typography.pxToRem(12),padding:`0.25rem 0.5rem`}},{props:{orientation:`vertical`,size:`small`},style:{right:`20px`}}]})),SliderMark=styled$1(`span`,{name:`MuiSlider`,slot:`Mark`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markActive`,overridesResolver:(e,t)=>{let{markActive:n}=e;return[t.mark,n&&t.markActive]}})(({theme:e})=>({position:`absolute`,width:2,height:2,borderRadius:1,backgroundColor:`currentColor`,variants:[{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-1px, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 1px)`}},{props:{markActive:!0},style:{backgroundColor:(e.vars||e).palette.background.paper,opacity:.8}}]})),SliderMarkLabel=styled$1(`span`,{name:`MuiSlider`,slot:`MarkLabel`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markLabelActive`,overridesResolver:(e,t)=>t.markLabel})(({theme:e})=>_extends$3({},e.typography.body2,{color:(e.vars||e).palette.text.secondary,position:`absolute`,whiteSpace:`nowrap`,variants:[{props:{orientation:`horizontal`},style:{top:30,transform:`translateX(-50%)`,"@media (pointer: coarse)":{top:40}}},{props:{orientation:`vertical`},style:{left:36,transform:`translateY(50%)`,"@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(e.vars||e).palette.text.primary}}]})),useUtilityClasses$1=e=>{let{disabled:t,dragging:n,marked:a,orientation:o,track:s,classes:l,color:u,size:d}=e;return composeClasses({root:[`root`,t&&`disabled`,n&&`dragging`,a&&`marked`,o===`vertical`&&`vertical`,s===`inverted`&&`trackInverted`,s===!1&&`trackFalse`,u&&`color${capitalize_default(u)}`,d&&`size${capitalize_default(d)}`],rail:[`rail`],track:[`track`],mark:[`mark`],markActive:[`markActive`],markLabel:[`markLabel`],markLabelActive:[`markLabelActive`],valueLabel:[`valueLabel`],thumb:[`thumb`,t&&`disabled`,d&&`thumbSize${capitalize_default(d)}`,u&&`thumbColor${capitalize_default(u)}`],active:[`active`],disabled:[`disabled`],focusVisible:[`focusVisible`]},getSliderUtilityClass,l)},Forward=({children:e})=>e,Slider=import_react$24.forwardRef(function(e,t){var n,a,o,s,l,u,d,f,m,h,v,y,b,x,S,C,T,E,D,O,k,j,M,N;let F=useDefaultProps({props:e,name:`MuiSlider`}),I=useRtl(),{"aria-label":L,"aria-valuetext":R,"aria-labelledby":z,component:B=`span`,components:V={},componentsProps:H={},color:U=`primary`,classes:W,className:G,disableSwap:ee=!1,disabled:te=!1,getAriaLabel:K,getAriaValueText:q,marks:ne=!1,max:re=100,min:J=0,orientation:ie=`horizontal`,shiftStep:ae=10,size:oe=`medium`,step:se=1,scale:ce=Identity,slotProps:Y,slots:le,track:ue=`normal`,valueLabelDisplay:de=`off`,valueLabelFormat:X=Identity}=F,fe=_objectWithoutPropertiesLoose$3(F,_excluded$1),pe=_extends$3({},F,{isRtl:I,max:re,min:J,classes:W,disabled:te,disableSwap:ee,orientation:ie,marks:ne,color:U,size:oe,step:se,shiftStep:ae,scale:ce,track:ue,valueLabelDisplay:de,valueLabelFormat:X}),{axisProps:me,getRootProps:he,getHiddenInputProps:ge,getThumbProps:Z,open:_e,active:Q,axis:$,focusedThumbIndex:ve,range:ye,dragging:be,marks:xe,values:Se,trackOffset:Ce,trackLeap:we,getThumbStyle:Te}=useSlider(_extends$3({},pe,{rootRef:t}));pe.marked=xe.length>0&&xe.some(e=>e.label),pe.dragging=be,pe.focusedThumbIndex=ve;let Ee=useUtilityClasses$1(pe),De=le?.root??V.Root??SliderRoot,Oe=le?.rail??V.Rail??SliderRail,ke=le?.track??V.Track??SliderTrack,Ae=le?.thumb??V.Thumb??SliderThumb,je=le?.valueLabel??V.ValueLabel??SliderValueLabel,Me=le?.mark??V.Mark??SliderMark,Ne=le?.markLabel??V.MarkLabel??SliderMarkLabel,Pe=le?.input??V.Input??`input`,Fe=Y?.root??H.root,Ie=Y?.rail??H.rail,Le=Y?.track??H.track,Re=Y?.thumb??H.thumb,ze=Y?.valueLabel??H.valueLabel,Be=Y?.mark??H.mark,Ve=Y?.markLabel??H.markLabel,He=Y?.input??H.input,Ue=useSlotProps({elementType:De,getSlotProps:he,externalSlotProps:Fe,externalForwardedProps:fe,additionalProps:_extends$3({},shouldSpreadAdditionalProps(De)&&{as:B}),ownerState:_extends$3({},pe,Fe?.ownerState),className:[Ee.root,G]}),We=useSlotProps({elementType:Oe,externalSlotProps:Ie,ownerState:pe,className:Ee.rail}),Ge=useSlotProps({elementType:ke,externalSlotProps:Le,additionalProps:{style:_extends$3({},me[$].offset(Ce),me[$].leap(we))},ownerState:_extends$3({},pe,Le?.ownerState),className:Ee.track}),Ke=useSlotProps({elementType:Ae,getSlotProps:Z,externalSlotProps:Re,ownerState:_extends$3({},pe,Re?.ownerState),className:Ee.thumb}),qe=useSlotProps({elementType:je,externalSlotProps:ze,ownerState:_extends$3({},pe,ze?.ownerState),className:Ee.valueLabel}),Je=useSlotProps({elementType:Me,externalSlotProps:Be,ownerState:pe,className:Ee.mark}),Ye=useSlotProps({elementType:Ne,externalSlotProps:Ve,ownerState:pe,className:Ee.markLabel}),Xe=useSlotProps({elementType:Pe,getSlotProps:ge,externalSlotProps:He,ownerState:pe});return(0,import_jsx_runtime.jsxs)(De,_extends$3({},Ue,{children:[(0,import_jsx_runtime.jsx)(Oe,_extends$3({},We)),(0,import_jsx_runtime.jsx)(ke,_extends$3({},Ge)),xe.filter(e=>e.value>=J&&e.value<=re).map((e,t)=>{let n=valueToPercent(e.value,J,re),a=me[$].offset(n),o;return o=ue===!1?Se.indexOf(e.value)!==-1:ue===`normal`&&(ye?e.value>=Se[0]&&e.value<=Se[Se.length-1]:e.value<=Se[0])||ue===`inverted`&&(ye?e.value<=Se[0]||e.value>=Se[Se.length-1]:e.value>=Se[0]),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(Me,_extends$3({"data-index":t},Je,!isHostComponent(Me)&&{markActive:o},{style:_extends$3({},a,Je.style),className:clsx$1(Je.className,o&&Ee.markActive)})),e.label==null?null:(0,import_jsx_runtime.jsx)(Ne,_extends$3({"aria-hidden":!0,"data-index":t},Ye,!isHostComponent(Ne)&&{markLabelActive:o},{style:_extends$3({},a,Ye.style),className:clsx$1(Ee.markLabel,Ye.className,o&&Ee.markLabelActive),children:e.label}))]},t)}),Se.map((e,t)=>{let n=valueToPercent(e,J,re),a=me[$].offset(n),o=de===`off`?Forward:je;return(0,import_jsx_runtime.jsx)(o,_extends$3({},!isHostComponent(o)&&{valueLabelFormat:X,valueLabelDisplay:de,value:typeof X==`function`?X(ce(e),t):X,index:t,open:_e===t||Q===t||de===`on`,disabled:te},qe,{children:(0,import_jsx_runtime.jsx)(Ae,_extends$3({"data-index":t},Ke,{className:clsx$1(Ee.thumb,Ke.className,Q===t&&Ee.active,ve===t&&Ee.focusVisible),style:_extends$3({},a,Te(t),Ke.style),children:(0,import_jsx_runtime.jsx)(Pe,_extends$3({"data-index":t,"aria-label":K?K(t):L,"aria-valuenow":ce(e),"aria-labelledby":z,"aria-valuetext":q?q(ce(e),t):R,value:Se[t]},Xe))}))}),t)})]}))}),import_ZoomIn=__toESM(require_ZoomIn()),import_ZoomOut=__toESM(require_ZoomOut()),extendStatics$1=function(e,t){return extendStatics$1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},extendStatics$1(e,t)};function __extends$1(e,t){extendStatics$1(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var __assign$1=function(){return __assign$1=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign$1.apply(this,arguments)};function __rest$1(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}var initialState={wrapperComponent:null,contentComponent:null,previousScale:1,scale:1,positionX:0,positionY:0,options:{disabled:!1,transformEnabled:!0,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,limitToWrapper:!1,centerContent:!0,wrapperClass:``,contentClass:``},wheel:{disabled:!1,step:5,wheelEnabled:!0,touchPadEnabled:!0,limitsOnWheel:!1},pan:{disabled:!1,panAnimationType:`linear`,lockAxisX:!1,lockAxisY:!1,velocity:!0,velocityEqualToMove:!0,velocitySensitivity:2,velocityActiveScale:1,velocityMinSpeed:1,velocityBaseTime:1600,velocityAnimationType:`easeOutQuart`,padding:!0,paddingSize:30,panReturnAnimationTime:400,panReturnAnimationType:`easeOut`,disableOnTarget:[]},pinch:{disabled:!1},zoomIn:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},zoomOut:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},doubleClick:{disabled:!1,step:20,mode:`zoomIn`,animation:!0,animationType:`easeOut`,animationTime:200},reset:{disabled:!1,animation:!0,animationType:`easeOut`,animationTime:200},scalePadding:{disabled:!1,size:.2,animationTime:200,animationType:`easeOut`}},roundNumber=function(e,t){return Number(e.toFixed(t))},checkIsNumber=function(e,t){return typeof e==`number`?e:t},boundLimiter=function(e,t,n,a){return roundNumber(a?e<t?t:e>n?n:e:e,2)},calculateBoundingArea=function(e,t,n,a,o,s,l){var u=e>t?n*(l?1:.5):0,d=a>o?s*(l?1:.5):0;return{minPositionX:e-t-u,maxPositionX:u,minPositionY:a-o-d,maxPositionY:d}},getDistance=function(e,t){return Math.sqrt((e.pageX-t.pageX)**2+(e.pageY-t.pageY)**2)},deleteUndefinedProps=function(e){var t=__assign$1({},e);return Object.keys(t).forEach(function(e){return t[e]===void 0&&delete t[e]}),t},handleCallback=function(e,t){e&&typeof e==`function`&&e(t)},handleWheelStop=function(e,t,n){var a=n.scale,o=n.options,s=o.maxScale,l=o.minScale;return e?a<s||a>l||Math.sign(e.deltaY)!==Math.sign(t.deltaY)||e.deltaY>0&&e.deltaY<t.deltaY||e.deltaY<0&&e.deltaY>t.deltaY||Math.sign(e.deltaY)!==Math.sign(t.deltaY):!1},mergeProps=function(e,t){return Object.keys(e).reduce(function(n,a){return typeof t[a]==`object`&&t[a]!==null?n[a]=__assign$1(__assign$1({},e[a]),t[a]):n[a]=t[a]===void 0?e[a]:t[a],n},{})};function getWindowScaleY(e){return e?window.innerHeight/e.offsetHeight:0}function getWindowScaleX(e){return e?window.innerWidth/e.offsetWidth:0}var easeOut=function(e){return-Math.cos(e*Math.PI)/2+.5},linear=function(e){return e},easeInQuad=function(e){return e*e},easeOutQuad=function(e){return e*(2-e)},easeInOutQuad=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},easeInCubic=function(e){return e*e*e},easeOutCubic=function(e){return--e*e*e+1},easeInOutCubic=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart=function(e){return e*e*e*e},easeOutQuart=function(e){return 1- --e*e*e*e},easeInOutQuart=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint=function(e){return e*e*e*e*e},easeOutQuint=function(e){return 1+--e*e*e*e*e},easeInOutQuint=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},availableAnimations={easeOut,linear,easeInQuad,easeOutQuad,easeInOutQuad,easeInCubic,easeOutCubic,easeInOutCubic,easeInQuart,easeOutQuart,easeInOutQuart,easeInQuint,easeOutQuint,easeInOutQuint};function handleDisableAnimation(){this.mounted&&(this.animation&&cancelAnimationFrame(this.animation),this.animate=!1,this.animation=!1,this.velocity=!1)}function animate(e,t,n){var a=this;if(this.mounted){var o=new Date().getTime(),s=1;handleDisableAnimation.call(this),this.animation=function(){if(!(!a.animation||!a.mounted)){var l=new Date().getTime()-o,u=l/t,d=availableAnimations[e],f=d(u);l>=t?(n(s),a.animation=null):(n(f),requestAnimationFrame(a.animation))}},requestAnimationFrame(this.animation)}}function animateComponent(e){var t=this,n=e.targetState,a=e.speed,o=e.type,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=n.scale-l,m=n.positionX-u,h=n.positionY-d;a===0?(this.stateProvider.previousScale=this.stateProvider.scale,this.stateProvider.scale=n.scale,this.stateProvider.positionX=n.positionX,this.stateProvider.positionY=n.positionY,this.applyTransformation()):animate.call(this,o,a,function(e){t.stateProvider.previousScale=t.stateProvider.scale,t.stateProvider.scale=l+f*e,t.stateProvider.positionX=u+m*e,t.stateProvider.positionY=d+h*e,t.applyTransformation()})}function checkZoomBounds(e,t,n,a,o){var s=t-(o?a:0);return!isNaN(n)&&e>=n?n:!isNaN(t)&&e<=s?s:e}function checkPositionBounds(e,t,n,a,o,s){var l=n.minPositionX,u=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,m=s?o*s.offsetWidth/100:0,h=s?o*s.offsetHeight/100:0;return{x:boundLimiter(e,l-m,d+m,a),y:boundLimiter(t,u-h,f+h,a)}}function getDelta(e,t){return checkIsNumber(t,e?e.deltaY<0?1:-1:0)}function wheelMousePosition(e,t,n){var a=t.getBoundingClientRect(),o=(e.clientX-a.left)/n,s=(e.clientY-a.top)/n;return(isNaN(o)||isNaN(s))&&console.error(`No mouse or touch offset found`),{mouseX:o,mouseY:s}}function getComponentsSizes(e,t,n){var a=e.offsetWidth,o=e.offsetHeight,s=t.offsetWidth,l=t.offsetHeight,u=s*n,d=l*n;return{wrapperWidth:a,wrapperHeight:o,newContentWidth:u,newDiffWidth:a-u,newContentHeight:d,newDiffHeight:o-d}}function handleCalculatePositions(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.options.transformEnabled,m=n-l;return typeof e!=`number`||typeof t!=`number`?console.error(`Mouse X and Y position were not provided!`):f?checkPositionBounds(u-e*m,d-t*m,a,o,0,null):{newPositionX:u,newPositionY:d}}function getClientPosition(e){var t=e.touches;return t&&t.length===1?{clientX:t[0].clientX,clientY:t[0].clientY}:t?null:{clientX:e.clientX,clientY:e.clientY}}function handlePanning(e){var t=this.stateProvider,n=t.scale,a=t.positionX,o=t.positionY,s=t.options,l=s.limitToBounds,u=s.minScale,d=t.pan,f=d.lockAxisX,m=d.lockAxisY,h=d.padding,v=d.paddingSize,y=t.wrapperComponent;if(this.startCoords){var b=this.startCoords,x=b.x,S=b.y,C=getClientPosition(e);if(!C)return console.error(`Cannot find mouse client positions`);var T=C.clientX,E=C.clientY,D=T-x,O=E-S,k=f?a:D,j=m?o:O,M=h&&n>=u?v:0;if(!(k===a&&j===o)){var N=checkPositionBounds(k,j,this.bounds,l,M,y);handlePaddingAnimation.call(this,N.x,N.y)}}}function handlePanningAnimation(){var e=this.stateProvider,t=e.scale,n=e.options.minScale,a=e.pan,o=a.disabled,s=a.padding,l=a.panReturnAnimationTime,u=a.panReturnAnimationType;if(!(o||t<n||!s)){var d=handlePanToBounds.call(this);animateComponent.call(this,{targetState:d,speed:l,type:u})}}function handlePanToBounds(){var e=this.stateProvider,t=e.positionX,n=e.positionY,a=e.scale,o=e.options,s=o.disabled,l=o.limitToBounds,u=o.limitToWrapper,d=this.state.wrapperComponent;if(!s){var f=this.bounds,m=f.maxPositionX,h=f.minPositionX,v=f.maxPositionY,y=f.minPositionY,b=t>m||t<h,x=n>v||n<y,S=t>m?d.offsetWidth:this.stateProvider.minPositionX||0,C=n>v?d.offsetHeight:this.stateProvider.minPositionY||0,T=S,E=C,D=handleCalculatePositions.call(this,T,E,a,this.bounds,l||u),O=D.x,k=D.y;return{scale:a,positionX:b?O:t,positionY:x?k:n}}}function handlePaddingAnimation(e,t){this.stateProvider.pan.padding&&(this.stateProvider.positionX=e,this.stateProvider.positionY=t,this.applyTransformation())}function handleCalculateZoom(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.options,d=u.maxScale,f=u.minScale,m=s.scalePadding,h=m.size,v=m.disabled,y=s.wrapperComponent,b=null;if(o){var x=window.innerWidth*1e-4,S=e<0?30:20;b=l+(t-t*x)*e*(l/S)}else{var C=2-window.innerWidth/y.offsetWidth,x=Math.max(.2,Math.min(.99,C)),S=20;b=l+t*e*((l-l*x)/S)}if(a)return b;var T=!n&&!v;return checkZoomBounds(roundNumber(b,3),f,d,h,T)}function handleCalculateBounds(e,t){var n=this.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=getComponentsSizes(a,o,e),l=s.wrapperWidth,u=s.wrapperHeight,d=s.newContentWidth,f=s.newDiffWidth,m=s.newContentHeight,h=s.newDiffHeight,v=calculateBoundingArea(l,d,f,u,m,h,t);return this.bounds=v,v}function handleWheelZoom(e){var t=this.stateProvider,n=t.scale,a=t.contentComponent,o=t.options.limitToBounds,s=t.scalePadding,l=s.size,u=s.disabled,d=t.wheel,f=d.step,m=d.limitsOnWheel;e.preventDefault(),e.stopPropagation();var h=getDelta(e,null),v=handleCalculateZoom.call(this,h,f,!e.ctrlKey);if(n!==v){var y=handleCalculateBounds.call(this,v,!m),b=wheelMousePosition(e,a,n),x=b.mouseX,S=b.mouseY,C=o&&(u||l===0||m),T=handleCalculatePositions.call(this,x,S,v,y,C),E=T.x,D=T.y;this.bounds=y,this.stateProvider.previousScale=n,this.stateProvider.scale=v,this.stateProvider.positionX=E,this.stateProvider.positionY=D,this.applyTransformation()}}function handleZoomToPoint(e,t,n,a,o){var s=this.stateProvider,l=s.contentComponent,u=s.options,d=u.disabled,f=u.minScale,m=u.maxScale,h=u.limitToBounds,v=u.limitToWrapper;if(!(d||e)){var y=checkZoomBounds(roundNumber(t,2),f,m,null,null),b=handleCalculateBounds.call(this,y,v),x=n,S=a;if(o){var C=wheelMousePosition(o,l,t);x=C.mouseX,S=C.mouseY}var T=handleCalculatePositions.call(this,x,S,y,b,h);return{scale:y,positionX:T.x,positionY:T.y}}}function handlePaddingAnimation$1(){var e=this.stateProvider,t=e.scale,n=e.wrapperComponent,a=e.options,o=a.minScale,s=a.limitToBounds,l=e.scalePadding,u=l.disabled,d=l.animationTime,f=l.animationType,m=u||t>=o;if((t>=1||s)&&handlePanningAnimation.call(this),!m){var h=n.offsetWidth/2,v=n.offsetHeight/2,y=handleZoomToPoint.call(this,!1,o,h,v,null);animateComponent.call(this,{targetState:y,speed:d,type:f})}}function handleDoubleClick(e){e.preventDefault(),e.stopPropagation();var t=this.stateProvider,n=t.contentComponent,a=t.scale,o=t.doubleClick,s=o.disabled,l=o.mode,u=o.step,d=o.animationTime,f=o.animationType;if(l===`reset`)return resetTransformations.call(this,e,d);var m=l===`zoomOut`?-1:1,h=handleCalculateZoom.call(this,m,u,void 0,void 0,!0),v=wheelMousePosition(e,n,a),y=v.mouseX,b=v.mouseY,x=handleZoomToPoint.call(this,s,h,y,b);if(x.scale!==a){var S=getButtonAnimationTime(handleCalculateZoom.call(this,m,u,!0,void 0,!0),h,d);animateComponent.call(this,{targetState:x,speed:S,type:f})}}function handleZoomControls(e,t){var n=this.stateProvider,a=n.scale,o=n.positionX,s=n.positionY,l=n.wrapperComponent,u=n.zoomIn,d=n.zoomOut,f=l.offsetWidth,m=l.offsetHeight,h=(f/2-o)/a,v=(m/2-s)/a,y=handleCalculateZoom.call(this,e,t,void 0,void 0,!0),b=y>a,x=b?u.animationTime:d.animationTime,S=b?u.animationType:d.animationType,C=b?u.disabled:d.disabled,T=handleZoomToPoint.call(this,C,y,h,v);if(T.scale!==a){var E=getButtonAnimationTime(handleCalculateZoom.call(this,e,t,!0,void 0,!0),y,x);animateComponent.call(this,{targetState:T,speed:E,type:S})}}function resetTransformations(e){var t=this.props.defaultValues,n=t.defaultScale,a=t.defaultPositionX,o=t.defaultPositionY,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.reset,m=s.options,h=m.disabled,v=m.limitToBounds,y=m.centerContent,b=m.limitToWrapper;if(!(h||f.disabled)&&!(l===n&&u===a&&d===o)){var x=typeof e==`number`?e:f.animationTime,S=checkIsNumber(n,initialState.scale),C=checkIsNumber(a,initialState.positionX),T=checkIsNumber(o,initialState.positionY);if(v&&!b||y){var E=handleCalculateBounds.call(this,S,b);C=E.minPositionX,T=E.minPositionY}var D={scale:S,positionX:C,positionY:T};animateComponent.call(this,{targetState:D,speed:x,type:f.animationType})}}function getButtonAnimationTime(e,t,n){return t/e*n}function round(e,t){var n=10**t;return Math.round(e*n)/n}function getCurrentDistance(e){return getDistance(e.touches[0],e.touches[1])}function checkIfInfinite(e){return e===1/0||e===-1/0}function calculatePinchZoom(e,t){var n=this.stateProvider,a=n.options,o=a.minScale,s=a.maxScale,l=n.scalePadding,u=l.size,d=l.disabled;if(typeof t!=`number`||typeof e!=`number`)return console.error(`Pinch touches distance was not provided`);if(!(e<0))return checkZoomBounds(roundNumber(e/t*this.pinchStartScale,2),o,s,u,!d)}function calculateMidpoint(e,t,n){var a=n.getBoundingClientRect(),o=e.touches,s=round(o[0].clientX-a.left,5),l=round(o[0].clientY-a.top,5),u=round(o[1].clientX-a.left,5),d=round(o[1].clientY-a.top,5);return{mouseX:(s+u)/2/t,mouseY:(l+d)/2/t}}function handleZoomPinch(e){var t=this.stateProvider,n=t.scale,a=t.options,o=a.limitToBounds,s=a.limitToWrapper,l=t.scalePadding,u=l.disabled,d=l.size,f=t.wheel.limitsOnWheel,m=t.pinch,h=this.state.contentComponent;if(!(m.disabled||this.stateProvider.options.disabled)&&(e.cancelable&&(e.preventDefault(),e.stopPropagation()),this.pinchStartDistance!==null)){var v=calculateMidpoint(e,n,h),y=v.mouseX,b=v.mouseY;if(!(checkIfInfinite(y)||checkIfInfinite(b))){var x=getCurrentDistance(e),S=calculatePinchZoom.call(this,x,this.pinchStartDistance);if(!(checkIfInfinite(S)||S===n)){var C=handleCalculateBounds.call(this,S,s),T=o&&(u||d===0||f),E=handleCalculatePositions.call(this,y,b,S,C,T),D=E.x,O=E.y;this.lastDistance=x,this.stateProvider.positionX=D,this.stateProvider.positionY=O,this.stateProvider.scale=S,this.stateProvider.previousScale=n,this.applyTransformation()}}}}var throttleTime=30;function velocityTimeSpeed(e,t){return this.stateProvider.pan.velocityEqualToMove?t-t/Math.max(1,e):t}function handleEnableVelocity(){this.setState({startAnimation:!1})}function handleFireVelocity(){this.setState({startAnimation:!0})}function animateVelocity(){var e=this,t=this.stateProvider,n=t.positionX,a=t.positionY,o=t.options.limitToBounds,s=t.pan,l=s.velocityBaseTime,u=s.lockAxisX,d=s.lockAxisY,f=s.velocityAnimationType,m=s.panReturnAnimationTime,h=s.panReturnAnimationType,v=s.padding,y=s.paddingSize,b=t.wrapperComponent;if(this.mounted){if(!this.velocity||!this.bounds)return handleDisableAnimation.call(this);var x=this.bounds,S=x.maxPositionX,C=x.minPositionX,T=x.maxPositionY,E=x.minPositionY,D=this.velocity,O=D.velocityX,k=D.velocityY,j=D.velocity,M=velocityTimeSpeed.call(this,j,l);if(!M){handlePanningAnimation.call(this);return}var N=O,F=k,I=M>m?M:m,L=v?y:0,R=b?L*b.offsetWidth/100:0,z=b?L*b.offsetHeight/100:0,B=S+R,V=C-R,H=T+z,U=E-z,W=checkPositionBounds(n,a,this.bounds,o,L,b),G=new Date().getTime();animate.call(this,f,I,function(t){var s=new Date().getTime()-G,l=s/m,f=availableAnimations[h],v=f(l);(s>m||v>1||v===1/0||v===-1/0)&&(v=1);var y=getPosition(u,N,t,v,C,S,o,n,W.x,V,B),b=getPosition(d,F,t,v,E,T,o,a,W.y,U,H);(n!==y||a!==b)&&(e.stateProvider.positionX=y,e.stateProvider.positionY=b,e.applyTransformation())})}}function calculateVelocityStart(e){var t=this,n=this.stateProvider,a=n.scale,o=n.options.disabled,s=n.pan,l=s.velocity,u=s.velocitySensitivity,d=s.velocityActiveScale,f=s.velocityMinSpeed,m=n.wrapperComponent;if(!(!l||d>=a||o)){handleEnableVelocity.call(this);var h=Date.now();if(this.lastMousePosition){var v=getClientPosition(e);if(!v)return console.error(`No mouse or touch position detected`);var y=v.clientX,b=v.clientY,x=y-this.lastMousePosition.clientX,S=b-this.lastMousePosition.clientY,C=h-this.velocityTime,T=2-m.offsetWidth/window.innerWidth,E=2-m.offsetHeight/window.innerHeight,D=20*Math.max(f,Math.min(2,T)),O=20*Math.max(f,Math.min(2,E)),k=x/C*u*a*D,j=S/C*u*a*O,M=x*x+S*S,N=Math.sqrt(M)/C*u;if(this.velocity&&N<this.velocity.velocity&&this.throttle)return;this.velocity={velocityX:k,velocityY:j,velocity:N},this.throttle&&clearTimeout(this.throttle),this.throttle=setTimeout(function(){t.mounted&&(t.throttle=!1)},throttleTime)}var F=getClientPosition(e);this.lastMousePosition=F,this.velocityTime=h}}function getPosition(e,t,n,a,o,s,l,u,d,f,m){if(l){if(d>o&&u>s){var h=d-(d-s)*a;return h>m?m:h<s?s:h}if(d<o&&u<o){var h=d-(d-o)*a;return h<f?f:h>o?o:h}}return e?d:boundLimiter(u+t*n,o,s,l)}function makePassiveEventOption(e){return e}var propsList=`previousScale.scale.positionX.positionY.defaultPositionX.defaultPositionY.defaultScale.onWheelStart.onWheel.onWheelStop.onPanningStart.onPanning.onPanningStop.onPinchingStart.onPinching.onPinchingStop.onZoomChange.options.wheel.scalePadding.pan.pinch.zoomIn.zoomOut.doubleClick.reset`.split(`.`),getValidPropsFromObject=function(e){return Object.keys(e).reduce(function(t,n){return propsList.includes(n)&&(t[n]=e[n]),t},{})},Context=import_react$24.createContext({}),wheelStopEventTimer=null,wheelStopEventTime=180,wheelAnimationTimer=null,wheelAnimationTime=100,StateProvider=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.mounted=!0,t.state={wrapperComponent:void 0,contentComponent:void 0},t.stateProvider=__assign$1(__assign$1(__assign$1(__assign$1({},initialState),mergeProps(initialState,t.props.dynamicValues)),t.props.defaultValues),{previousScale:t.props.dynamicValues.scale||t.props.defaultValues.scale||initialState.scale}),t.windowToWrapperScaleX=0,t.windowToWrapperScaleY=0,t.startCoords=null,t.isDown=!1,t.pinchStartDistance=null,t.lastDistance=null,t.pinchStartScale=null,t.distance=null,t.bounds=null,t.velocityTime=null,t.lastMousePosition=null,t.velocity=null,t.offsetX=null,t.offsetY=null,t.throttle=!1,t.previousWheelEvent=null,t.lastScale=null,t.animate=null,t.animation=null,t.maxBounds=null,t.handleWheel=function(e){var n=t.stateProvider,a=n.scale,o=n.wheel,s=o.disabled,l=o.wheelEnabled,u=o.touchPadEnabled,d=t.props,f=d.onWheelStart,m=d.onWheel,h=d.onWheelStop,v=t.state,y=v.wrapperComponent,b=v.contentComponent;t.isDown||s||t.stateProvider.options.disabled||!y||!b||!l&&!e.ctrlKey||!u&&e.ctrlKey||(wheelStopEventTimer||(t.lastScale=a,handleDisableAnimation.call(t),handleCallback(f,t.getCallbackProps())),handleWheelZoom.call(t,e),handleCallback(m,t.getCallbackProps()),t.applyTransformation(null,null,null),t.previousWheelEvent=e,handleWheelStop(t.previousWheelEvent,e,t.stateProvider)&&(clearTimeout(wheelStopEventTimer),wheelStopEventTimer=setTimeout(function(){t.mounted&&(handleCallback(h,t.getCallbackProps()),wheelStopEventTimer=null)},wheelStopEventTime)),t.animate=!1,t.lastScale=t.stateProvider.scale,clearTimeout(wheelAnimationTimer),wheelAnimationTimer=setTimeout(function(){t.mounted&&handlePaddingAnimation$1.call(t,e)},wheelAnimationTime))},t.checkPanningTarget=function(e){var n=t.stateProvider.pan.disableOnTarget;return n.map(function(e){return e.toUpperCase()}).includes(e.target.tagName)||n.find(function(t){return e.target.classList.value.includes(t)})},t.checkIsPanningActive=function(e){var n=t.stateProvider.pan.disabled,a=t.state,o=a.wrapperComponent,s=a.contentComponent;return!t.isDown||n||t.stateProvider.options.disabled||e.touches&&(e.touches.length!==1||Math.abs(t.startCoords.x-e.touches[0].clientX)<1||Math.abs(t.startCoords.y-e.touches[0].clientY)<1)||!o||!s},t.handleSetUpPanning=function(e,n){var a=t.stateProvider,o=a.positionX,s=a.positionY;t.isDown=!0,t.startCoords={x:e-o,y:n-s},handleCallback(t.props.onPanningStart,t.getCallbackProps())},t.handleStartPanning=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.scale,s=n.options,l=s.minScale,u=s.maxScale,d=s.limitToWrapper,f=n.pan.disabled,m=e.target,h=e.touches;f||t.stateProvider.options.disabled||a&&!a.contains(m)||t.checkPanningTarget(e)||o<l||o>u||(handleDisableAnimation.call(t),t.bounds=handleCalculateBounds.call(t,o,d),h&&h.length===1&&t.handleSetUpPanning(h[0].clientX,h[0].clientY),h||t.handleSetUpPanning(e.clientX,e.clientY))},t.handlePanning=function(e){t.isDown&&e.preventDefault(),!t.checkIsPanningActive(e)&&(e.stopPropagation(),calculateVelocityStart.call(t,e),handlePanning.call(t,e),handleCallback(t.props.onPanning,t.getCallbackProps()))},t.handleStopPanning=function(){if(t.isDown){t.isDown=!1,t.animate=!1,t.animation=!1,handleFireVelocity.call(t),handleCallback(t.props.onPanningStop,t.getCallbackProps());var e=t.stateProvider,n=e.pan.velocity,a=e.scale;t.velocity&&n&&a>1?animateVelocity.call(t):handlePanningAnimation.call(t)}},t.handlePinchStart=function(e){var n=t.stateProvider.scale;e.preventDefault(),e.stopPropagation(),handleDisableAnimation.call(t);var a=getDistance(e.touches[0],e.touches[1]);t.pinchStartDistance=a,t.lastDistance=a,t.pinchStartScale=n,t.isDown=!1,handleCallback(t.props.onPinchingStart,t.getCallbackProps())},t.handlePinch=function(e){t.isDown=!1,handleZoomPinch.call(t,e),handleCallback(t.props.onPinching,t.getCallbackProps())},t.handlePinchStop=function(){typeof t.pinchStartScale==`number`&&(t.isDown=!1,t.velocity=null,t.lastDistance=null,t.pinchStartScale=null,t.pinchStartDistance=null,handlePaddingAnimation$1.call(t),handleCallback(t.props.onPinchingStop,t.getCallbackProps()))},t.handleTouchStart=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=n.scale,l=n.options,u=l.disabled,d=l.minScale,f=e.touches;if(!(u||!a||!o||s<d)){if(handleDisableAnimation.call(t),f&&f.length===1)return t.handleStartPanning(e);if(f&&f.length===2)return t.handlePinchStart(e)}},t.handleTouch=function(e){var n=t.stateProvider,a=n.pan,o=n.pinch;if(!n.options.disabled){if(!a.disabled&&e.touches.length===1)return t.handlePanning(e);if(!o.disabled&&e.touches.length===2)return t.handlePinch(e)}},t.handleTouchStop=function(){t.handleStopPanning(),t.handlePinchStop()},t.zoomIn=function(e){var n=t.stateProvider,a=n.zoomIn,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom in function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,1,s)},t.zoomOut=function(e){var n=t.stateProvider,a=n.zoomOut,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom out function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,-1,s)},t.handleDbClick=function(e){var n=t.stateProvider,a=n.options,o=n.doubleClick,s=o.disabled,l=o.step,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Double click function requires event prop`);s||a.disabled||!d||!f||handleDoubleClick.call(t,e,1,l)},t.setScale=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options.disabled,f=t.state,m=f.wrapperComponent,h=f.contentComponent;if(!(d||!m||!h)){var v={positionX:s,positionY:l,scale:isNaN(e)?u:e};animateComponent.call(t,{targetState:v,speed:n,type:a})}},t.setPositionX=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:isNaN(e)?s:e,positionY:l,scale:u};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setPositionY=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.scale,u=o.positionY,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:s,positionY:isNaN(e)?u:e,scale:l};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setTransform=function(e,n,a,o,s){o===void 0&&(o=200),s===void 0&&(s=`easeOut`);var l=t.stateProvider,u=l.positionX,d=l.positionY,f=l.scale,m=l.options,h=m.disabled,v=m.transformEnabled,y=t.state,b=y.wrapperComponent,x=y.contentComponent;if(!(h||!v||!b||!x)){var S={positionX:isNaN(e)?u:e,positionY:isNaN(n)?d:n,scale:isNaN(a)?f:a};animateComponent.call(t,{targetState:S,speed:o,type:s})}},t.resetTransform=function(){var e=t.stateProvider.options,n=e.disabled,a=e.transformEnabled;n||!a||resetTransformations.call(t)},t.setDefaultState=function(){t.animation=null,t.stateProvider=__assign$1(__assign$1(__assign$1({},t.stateProvider),{scale:initialState.scale,positionX:initialState.positionX,positionY:initialState.positionY}),t.props.defaultValues),t.forceUpdate()},t.setWrapperComponent=function(e){t.setState({wrapperComponent:e})},t.setContentComponent=function(e){t.setState({contentComponent:e},function(){var n=t.stateProvider,a=n.wrapperComponent,o=n.options,s=o.centerContent,l=o.limitToBounds,u=o.limitToWrapper,d=n.scale,f=t.props.defaultValues,m=f.positionX,h=f.positionY;if(l&&!u||s&&!m&&!h){var v=`translate(25%, 25%) scale(`+d+`)`;e.style.transform=v,e.style.WebkitTransform=v,t.forceUpdate();var y=new Date().getTime(),b=2e3,x=setInterval(function(){if(a.offsetWidth){var e=handleCalculateBounds.call(t,d,!1);t.stateProvider.positionX=e.minPositionX,t.stateProvider.positionY=e.minPositionY,t.applyTransformation(null,null,null),clearInterval(x),x=null}else new Date().getTime()-y>b&&(clearInterval(x),x=null)},20)}else t.applyTransformation(null,null,null)})},t.applyTransformation=function(e,n,a){if(t.mounted){var o=t.state.contentComponent,s=t.props.onZoomChange,l=t.stateProvider,u=l.previousScale,d=l.scale,f=l.positionX,m=l.positionY;if(!o)return console.error(`There is no content component`);var h=`translate(`+(n||f)+`px, `+(a||m)+`px) scale(`+(e||d)+`)`;o.style.transform=h,o.style.WebkitTransform=h,t.forceUpdate(),s&&u!==d&&handleCallback(s,t.getCallbackProps())}},t.getCallbackProps=function(){return getValidPropsFromObject(t.stateProvider)},t}return t.prototype.componentDidMount=function(){var e=makePassiveEventOption(!1);window.addEventListener(`mousedown`,this.handleStartPanning,e),window.addEventListener(`mousemove`,this.handlePanning,e),window.addEventListener(`mouseup`,this.handleStopPanning,e)},t.prototype.componentWillUnmount=function(){var e=makePassiveEventOption(!1);window.removeEventListener(`mousedown`,this.handleStartPanning,e),window.removeEventListener(`mousemove`,this.handlePanning,e),window.removeEventListener(`mouseup`,this.handleStopPanning,e),handleDisableAnimation.call(this)},t.prototype.componentDidUpdate=function(e,t){var n=this.state,a=n.wrapperComponent,o=n.contentComponent,s=this.props.dynamicValues;if(!t.contentComponent&&o&&(this.stateProvider.contentComponent=o),!t.wrapperComponent&&a&&a!==void 0){this.stateProvider.wrapperComponent=a,this.windowToWrapperScaleX=getWindowScaleX(a),this.windowToWrapperScaleY=getWindowScaleY(a);var l=makePassiveEventOption(!1);a.addEventListener(`wheel`,this.handleWheel,l),a.addEventListener(`dblclick`,this.handleDbClick,l),a.addEventListener(`touchstart`,this.handleTouchStart,l),a.addEventListener(`touchmove`,this.handleTouch,l),a.addEventListener(`touchend`,this.handleTouchStop,l)}(a&&o||e.dynamicValues!==s)&&(this.maxBounds=handleCalculateBounds.call(this,this.stateProvider.scale,this.stateProvider.options.limitToWrapper)),e.dynamicValues&&e.dynamicValues!==s&&(this.animation=null,this.stateProvider=__assign$1(__assign$1({},this.stateProvider),mergeProps(this.stateProvider,s)),this.applyTransformation(null,null,null))},t.prototype.render=function(){var e=this.state,t=e.wrapperComponent,n=e.contentComponent,a={loaded:!!(t&&n),state:this.getCallbackProps(),dispatch:{setScale:this.setScale,setPositionX:this.setPositionX,setPositionY:this.setPositionY,zoomIn:this.zoomIn,zoomOut:this.zoomOut,setTransform:this.setTransform,resetTransform:this.resetTransform,setDefaultState:this.setDefaultState},nodes:{setWrapperComponent:this.setWrapperComponent,setContentComponent:this.setContentComponent}},o=this.props.children,s=typeof o==`function`?o(__assign$1(__assign$1({},a.state),a.dispatch)):o;return import_react$24.createElement(Context.Provider,{value:a},s)},t}(import_react$24.Component),TransformWrapper=function(e){var t=e.children,n=e.defaultPositionX,a=e.defaultPositionY,o=e.defaultScale,s=e.onWheelStart,l=e.onWheel,u=e.onWheelStop,d=e.onPanningStart,f=e.onPanning,m=e.onPanningStop,h=e.onPinchingStart,v=e.onPinching,y=e.onPinchingStop,b=e.onZoomChange,x=__rest$1(e,[`children`,`defaultPositionX`,`defaultPositionY`,`defaultScale`,`onWheelStart`,`onWheel`,`onWheelStop`,`onPanningStart`,`onPanning`,`onPanningStop`,`onPinchingStart`,`onPinching`,`onPinchingStop`,`onZoomChange`]),S=__assign$1({},x);return S.options&&S.options.limitToWrapper&&(S.options.limitToBounds=!0),import_react$24.createElement(StateProvider,{defaultValues:deleteUndefinedProps({positionX:n,positionY:a,scale:o}),dynamicValues:deleteUndefinedProps(getValidPropsFromObject(S)),onWheelStart:s,onWheel:l,onWheelStop:u,onPanningStart:d,onPanning:f,onPanningStop:m,onPinchingStart:h,onPinching:v,onPinchingStop:y,onZoomChange:b},t)};function styleInject(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document>`u`)){var a=document.head||document.getElementsByTagName(`head`)[0],o=document.createElement(`style`);o.type=`text/css`,n===`top`&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var css=`.TransformComponent-module_container__3NwNd {
|
|
729
|
+
`,circularDashKeyframe)),CircularProgress=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCircularProgress`}),{className:a,color:o=`primary`,disableShrink:s=!1,size:l=40,style:u,thickness:d=3.6,value:f=0,variant:m=`indeterminate`}=n,h=_objectWithoutPropertiesLoose$3(n,_excluded$2),v=_extends$3({},n,{color:o,disableShrink:s,size:l,thickness:d,value:f,variant:m}),y=useUtilityClasses$2(v),b={},x={},S={};if(m===`determinate`){let e=2*Math.PI*((SIZE-d)/2);b.strokeDasharray=e.toFixed(3),S[`aria-valuenow`]=Math.round(f),b.strokeDashoffset=`${((100-f)/100*e).toFixed(3)}px`,x.transform=`rotate(-90deg)`}return(0,import_jsx_runtime.jsx)(CircularProgressRoot,_extends$3({className:clsx$1(y.root,a),style:_extends$3({width:l,height:l},x,u),ownerState:v,ref:t,role:`progressbar`},S,h,{children:(0,import_jsx_runtime.jsx)(CircularProgressSVG,{className:y.svg,ownerState:v,viewBox:`${SIZE/2} ${SIZE/2} ${SIZE} ${SIZE}`,children:(0,import_jsx_runtime.jsx)(CircularProgressCircle,{className:y.circle,style:b,ownerState:v,cx:SIZE,cy:SIZE,r:(SIZE-d)/2,fill:`none`,strokeWidth:d})})}))});function DayAndProgressContainer({dayCount:e,experience:t,itemsSold:n}){let a=levelAchieved(t),o=scaleNumber(t,experienceNeededForLevel(a),experienceNeededForLevel(a+1),0,100),s=experienceNeededForLevel(a+1)-t,l=a+1;return(0,import_jsx_runtime.jsxs)(`h2`,{className:`day-and-progress-container`,children:[(0,import_jsx_runtime.jsxs)(`span`,{children:[`Day `,integerString(e),`, level:`]}),(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:EXPERIENCE_GAUGE_TOOLTIP_LABEL`${s}${l}`,children:(0,import_jsx_runtime.jsxs)(Box,{children:[(0,import_jsx_runtime.jsx)(CircularProgress,{value:o,variant:`determinate`}),(0,import_jsx_runtime.jsx)(`span`,{className:`current-level`,children:integerString(a)})]})})]})}DayAndProgressContainer.propTypes={dayCount:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,itemsSold:import_prop_types$1.object.isRequired};function Consumer$15(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(DayAndProgressContainer,{...t,...n,...e})})}var FarmNameDisplay=({farmName:e,handleFarmNameUpdate:t})=>{let[n,a]=(0,import_react$24.useState)(e);return(0,import_react$24.useEffect)(()=>{a(e)},[e,a]),(0,import_jsx_runtime.jsxs)(`h2`,{className:`farm-name`,children:[(0,import_jsx_runtime.jsx)(TextField,{variant:`standard`,inputProps:{maxLength:12},onChange:({target:{value:e}})=>{a(e)},onBlur:({target:{value:e}})=>{t(e)},placeholder:`Farm Name`,value:n}),` `,`Farm`]})},OnlineControls=({activePlayers:e,handleActivePlayerButtonClick:t,handleChatRoomOpenStateChange:n,handleOnlineToggleChange:a,handleRoomChange:o,isChatAvailable:s,isOnline:l,room:u})=>{let[d,f]=(0,import_react$24.useState)(u);(0,import_react$24.useEffect)(()=>{f(u)},[u,f]);let m=()=>{n(!0)},h=()=>{o(d)},v=e=>{h(),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(FormControl,{variant:`standard`,className:`online-control-container`,component:`fieldset`,children:[(0,import_jsx_runtime.jsx)(FormGroup,{className:`toggle-container`,children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:l,onChange:(e,t)=>{v(t)},name:`play-online`}),label:`Play online`})}),(0,import_jsx_runtime.jsx)(TextField,{className:`room-name`,inputProps:{maxLength:25},label:`Room name`,onChange:({target:{value:e}})=>{f(e)},onKeyUp:({key:e})=>{e===`Enter`&&h()},value:d,variant:`outlined`})]}),e&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(Button,{color:`primary`,onClick:t,variant:`contained`,children:[`Connected players: `,integerString(e)]}),s?(0,import_jsx_runtime.jsx)(Button,{variant:`contained`,color:`primary`,onClick:m,children:`Open chat`}):(0,import_jsx_runtime.jsxs)(Typography,{className:`chat-placeholder`,children:[`Chat is available for online rooms other than "`,`global`,`"`]})]})]})},{FARMERS_LOG,PRICE_EVENTS,STATS,ACHIEVEMENTS,ACCOUNTING,SETTINGS,ONLINE_PEERS,KEYBINDINGS}=dialogView,dialogTriggerTextMap={[FARMERS_LOG]:`Open Farmer's Log (l)`,[PRICE_EVENTS]:`See Price Events (e)`,[STATS]:`View your stats (s)`,[ACHIEVEMENTS]:`View Achievements (a)`,[ACCOUNTING]:`View Bank Account (b)`,[SETTINGS]:`View Settings (comma)`},dialogTitleMap={[FARMERS_LOG]:`Farmer's Log`,[PRICE_EVENTS]:`Price Events`,[STATS]:`Farm Stats`,[ACHIEVEMENTS]:`Achievements`,[ACCOUNTING]:`Bank Account`,[SETTINGS]:`Settings`,[ONLINE_PEERS]:`Active Players`,[KEYBINDINGS]:`Keyboard Shortcuts`},dialogContentMap={[FARMERS_LOG]:(0,import_jsx_runtime.jsx)(Consumer$20,{}),[PRICE_EVENTS]:(0,import_jsx_runtime.jsx)(Consumer$18,{}),[STATS]:(0,import_jsx_runtime.jsx)(Consumer$16,{}),[ACHIEVEMENTS]:(0,import_jsx_runtime.jsx)(Consumer$21,{}),[ACCOUNTING]:(0,import_jsx_runtime.jsx)(Consumer$23,{}),[SETTINGS]:(0,import_jsx_runtime.jsx)(Consumer$17,{}),[ONLINE_PEERS]:(0,import_jsx_runtime.jsx)(Consumer$19,{}),[KEYBINDINGS]:(0,import_jsx_runtime.jsx)(KeybindingsView,{})},Navigation=({activePlayers:e,blockInput:t,currentDialogView:n,farmName:a,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleClickDialogViewButton:l,handleCloseDialogView:u,handleDialogViewExited:d,handleFarmNameUpdate:f,handleOnlineToggleChange:m,handleRoomChange:h,handleViewChange:v,inventory:y,inventoryLimit:b,isChatAvailable:x,isDialogViewOpen:S,isOnline:C,room:T,stageFocus:E,viewList:D,currentDialogViewLowerCase:O=(n||``).toLowerCase(),modalTitleId:k=`${O}-modal-title`,modalContentId:j=`${O}-modal-content`})=>(0,import_jsx_runtime.jsxs)(Header,{className:`Navigation`,sx:{flexDirection:`column`,flexShrink:0,display:`flex`,"& .version":{fontFamily:`"Francois One", sans-serif`,textAlign:`center`},"& .farm-name":{lineHeight:`1.3em`,margin:`0.25em 0`,"& .MuiInput-root":{background:`none`,margin:0,"& input":{fontFamily:`"Francois One"`,paddingLeft:`0.5em`,paddingRight:`0.5em`,textAlign:`center`}}},"& .online-control-container":{alignItems:`center`,display:`flex`,flexDirection:`row`,margin:`1em 0`,"& .toggle-container":{minWidth:`155px`}},"& .button-array":{marginLeft:`3em`,marginRight:`3em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`2em`,marginRight:`2em`}},"& .current-level":{alignItems:`center`,bottom:0,display:`flex`,justifyContent:`center`,left:0,position:`absolute`,right:0,top:0,userSelect:`none`},"& h1":{fontSize:`3em`,fontWeight:`bold`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{fontSize:`2.5em`}},"& button":{fontSize:`1.3em`,margin:`0.3em`,minWidth:`56px`},"& h1, & h2, & h3":{textAlign:`center`},"& .day-and-progress-container":{alignItems:`center`,display:`flex`,fontSize:`1.5em`,margin:`0.5em auto`,"& .MuiBox-root":{display:`inline-flex`,marginLeft:`0.5em`,position:`relative`}},"& .inventory-info":{fontSize:`1em`},"& .MuiSelect-select":{padding:`1em`},"& .chat-placeholder":{fontSize:`0.75em`,padding:`0.5em 0`,textAlign:`center`}},children:[(0,import_jsx_runtime.jsx)(`h1`,{children:`Farmhand`}),(0,import_jsx_runtime.jsxs)(`p`,{className:`version`,children:[`v`,`1.22.0`]}),(0,import_jsx_runtime.jsx)(FarmNameDisplay,{farmName:a,handleFarmNameUpdate:f}),(0,import_jsx_runtime.jsx)(Consumer$15,{}),(0,import_jsx_runtime.jsx)(OnlineControls,{activePlayers:e,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleOnlineToggleChange:m,handleRoomChange:h,isChatAvailable:x,isOnline:C,room:T}),b>-1&&(0,import_jsx_runtime.jsxs)(H3,{className:(0,import_classnames.default)(`inventory-info`,{"is-inventory-full":!doesInventorySpaceRemain({inventory:y,inventoryLimit:b})}),sx:{color:doesInventorySpaceRemain({inventory:y,inventoryLimit:b})?void 0:colors.error},children:[`Inventory: `,integerString(inventorySpaceConsumed(y)),` /`,` `,integerString(b)]}),(0,import_jsx_runtime.jsx)(Select,{variant:`standard`,className:`view-select`,onChange:v,value:E,children:D.map((e,t)=>(0,import_jsx_runtime.jsxs)(MenuItem,{key:e,value:e,children:[t+1,`: `,STAGE_TITLE_MAP[e]]}))}),(0,import_jsx_runtime.jsx)(`div`,{className:`button-array`,children:[{dialogView:FARMERS_LOG,Icon:import_Book.default},{dialogView:PRICE_EVENTS,Icon:import_FlashOn.default},{dialogView:STATS,Icon:import_Assessment.default},{dialogView:ACHIEVEMENTS,Icon:import_Beenhere.default},{dialogView:ACCOUNTING,Icon:import_AccountBalance.default},{dialogView:SETTINGS,Icon:import_Settings.default}].map(({dialogView:e,Icon:t})=>(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,key:e,placement:`top`,title:dialogTriggerTextMap[e],children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":dialogTriggerTextMap[e],color:`primary`,onClick:()=>l(e),children:(0,import_jsx_runtime.jsx)(t,{})})}))}),(0,import_jsx_runtime.jsxs)(Dialog,{className:(0,import_classnames.default)(`Farmhand`,{"block-input":t}),fullWidth:!0,maxWidth:`xs`,onClose:u,open:S,TransitionProps:{onExited:d},"aria-describedby":k,"aria-labelledby":j,children:[(0,import_jsx_runtime.jsx)(DialogTitle,{id:k,children:n?dialogTitleMap[n]:``}),(0,import_jsx_runtime.jsx)(DialogContent,{id:j,children:n?dialogContentMap[n]:null}),(0,import_jsx_runtime.jsx)(DialogActions,{children:(0,import_jsx_runtime.jsx)(Button,{onClick:u,color:`primary`,autoFocus:!0,children:`Close`})})]})]});Navigation.propTypes={activePlayers:import_prop_types$1.number,blockInput:import_prop_types$1.bool.isRequired,farmName:import_prop_types$1.string.isRequired,handleClickDialogViewButton:import_prop_types$1.func.isRequired,handleChatRoomOpenStateChange:import_prop_types$1.func.isRequired,handleActivePlayerButtonClick:import_prop_types$1.func.isRequired,handleCloseDialogView:import_prop_types$1.func.isRequired,handleDialogViewExited:import_prop_types$1.func.isRequired,handleFarmNameUpdate:import_prop_types$1.func.isRequired,handleOnlineToggleChange:import_prop_types$1.func.isRequired,handleRoomChange:import_prop_types$1.func.isRequired,handleViewChange:import_prop_types$1.func.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isChatAvailable:import_prop_types$1.bool.isRequired,isDialogViewOpen:import_prop_types$1.bool.isRequired,isOnline:import_prop_types$1.bool.isRequired,stageFocus:import_prop_types$1.string.isRequired,viewList:import_prop_types$1.array.isRequired};function Consumer$14(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Navigation,{...t,...n,...e})})}var getNotificationKey=({message:e,severity:t})=>`${t}:${e}`,snackbarProviderContentCallback=(e,{message:t,onClick:n,severity:a})=>(0,import_jsx_runtime.jsx)(Alert,{elevation:3,key:e,onClick:n,severity:a,style:{cursor:n?`pointer`:`default`},children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{source:t})}),NotificationSystem=({enqueueSnackbar:e,latestNotification:t})=>((0,import_react$24.useEffect)(()=>{t&&e(t,{key:getNotificationKey(t),autoHideDuration:NOTIFICATION_DURATION,preventDuplicate:!0})},[e,t]),null);NotificationSystem.propTypes={latestNotification:(0,import_prop_types$1.shape)({message:import_prop_types$1.string.isRequired,onClick:import_prop_types$1.func,severity:import_prop_types$1.string.isRequired})};var NotificationSystem_default=withSnackbar(function(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(NotificationSystem,{...t,...n,...e})})}),require_ZoomIn=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)([(0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14`},`0`),(0,a.jsx)(`path`,{d:`M12 10h-2v2H9v-2H7V9h2V7h1v2h2z`},`1`)],`ZoomIn`)})),require_ZoomOut=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z`}),`ZoomOut`)}));function areArraysEqual(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,a)=>n(e,t[a]))}init_extends(),init_esm(),init_extractEventHandlers();var INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(e,t){return e-t}function findClosest(e,t){var n;let{index:a}=e.reduce((e,n,a)=>{let o=Math.abs(t-n);return e===null||o<e.distance||o===e.distance?{distance:o,index:a}:e},null)??{};return a}function trackFinger(e,t){if(t.current!==void 0&&e.changedTouches){let n=e;for(let e=0;e<n.changedTouches.length;e+=1){let a=n.changedTouches[e];if(a.identifier===t.current)return{x:a.clientX,y:a.clientY}}return!1}return{x:e.clientX,y:e.clientY}}function valueToPercent(e,t,n){return(e-t)*100/(n-t)}function percentToValue(e,t,n){return(n-t)*e+t}function getDecimalPrecision(e){if(Math.abs(e)<1){let t=e.toExponential().split(`e-`),n=t[0].split(`.`)[1];return(n?n.length:0)+parseInt(t[1],10)}let t=e.toString().split(`.`)[1];return t?t.length:0}function roundValueToStep(e,t,n){let a=Math.round((e-n)/t)*t+n;return Number(a.toFixed(getDecimalPrecision(t)))}function setValueIndex({values:e,newValue:t,index:n}){let a=e.slice();return a[n]=t,a.sort(asc)}function focusThumb({sliderRef:e,activeIndex:t,setActive:n}){var a,o;let s=ownerDocument(e.current);if(!((a=e.current)!=null&&a.contains(s.activeElement))||Number(s==null||(o=s.activeElement)==null?void 0:o.getAttribute(`data-index`))!==t){var l;(l=e.current)==null||l.querySelector(`[type="range"][data-index="${t}"]`).focus()}n&&n(t)}function areValuesEqual(e,t){return typeof e==`number`&&typeof t==`number`?e===t:typeof e==`object`&&typeof t==`object`&&areArraysEqual(e,t)}var axisProps={horizontal:{offset:e=>({left:`${e}%`}),leap:e=>({width:`${e}%`})},"horizontal-reverse":{offset:e=>({right:`${e}%`}),leap:e=>({width:`${e}%`})},vertical:{offset:e=>({bottom:`${e}%`}),leap:e=>({height:`${e}%`})}},Identity$1=e=>e,cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(cachedSupportsTouchActionNone=typeof CSS<`u`&&typeof CSS.supports==`function`?CSS.supports(`touch-action`,`none`):!0),cachedSupportsTouchActionNone}function useSlider(e){let{"aria-labelledby":t,defaultValue:n,disabled:a=!1,disableSwap:o=!1,isRtl:s=!1,marks:l=!1,max:u=100,min:d=0,name:f,onChange:m,onChangeCommitted:h,orientation:v=`horizontal`,rootRef:y,scale:b=Identity$1,step:x=1,shiftStep:S=10,tabIndex:C,value:T}=e,E=import_react$24.useRef(void 0),[D,O]=import_react$24.useState(-1),[k,j]=import_react$24.useState(-1),[M,N]=import_react$24.useState(!1),F=import_react$24.useRef(0),[I,L]=useControlled({controlled:T,default:n??d,name:`Slider`}),R=m&&((e,t,n)=>{let a=e.nativeEvent||e,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:t,name:f}}),m(o,t,n)}),z=Array.isArray(I),B=z?I.slice().sort(asc):[I];B=B.map(e=>e==null?d:clamp$1(e,d,u));let V=l===!0&&x!==null?[...Array(Math.floor((u-d)/x)+1)].map((e,t)=>({value:d+x*t})):l||[],H=V.map(e=>e.value),{isFocusVisibleRef:U,onBlur:W,onFocus:G,ref:ee}=useIsFocusVisible(),[te,K]=import_react$24.useState(-1),q=import_react$24.useRef(null),ne=useForkRef(y,useForkRef(ee,q)),re=e=>t=>{var n;let a=Number(t.currentTarget.getAttribute(`data-index`));G(t),U.current===!0&&K(a),j(a),e==null||(n=e.onFocus)==null||n.call(e,t)},J=e=>t=>{var n;W(t),U.current===!1&&K(-1),j(-1),e==null||(n=e.onBlur)==null||n.call(e,t)},ie=(e,t)=>{let n=Number(e.currentTarget.getAttribute(`data-index`)),a=B[n],s=H.indexOf(a),l=t;if(V&&x==null){let e=H[H.length-1];l=l>e?e:l<H[0]?H[0]:l<a?H[s-1]:H[s+1]}if(l=clamp$1(l,d,u),z){o&&(l=clamp$1(l,B[n-1]||-1/0,B[n+1]||1/0));let e=l;l=setValueIndex({values:B,newValue:l,index:n});let t=n;o||(t=l.indexOf(e)),focusThumb({sliderRef:q,activeIndex:t})}L(l),K(n),R&&!areValuesEqual(l,I)&&R(e,l,n),h&&h(e,l)},ae=e=>t=>{var n;if(x!==null){let e=Number(t.currentTarget.getAttribute(`data-index`)),n=B[e],a=null;(t.key===`ArrowLeft`||t.key===`ArrowDown`)&&t.shiftKey||t.key===`PageDown`?a=Math.max(n-S,d):((t.key===`ArrowRight`||t.key===`ArrowUp`)&&t.shiftKey||t.key===`PageUp`)&&(a=Math.min(n+S,u)),a!==null&&(ie(t,a),t.preventDefault())}e==null||(n=e.onKeyDown)==null||n.call(e,t)};useEnhancedEffect$1(()=>{if(a&&q.current.contains(document.activeElement)){var e;(e=document.activeElement)==null||e.blur()}},[a]),a&&D!==-1&&O(-1),a&&te!==-1&&K(-1);let oe=e=>t=>{var n;(n=e.onChange)==null||n.call(e,t),ie(t,t.target.valueAsNumber)},se=import_react$24.useRef(void 0),ce=v;s&&v===`horizontal`&&(ce+=`-reverse`);let Y=({finger:e,move:t=!1})=>{let{current:n}=q,{width:a,height:s,bottom:l,left:f}=n.getBoundingClientRect(),m;m=ce.indexOf(`vertical`)===0?(l-e.y)/s:(e.x-f)/a,ce.indexOf(`-reverse`)!==-1&&(m=1-m);let h;if(h=percentToValue(m,d,u),x)h=roundValueToStep(h,x,d);else{let e=findClosest(H,h);h=H[e]}h=clamp$1(h,d,u);let v=0;if(z){v=t?se.current:findClosest(B,h),o&&(h=clamp$1(h,B[v-1]||-1/0,B[v+1]||1/0));let e=h;h=setValueIndex({values:B,newValue:h,index:v}),o&&t||(v=h.indexOf(e),se.current=v)}return{newValue:h,activeIndex:v}},le=useEventCallback$1(e=>{let t=trackFinger(e,E);if(!t)return;if(F.current+=1,e.type===`mousemove`&&e.buttons===0){ue(e);return}let{newValue:n,activeIndex:a}=Y({finger:t,move:!0});focusThumb({sliderRef:q,activeIndex:a,setActive:O}),L(n),!M&&F.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&N(!0),R&&!areValuesEqual(n,I)&&R(e,n,a)}),ue=useEventCallback$1(e=>{let t=trackFinger(e,E);if(N(!1),!t)return;let{newValue:n}=Y({finger:t,move:!0});O(-1),e.type===`touchend`&&j(-1),h&&h(e,n),E.current=void 0,X()}),de=useEventCallback$1(e=>{if(a)return;doesSupportTouchActionNone()||e.preventDefault();let t=e.changedTouches[0];t!=null&&(E.current=t.identifier);let n=trackFinger(e,E);if(n!==!1){let{newValue:t,activeIndex:a}=Y({finger:n});focusThumb({sliderRef:q,activeIndex:a,setActive:O}),L(t),R&&!areValuesEqual(t,I)&&R(e,t,a)}F.current=0;let o=ownerDocument(q.current);o.addEventListener(`touchmove`,le,{passive:!0}),o.addEventListener(`touchend`,ue,{passive:!0})}),X=import_react$24.useCallback(()=>{let e=ownerDocument(q.current);e.removeEventListener(`mousemove`,le),e.removeEventListener(`mouseup`,ue),e.removeEventListener(`touchmove`,le),e.removeEventListener(`touchend`,ue)},[ue,le]);import_react$24.useEffect(()=>{let{current:e}=q;return e.addEventListener(`touchstart`,de,{passive:doesSupportTouchActionNone()}),()=>{e.removeEventListener(`touchstart`,de),X()}},[X,de]),import_react$24.useEffect(()=>{a&&X()},[a,X]);let fe=e=>t=>{var n;if((n=e.onMouseDown)==null||n.call(e,t),a||t.defaultPrevented||t.button!==0)return;t.preventDefault();let o=trackFinger(t,E);if(o!==!1){let{newValue:e,activeIndex:n}=Y({finger:o});focusThumb({sliderRef:q,activeIndex:n,setActive:O}),L(e),R&&!areValuesEqual(e,I)&&R(t,e,n)}F.current=0;let s=ownerDocument(q.current);s.addEventListener(`mousemove`,le,{passive:!0}),s.addEventListener(`mouseup`,ue)},pe=valueToPercent(z?B[0]:d,d,u),me=valueToPercent(B[B.length-1],d,u)-pe,he=(e={})=>{let t=extractEventHandlers(e),n=_extends$3({},t,{onMouseDown:fe(t||{})});return _extends$3({},e,{ref:ne},n)},ge=e=>t=>{var n;(n=e.onMouseOver)==null||n.call(e,t);let a=Number(t.currentTarget.getAttribute(`data-index`));j(a)},Z=e=>t=>{var n;(n=e.onMouseLeave)==null||n.call(e,t),j(-1)};return{active:D,axis:ce,axisProps,dragging:M,focusedThumbIndex:te,getHiddenInputProps:(n={})=>{var o;let l=extractEventHandlers(n),m=_extends$3({},l,{onChange:oe(l||{}),onFocus:re(l||{}),onBlur:J(l||{}),onKeyDown:ae(l||{})});return _extends$3({tabIndex:C,"aria-labelledby":t,"aria-orientation":v,"aria-valuemax":b(u),"aria-valuemin":b(d),name:f,type:`range`,min:e.min,max:e.max,step:e.step===null&&e.marks?`any`:e.step??void 0,disabled:a},n,m,{style:_extends$3({},visuallyHidden,{direction:s?`rtl`:`ltr`,width:`100%`,height:`100%`})})},getRootProps:he,getThumbProps:(e={})=>{let t=extractEventHandlers(e);return _extends$3({},e,t,{onMouseOver:ge(t||{}),onMouseLeave:Z(t||{})})},marks:V,open:k,range:z,rootRef:ne,trackLeap:me,trackOffset:pe,values:B,getThumbStyle:e=>({pointerEvents:D!==-1&&D!==e?`none`:void 0})}}init_isHostComponent();var shouldSpreadAdditionalProps=e=>!e||!isHostComponent(e);init_generateUtilityClasses(),init_generateUtilityClass();function getSliderUtilityClass(e){return generateUtilityClass(`MuiSlider`,e)}var sliderClasses=generateUtilityClasses(`MuiSlider`,`root.active.colorPrimary.colorSecondary.colorError.colorInfo.colorSuccess.colorWarning.disabled.dragging.focusVisible.mark.markActive.marked.markLabel.markLabelActive.rail.sizeSmall.thumb.thumbColorPrimary.thumbColorSecondary.thumbColorError.thumbColorSuccess.thumbColorInfo.thumbColorWarning.track.trackInverted.trackFalse.thumbSizeSmall.valueLabel.valueLabelOpen.valueLabelCircle.valueLabelLabel.vertical`.split(`.`));init_clsx();var useValueLabelClasses=e=>{let{open:t}=e;return{offset:clsx$1(t&&sliderClasses.valueLabelOpen),circle:sliderClasses.valueLabelCircle,label:sliderClasses.valueLabelLabel}};function SliderValueLabel$1(e){let{children:t,className:n,value:a}=e,o=useValueLabelClasses(e);return t?import_react$24.cloneElement(t,{className:clsx$1(t.props.className)},(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[t.props.children,(0,import_jsx_runtime.jsx)(`span`,{className:clsx$1(o.offset,n),"aria-hidden":!0,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.circle,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.label,children:a})})})]})):null}init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_isHostComponent(),init_styled(),init_DefaultPropsProvider(),init_slotShouldForwardProp(),init_capitalize();var _excluded$1=`aria-label.aria-valuetext.aria-labelledby.component.components.componentsProps.color.classes.className.disableSwap.disabled.getAriaLabel.getAriaValueText.marks.max.min.name.onChange.onChangeCommitted.orientation.shiftStep.size.step.scale.slotProps.slots.tabIndex.track.value.valueLabelDisplay.valueLabelFormat`.split(`.`);function Identity(e){return e}var SliderRoot=styled$1(`span`,{name:`MuiSlider`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`color${capitalize_default(n.color)}`],n.size!==`medium`&&t[`size${capitalize_default(n.size)}`],n.marked&&t.marked,n.orientation===`vertical`&&t.vertical,n.track===`inverted`&&t.trackInverted,n.track===!1&&t.trackFalse]}})(({theme:e})=>{var t;return{borderRadius:12,boxSizing:`content-box`,display:`inline-block`,position:`relative`,cursor:`pointer`,touchAction:`none`,WebkitTapHighlightColor:`transparent`,"@media print":{colorAdjust:`exact`},[`&.${sliderClasses.disabled}`]:{pointerEvents:`none`,cursor:`default`,color:(e.vars||e).palette.grey[400]},[`&.${sliderClasses.dragging}`]:{[`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]:{transition:`none`}},variants:[...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),{props:{orientation:`horizontal`},style:{height:4,width:`100%`,padding:`13px 0`,"@media (pointer: coarse)":{padding:`20px 0`}}},{props:{orientation:`horizontal`,size:`small`},style:{height:2}},{props:{orientation:`horizontal`,marked:!0},style:{marginBottom:20}},{props:{orientation:`vertical`},style:{height:`100%`,width:4,padding:`0 13px`,"@media (pointer: coarse)":{padding:`0 20px`}}},{props:{orientation:`vertical`,size:`small`},style:{width:2}},{props:{orientation:`vertical`,marked:!0},style:{marginRight:44}}]}}),SliderRail=styled$1(`span`,{name:`MuiSlider`,slot:`Rail`,overridesResolver:(e,t)=>t.rail})({display:`block`,position:`absolute`,borderRadius:`inherit`,backgroundColor:`currentColor`,opacity:.38,variants:[{props:{orientation:`horizontal`},style:{width:`100%`,height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{height:`100%`,width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:`inverted`},style:{opacity:1}}]}),SliderTrack=styled$1(`span`,{name:`MuiSlider`,slot:`Track`,overridesResolver:(e,t)=>t.track})(({theme:e})=>{var t;return{display:`block`,position:`absolute`,borderRadius:`inherit`,border:`1px solid currentColor`,backgroundColor:`currentColor`,transition:e.transitions.create([`left`,`width`,`bottom`,`height`],{duration:e.transitions.duration.shortest}),variants:[{props:{size:`small`},style:{border:`none`}},{props:{orientation:`horizontal`},style:{height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:!1},style:{display:`none`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t,track:`inverted`},style:_extends$3({},e.vars?{backgroundColor:e.vars.palette.Slider[`${t}Track`],borderColor:e.vars.palette.Slider[`${t}Track`]}:_extends$3({backgroundColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62),borderColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62)},e.applyStyles(`dark`,{backgroundColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)}),e.applyStyles(`dark`,{borderColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)})))}))]}}),SliderThumb=styled$1(`span`,{name:`MuiSlider`,slot:`Thumb`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.thumb,t[`thumbColor${capitalize_default(n.color)}`],n.size!==`medium`&&t[`thumbSize${capitalize_default(n.size)}`]]}})(({theme:e})=>{var t;return{position:`absolute`,width:20,height:20,boxSizing:`border-box`,borderRadius:`50%`,outline:0,backgroundColor:`currentColor`,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:e.transitions.create([`box-shadow`,`left`,`bottom`],{duration:e.transitions.duration.shortest}),"&::before":{position:`absolute`,content:`""`,borderRadius:`inherit`,width:`100%`,height:`100%`,boxShadow:(e.vars||e).shadows[2]},"&::after":{position:`absolute`,content:`""`,borderRadius:`50%`,width:42,height:42,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`},[`&.${sliderClasses.disabled}`]:{"&:hover":{boxShadow:`none`}},variants:[{props:{size:`small`},style:{width:12,height:12,"&::before":{boxShadow:`none`}}},{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-50%, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 50%)`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{[`&:hover, &.${sliderClasses.focusVisible}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 8px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`},{"@media (hover: none)":{boxShadow:`none`}}),[`&.${sliderClasses.active}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 14px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`})}}))]}}),SliderValueLabel=styled$1(SliderValueLabel$1,{name:`MuiSlider`,slot:`ValueLabel`,overridesResolver:(e,t)=>t.valueLabel})(({theme:e})=>_extends$3({zIndex:1,whiteSpace:`nowrap`},e.typography.body2,{fontWeight:500,transition:e.transitions.create([`transform`],{duration:e.transitions.duration.shortest}),position:`absolute`,backgroundColor:(e.vars||e).palette.grey[600],borderRadius:2,color:(e.vars||e).palette.common.white,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`0.25rem 0.75rem`,variants:[{props:{orientation:`horizontal`},style:{transform:`translateY(-100%) scale(0)`,top:`-10px`,transformOrigin:`bottom center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, 50%) rotate(45deg)`,backgroundColor:`inherit`,bottom:0,left:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-100%) scale(1)`}}},{props:{orientation:`vertical`},style:{transform:`translateY(-50%) scale(0)`,right:`30px`,top:`50%`,transformOrigin:`right center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, -50%) rotate(45deg)`,backgroundColor:`inherit`,right:-8,top:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-50%) scale(1)`}}},{props:{size:`small`},style:{fontSize:e.typography.pxToRem(12),padding:`0.25rem 0.5rem`}},{props:{orientation:`vertical`,size:`small`},style:{right:`20px`}}]})),SliderMark=styled$1(`span`,{name:`MuiSlider`,slot:`Mark`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markActive`,overridesResolver:(e,t)=>{let{markActive:n}=e;return[t.mark,n&&t.markActive]}})(({theme:e})=>({position:`absolute`,width:2,height:2,borderRadius:1,backgroundColor:`currentColor`,variants:[{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-1px, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 1px)`}},{props:{markActive:!0},style:{backgroundColor:(e.vars||e).palette.background.paper,opacity:.8}}]})),SliderMarkLabel=styled$1(`span`,{name:`MuiSlider`,slot:`MarkLabel`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markLabelActive`,overridesResolver:(e,t)=>t.markLabel})(({theme:e})=>_extends$3({},e.typography.body2,{color:(e.vars||e).palette.text.secondary,position:`absolute`,whiteSpace:`nowrap`,variants:[{props:{orientation:`horizontal`},style:{top:30,transform:`translateX(-50%)`,"@media (pointer: coarse)":{top:40}}},{props:{orientation:`vertical`},style:{left:36,transform:`translateY(50%)`,"@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(e.vars||e).palette.text.primary}}]})),useUtilityClasses$1=e=>{let{disabled:t,dragging:n,marked:a,orientation:o,track:s,classes:l,color:u,size:d}=e;return composeClasses({root:[`root`,t&&`disabled`,n&&`dragging`,a&&`marked`,o===`vertical`&&`vertical`,s===`inverted`&&`trackInverted`,s===!1&&`trackFalse`,u&&`color${capitalize_default(u)}`,d&&`size${capitalize_default(d)}`],rail:[`rail`],track:[`track`],mark:[`mark`],markActive:[`markActive`],markLabel:[`markLabel`],markLabelActive:[`markLabelActive`],valueLabel:[`valueLabel`],thumb:[`thumb`,t&&`disabled`,d&&`thumbSize${capitalize_default(d)}`,u&&`thumbColor${capitalize_default(u)}`],active:[`active`],disabled:[`disabled`],focusVisible:[`focusVisible`]},getSliderUtilityClass,l)},Forward=({children:e})=>e,Slider=import_react$24.forwardRef(function(e,t){var n,a,o,s,l,u,d,f,m,h,v,y,b,x,S,C,T,E,D,O,k,j,M,N;let F=useDefaultProps({props:e,name:`MuiSlider`}),I=useRtl(),{"aria-label":L,"aria-valuetext":R,"aria-labelledby":z,component:B=`span`,components:V={},componentsProps:H={},color:U=`primary`,classes:W,className:G,disableSwap:ee=!1,disabled:te=!1,getAriaLabel:K,getAriaValueText:q,marks:ne=!1,max:re=100,min:J=0,orientation:ie=`horizontal`,shiftStep:ae=10,size:oe=`medium`,step:se=1,scale:ce=Identity,slotProps:Y,slots:le,track:ue=`normal`,valueLabelDisplay:de=`off`,valueLabelFormat:X=Identity}=F,fe=_objectWithoutPropertiesLoose$3(F,_excluded$1),pe=_extends$3({},F,{isRtl:I,max:re,min:J,classes:W,disabled:te,disableSwap:ee,orientation:ie,marks:ne,color:U,size:oe,step:se,shiftStep:ae,scale:ce,track:ue,valueLabelDisplay:de,valueLabelFormat:X}),{axisProps:me,getRootProps:he,getHiddenInputProps:ge,getThumbProps:Z,open:_e,active:Q,axis:$,focusedThumbIndex:ve,range:ye,dragging:be,marks:xe,values:Se,trackOffset:Ce,trackLeap:we,getThumbStyle:Te}=useSlider(_extends$3({},pe,{rootRef:t}));pe.marked=xe.length>0&&xe.some(e=>e.label),pe.dragging=be,pe.focusedThumbIndex=ve;let Ee=useUtilityClasses$1(pe),De=le?.root??V.Root??SliderRoot,Oe=le?.rail??V.Rail??SliderRail,ke=le?.track??V.Track??SliderTrack,Ae=le?.thumb??V.Thumb??SliderThumb,je=le?.valueLabel??V.ValueLabel??SliderValueLabel,Me=le?.mark??V.Mark??SliderMark,Ne=le?.markLabel??V.MarkLabel??SliderMarkLabel,Pe=le?.input??V.Input??`input`,Fe=Y?.root??H.root,Ie=Y?.rail??H.rail,Le=Y?.track??H.track,Re=Y?.thumb??H.thumb,ze=Y?.valueLabel??H.valueLabel,Be=Y?.mark??H.mark,Ve=Y?.markLabel??H.markLabel,He=Y?.input??H.input,Ue=useSlotProps({elementType:De,getSlotProps:he,externalSlotProps:Fe,externalForwardedProps:fe,additionalProps:_extends$3({},shouldSpreadAdditionalProps(De)&&{as:B}),ownerState:_extends$3({},pe,Fe?.ownerState),className:[Ee.root,G]}),We=useSlotProps({elementType:Oe,externalSlotProps:Ie,ownerState:pe,className:Ee.rail}),Ge=useSlotProps({elementType:ke,externalSlotProps:Le,additionalProps:{style:_extends$3({},me[$].offset(Ce),me[$].leap(we))},ownerState:_extends$3({},pe,Le?.ownerState),className:Ee.track}),Ke=useSlotProps({elementType:Ae,getSlotProps:Z,externalSlotProps:Re,ownerState:_extends$3({},pe,Re?.ownerState),className:Ee.thumb}),qe=useSlotProps({elementType:je,externalSlotProps:ze,ownerState:_extends$3({},pe,ze?.ownerState),className:Ee.valueLabel}),Je=useSlotProps({elementType:Me,externalSlotProps:Be,ownerState:pe,className:Ee.mark}),Ye=useSlotProps({elementType:Ne,externalSlotProps:Ve,ownerState:pe,className:Ee.markLabel}),Xe=useSlotProps({elementType:Pe,getSlotProps:ge,externalSlotProps:He,ownerState:pe});return(0,import_jsx_runtime.jsxs)(De,_extends$3({},Ue,{children:[(0,import_jsx_runtime.jsx)(Oe,_extends$3({},We)),(0,import_jsx_runtime.jsx)(ke,_extends$3({},Ge)),xe.filter(e=>e.value>=J&&e.value<=re).map((e,t)=>{let n=valueToPercent(e.value,J,re),a=me[$].offset(n),o;return o=ue===!1?Se.indexOf(e.value)!==-1:ue===`normal`&&(ye?e.value>=Se[0]&&e.value<=Se[Se.length-1]:e.value<=Se[0])||ue===`inverted`&&(ye?e.value<=Se[0]||e.value>=Se[Se.length-1]:e.value>=Se[0]),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(Me,_extends$3({"data-index":t},Je,!isHostComponent(Me)&&{markActive:o},{style:_extends$3({},a,Je.style),className:clsx$1(Je.className,o&&Ee.markActive)})),e.label==null?null:(0,import_jsx_runtime.jsx)(Ne,_extends$3({"aria-hidden":!0,"data-index":t},Ye,!isHostComponent(Ne)&&{markLabelActive:o},{style:_extends$3({},a,Ye.style),className:clsx$1(Ee.markLabel,Ye.className,o&&Ee.markLabelActive),children:e.label}))]},t)}),Se.map((e,t)=>{let n=valueToPercent(e,J,re),a=me[$].offset(n),o=de===`off`?Forward:je;return(0,import_jsx_runtime.jsx)(o,_extends$3({},!isHostComponent(o)&&{valueLabelFormat:X,valueLabelDisplay:de,value:typeof X==`function`?X(ce(e),t):X,index:t,open:_e===t||Q===t||de===`on`,disabled:te},qe,{children:(0,import_jsx_runtime.jsx)(Ae,_extends$3({"data-index":t},Ke,{className:clsx$1(Ee.thumb,Ke.className,Q===t&&Ee.active,ve===t&&Ee.focusVisible),style:_extends$3({},a,Te(t),Ke.style),children:(0,import_jsx_runtime.jsx)(Pe,_extends$3({"data-index":t,"aria-label":K?K(t):L,"aria-valuenow":ce(e),"aria-labelledby":z,"aria-valuetext":q?q(ce(e),t):R,value:Se[t]},Xe))}))}),t)})]}))}),import_ZoomIn=__toESM(require_ZoomIn()),import_ZoomOut=__toESM(require_ZoomOut()),extendStatics$1=function(e,t){return extendStatics$1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},extendStatics$1(e,t)};function __extends$1(e,t){extendStatics$1(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var __assign$1=function(){return __assign$1=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign$1.apply(this,arguments)};function __rest$1(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}var initialState={wrapperComponent:null,contentComponent:null,previousScale:1,scale:1,positionX:0,positionY:0,options:{disabled:!1,transformEnabled:!0,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,limitToWrapper:!1,centerContent:!0,wrapperClass:``,contentClass:``},wheel:{disabled:!1,step:5,wheelEnabled:!0,touchPadEnabled:!0,limitsOnWheel:!1},pan:{disabled:!1,panAnimationType:`linear`,lockAxisX:!1,lockAxisY:!1,velocity:!0,velocityEqualToMove:!0,velocitySensitivity:2,velocityActiveScale:1,velocityMinSpeed:1,velocityBaseTime:1600,velocityAnimationType:`easeOutQuart`,padding:!0,paddingSize:30,panReturnAnimationTime:400,panReturnAnimationType:`easeOut`,disableOnTarget:[]},pinch:{disabled:!1},zoomIn:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},zoomOut:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},doubleClick:{disabled:!1,step:20,mode:`zoomIn`,animation:!0,animationType:`easeOut`,animationTime:200},reset:{disabled:!1,animation:!0,animationType:`easeOut`,animationTime:200},scalePadding:{disabled:!1,size:.2,animationTime:200,animationType:`easeOut`}},roundNumber=function(e,t){return Number(e.toFixed(t))},checkIsNumber=function(e,t){return typeof e==`number`?e:t},boundLimiter=function(e,t,n,a){return roundNumber(a?e<t?t:e>n?n:e:e,2)},calculateBoundingArea=function(e,t,n,a,o,s,l){var u=e>t?n*(l?1:.5):0,d=a>o?s*(l?1:.5):0;return{minPositionX:e-t-u,maxPositionX:u,minPositionY:a-o-d,maxPositionY:d}},getDistance=function(e,t){return Math.sqrt((e.pageX-t.pageX)**2+(e.pageY-t.pageY)**2)},deleteUndefinedProps=function(e){var t=__assign$1({},e);return Object.keys(t).forEach(function(e){return t[e]===void 0&&delete t[e]}),t},handleCallback=function(e,t){e&&typeof e==`function`&&e(t)},handleWheelStop=function(e,t,n){var a=n.scale,o=n.options,s=o.maxScale,l=o.minScale;return e?a<s||a>l||Math.sign(e.deltaY)!==Math.sign(t.deltaY)||e.deltaY>0&&e.deltaY<t.deltaY||e.deltaY<0&&e.deltaY>t.deltaY||Math.sign(e.deltaY)!==Math.sign(t.deltaY):!1},mergeProps=function(e,t){return Object.keys(e).reduce(function(n,a){return typeof t[a]==`object`&&t[a]!==null?n[a]=__assign$1(__assign$1({},e[a]),t[a]):n[a]=t[a]===void 0?e[a]:t[a],n},{})};function getWindowScaleY(e){return e?window.innerHeight/e.offsetHeight:0}function getWindowScaleX(e){return e?window.innerWidth/e.offsetWidth:0}var easeOut=function(e){return-Math.cos(e*Math.PI)/2+.5},linear=function(e){return e},easeInQuad=function(e){return e*e},easeOutQuad=function(e){return e*(2-e)},easeInOutQuad=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},easeInCubic=function(e){return e*e*e},easeOutCubic=function(e){return--e*e*e+1},easeInOutCubic=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart=function(e){return e*e*e*e},easeOutQuart=function(e){return 1- --e*e*e*e},easeInOutQuart=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint=function(e){return e*e*e*e*e},easeOutQuint=function(e){return 1+--e*e*e*e*e},easeInOutQuint=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},availableAnimations={easeOut,linear,easeInQuad,easeOutQuad,easeInOutQuad,easeInCubic,easeOutCubic,easeInOutCubic,easeInQuart,easeOutQuart,easeInOutQuart,easeInQuint,easeOutQuint,easeInOutQuint};function handleDisableAnimation(){this.mounted&&(this.animation&&cancelAnimationFrame(this.animation),this.animate=!1,this.animation=!1,this.velocity=!1)}function animate(e,t,n){var a=this;if(this.mounted){var o=new Date().getTime(),s=1;handleDisableAnimation.call(this),this.animation=function(){if(!(!a.animation||!a.mounted)){var l=new Date().getTime()-o,u=l/t,d=availableAnimations[e],f=d(u);l>=t?(n(s),a.animation=null):(n(f),requestAnimationFrame(a.animation))}},requestAnimationFrame(this.animation)}}function animateComponent(e){var t=this,n=e.targetState,a=e.speed,o=e.type,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=n.scale-l,m=n.positionX-u,h=n.positionY-d;a===0?(this.stateProvider.previousScale=this.stateProvider.scale,this.stateProvider.scale=n.scale,this.stateProvider.positionX=n.positionX,this.stateProvider.positionY=n.positionY,this.applyTransformation()):animate.call(this,o,a,function(e){t.stateProvider.previousScale=t.stateProvider.scale,t.stateProvider.scale=l+f*e,t.stateProvider.positionX=u+m*e,t.stateProvider.positionY=d+h*e,t.applyTransformation()})}function checkZoomBounds(e,t,n,a,o){var s=t-(o?a:0);return!isNaN(n)&&e>=n?n:!isNaN(t)&&e<=s?s:e}function checkPositionBounds(e,t,n,a,o,s){var l=n.minPositionX,u=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,m=s?o*s.offsetWidth/100:0,h=s?o*s.offsetHeight/100:0;return{x:boundLimiter(e,l-m,d+m,a),y:boundLimiter(t,u-h,f+h,a)}}function getDelta(e,t){return checkIsNumber(t,e?e.deltaY<0?1:-1:0)}function wheelMousePosition(e,t,n){var a=t.getBoundingClientRect(),o=(e.clientX-a.left)/n,s=(e.clientY-a.top)/n;return(isNaN(o)||isNaN(s))&&console.error(`No mouse or touch offset found`),{mouseX:o,mouseY:s}}function getComponentsSizes(e,t,n){var a=e.offsetWidth,o=e.offsetHeight,s=t.offsetWidth,l=t.offsetHeight,u=s*n,d=l*n;return{wrapperWidth:a,wrapperHeight:o,newContentWidth:u,newDiffWidth:a-u,newContentHeight:d,newDiffHeight:o-d}}function handleCalculatePositions(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.options.transformEnabled,m=n-l;return typeof e!=`number`||typeof t!=`number`?console.error(`Mouse X and Y position were not provided!`):f?checkPositionBounds(u-e*m,d-t*m,a,o,0,null):{newPositionX:u,newPositionY:d}}function getClientPosition(e){var t=e.touches;return t&&t.length===1?{clientX:t[0].clientX,clientY:t[0].clientY}:t?null:{clientX:e.clientX,clientY:e.clientY}}function handlePanning(e){var t=this.stateProvider,n=t.scale,a=t.positionX,o=t.positionY,s=t.options,l=s.limitToBounds,u=s.minScale,d=t.pan,f=d.lockAxisX,m=d.lockAxisY,h=d.padding,v=d.paddingSize,y=t.wrapperComponent;if(this.startCoords){var b=this.startCoords,x=b.x,S=b.y,C=getClientPosition(e);if(!C)return console.error(`Cannot find mouse client positions`);var T=C.clientX,E=C.clientY,D=T-x,O=E-S,k=f?a:D,j=m?o:O,M=h&&n>=u?v:0;if(!(k===a&&j===o)){var N=checkPositionBounds(k,j,this.bounds,l,M,y);handlePaddingAnimation.call(this,N.x,N.y)}}}function handlePanningAnimation(){var e=this.stateProvider,t=e.scale,n=e.options.minScale,a=e.pan,o=a.disabled,s=a.padding,l=a.panReturnAnimationTime,u=a.panReturnAnimationType;if(!(o||t<n||!s)){var d=handlePanToBounds.call(this);animateComponent.call(this,{targetState:d,speed:l,type:u})}}function handlePanToBounds(){var e=this.stateProvider,t=e.positionX,n=e.positionY,a=e.scale,o=e.options,s=o.disabled,l=o.limitToBounds,u=o.limitToWrapper,d=this.state.wrapperComponent;if(!s){var f=this.bounds,m=f.maxPositionX,h=f.minPositionX,v=f.maxPositionY,y=f.minPositionY,b=t>m||t<h,x=n>v||n<y,S=t>m?d.offsetWidth:this.stateProvider.minPositionX||0,C=n>v?d.offsetHeight:this.stateProvider.minPositionY||0,T=S,E=C,D=handleCalculatePositions.call(this,T,E,a,this.bounds,l||u),O=D.x,k=D.y;return{scale:a,positionX:b?O:t,positionY:x?k:n}}}function handlePaddingAnimation(e,t){this.stateProvider.pan.padding&&(this.stateProvider.positionX=e,this.stateProvider.positionY=t,this.applyTransformation())}function handleCalculateZoom(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.options,d=u.maxScale,f=u.minScale,m=s.scalePadding,h=m.size,v=m.disabled,y=s.wrapperComponent,b=null;if(o){var x=window.innerWidth*1e-4,S=e<0?30:20;b=l+(t-t*x)*e*(l/S)}else{var C=2-window.innerWidth/y.offsetWidth,x=Math.max(.2,Math.min(.99,C)),S=20;b=l+t*e*((l-l*x)/S)}if(a)return b;var T=!n&&!v;return checkZoomBounds(roundNumber(b,3),f,d,h,T)}function handleCalculateBounds(e,t){var n=this.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=getComponentsSizes(a,o,e),l=s.wrapperWidth,u=s.wrapperHeight,d=s.newContentWidth,f=s.newDiffWidth,m=s.newContentHeight,h=s.newDiffHeight,v=calculateBoundingArea(l,d,f,u,m,h,t);return this.bounds=v,v}function handleWheelZoom(e){var t=this.stateProvider,n=t.scale,a=t.contentComponent,o=t.options.limitToBounds,s=t.scalePadding,l=s.size,u=s.disabled,d=t.wheel,f=d.step,m=d.limitsOnWheel;e.preventDefault(),e.stopPropagation();var h=getDelta(e,null),v=handleCalculateZoom.call(this,h,f,!e.ctrlKey);if(n!==v){var y=handleCalculateBounds.call(this,v,!m),b=wheelMousePosition(e,a,n),x=b.mouseX,S=b.mouseY,C=o&&(u||l===0||m),T=handleCalculatePositions.call(this,x,S,v,y,C),E=T.x,D=T.y;this.bounds=y,this.stateProvider.previousScale=n,this.stateProvider.scale=v,this.stateProvider.positionX=E,this.stateProvider.positionY=D,this.applyTransformation()}}function handleZoomToPoint(e,t,n,a,o){var s=this.stateProvider,l=s.contentComponent,u=s.options,d=u.disabled,f=u.minScale,m=u.maxScale,h=u.limitToBounds,v=u.limitToWrapper;if(!(d||e)){var y=checkZoomBounds(roundNumber(t,2),f,m,null,null),b=handleCalculateBounds.call(this,y,v),x=n,S=a;if(o){var C=wheelMousePosition(o,l,t);x=C.mouseX,S=C.mouseY}var T=handleCalculatePositions.call(this,x,S,y,b,h);return{scale:y,positionX:T.x,positionY:T.y}}}function handlePaddingAnimation$1(){var e=this.stateProvider,t=e.scale,n=e.wrapperComponent,a=e.options,o=a.minScale,s=a.limitToBounds,l=e.scalePadding,u=l.disabled,d=l.animationTime,f=l.animationType,m=u||t>=o;if((t>=1||s)&&handlePanningAnimation.call(this),!m){var h=n.offsetWidth/2,v=n.offsetHeight/2,y=handleZoomToPoint.call(this,!1,o,h,v,null);animateComponent.call(this,{targetState:y,speed:d,type:f})}}function handleDoubleClick(e){e.preventDefault(),e.stopPropagation();var t=this.stateProvider,n=t.contentComponent,a=t.scale,o=t.doubleClick,s=o.disabled,l=o.mode,u=o.step,d=o.animationTime,f=o.animationType;if(l===`reset`)return resetTransformations.call(this,e,d);var m=l===`zoomOut`?-1:1,h=handleCalculateZoom.call(this,m,u,void 0,void 0,!0),v=wheelMousePosition(e,n,a),y=v.mouseX,b=v.mouseY,x=handleZoomToPoint.call(this,s,h,y,b);if(x.scale!==a){var S=getButtonAnimationTime(handleCalculateZoom.call(this,m,u,!0,void 0,!0),h,d);animateComponent.call(this,{targetState:x,speed:S,type:f})}}function handleZoomControls(e,t){var n=this.stateProvider,a=n.scale,o=n.positionX,s=n.positionY,l=n.wrapperComponent,u=n.zoomIn,d=n.zoomOut,f=l.offsetWidth,m=l.offsetHeight,h=(f/2-o)/a,v=(m/2-s)/a,y=handleCalculateZoom.call(this,e,t,void 0,void 0,!0),b=y>a,x=b?u.animationTime:d.animationTime,S=b?u.animationType:d.animationType,C=b?u.disabled:d.disabled,T=handleZoomToPoint.call(this,C,y,h,v);if(T.scale!==a){var E=getButtonAnimationTime(handleCalculateZoom.call(this,e,t,!0,void 0,!0),y,x);animateComponent.call(this,{targetState:T,speed:E,type:S})}}function resetTransformations(e){var t=this.props.defaultValues,n=t.defaultScale,a=t.defaultPositionX,o=t.defaultPositionY,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.reset,m=s.options,h=m.disabled,v=m.limitToBounds,y=m.centerContent,b=m.limitToWrapper;if(!(h||f.disabled)&&!(l===n&&u===a&&d===o)){var x=typeof e==`number`?e:f.animationTime,S=checkIsNumber(n,initialState.scale),C=checkIsNumber(a,initialState.positionX),T=checkIsNumber(o,initialState.positionY);if(v&&!b||y){var E=handleCalculateBounds.call(this,S,b);C=E.minPositionX,T=E.minPositionY}var D={scale:S,positionX:C,positionY:T};animateComponent.call(this,{targetState:D,speed:x,type:f.animationType})}}function getButtonAnimationTime(e,t,n){return t/e*n}function round(e,t){var n=10**t;return Math.round(e*n)/n}function getCurrentDistance(e){return getDistance(e.touches[0],e.touches[1])}function checkIfInfinite(e){return e===1/0||e===-1/0}function calculatePinchZoom(e,t){var n=this.stateProvider,a=n.options,o=a.minScale,s=a.maxScale,l=n.scalePadding,u=l.size,d=l.disabled;if(typeof t!=`number`||typeof e!=`number`)return console.error(`Pinch touches distance was not provided`);if(!(e<0))return checkZoomBounds(roundNumber(e/t*this.pinchStartScale,2),o,s,u,!d)}function calculateMidpoint(e,t,n){var a=n.getBoundingClientRect(),o=e.touches,s=round(o[0].clientX-a.left,5),l=round(o[0].clientY-a.top,5),u=round(o[1].clientX-a.left,5),d=round(o[1].clientY-a.top,5);return{mouseX:(s+u)/2/t,mouseY:(l+d)/2/t}}function handleZoomPinch(e){var t=this.stateProvider,n=t.scale,a=t.options,o=a.limitToBounds,s=a.limitToWrapper,l=t.scalePadding,u=l.disabled,d=l.size,f=t.wheel.limitsOnWheel,m=t.pinch,h=this.state.contentComponent;if(!(m.disabled||this.stateProvider.options.disabled)&&(e.cancelable&&(e.preventDefault(),e.stopPropagation()),this.pinchStartDistance!==null)){var v=calculateMidpoint(e,n,h),y=v.mouseX,b=v.mouseY;if(!(checkIfInfinite(y)||checkIfInfinite(b))){var x=getCurrentDistance(e),S=calculatePinchZoom.call(this,x,this.pinchStartDistance);if(!(checkIfInfinite(S)||S===n)){var C=handleCalculateBounds.call(this,S,s),T=o&&(u||d===0||f),E=handleCalculatePositions.call(this,y,b,S,C,T),D=E.x,O=E.y;this.lastDistance=x,this.stateProvider.positionX=D,this.stateProvider.positionY=O,this.stateProvider.scale=S,this.stateProvider.previousScale=n,this.applyTransformation()}}}}var throttleTime=30;function velocityTimeSpeed(e,t){return this.stateProvider.pan.velocityEqualToMove?t-t/Math.max(1,e):t}function handleEnableVelocity(){this.setState({startAnimation:!1})}function handleFireVelocity(){this.setState({startAnimation:!0})}function animateVelocity(){var e=this,t=this.stateProvider,n=t.positionX,a=t.positionY,o=t.options.limitToBounds,s=t.pan,l=s.velocityBaseTime,u=s.lockAxisX,d=s.lockAxisY,f=s.velocityAnimationType,m=s.panReturnAnimationTime,h=s.panReturnAnimationType,v=s.padding,y=s.paddingSize,b=t.wrapperComponent;if(this.mounted){if(!this.velocity||!this.bounds)return handleDisableAnimation.call(this);var x=this.bounds,S=x.maxPositionX,C=x.minPositionX,T=x.maxPositionY,E=x.minPositionY,D=this.velocity,O=D.velocityX,k=D.velocityY,j=D.velocity,M=velocityTimeSpeed.call(this,j,l);if(!M){handlePanningAnimation.call(this);return}var N=O,F=k,I=M>m?M:m,L=v?y:0,R=b?L*b.offsetWidth/100:0,z=b?L*b.offsetHeight/100:0,B=S+R,V=C-R,H=T+z,U=E-z,W=checkPositionBounds(n,a,this.bounds,o,L,b),G=new Date().getTime();animate.call(this,f,I,function(t){var s=new Date().getTime()-G,l=s/m,f=availableAnimations[h],v=f(l);(s>m||v>1||v===1/0||v===-1/0)&&(v=1);var y=getPosition(u,N,t,v,C,S,o,n,W.x,V,B),b=getPosition(d,F,t,v,E,T,o,a,W.y,U,H);(n!==y||a!==b)&&(e.stateProvider.positionX=y,e.stateProvider.positionY=b,e.applyTransformation())})}}function calculateVelocityStart(e){var t=this,n=this.stateProvider,a=n.scale,o=n.options.disabled,s=n.pan,l=s.velocity,u=s.velocitySensitivity,d=s.velocityActiveScale,f=s.velocityMinSpeed,m=n.wrapperComponent;if(!(!l||d>=a||o)){handleEnableVelocity.call(this);var h=Date.now();if(this.lastMousePosition){var v=getClientPosition(e);if(!v)return console.error(`No mouse or touch position detected`);var y=v.clientX,b=v.clientY,x=y-this.lastMousePosition.clientX,S=b-this.lastMousePosition.clientY,C=h-this.velocityTime,T=2-m.offsetWidth/window.innerWidth,E=2-m.offsetHeight/window.innerHeight,D=20*Math.max(f,Math.min(2,T)),O=20*Math.max(f,Math.min(2,E)),k=x/C*u*a*D,j=S/C*u*a*O,M=x*x+S*S,N=Math.sqrt(M)/C*u;if(this.velocity&&N<this.velocity.velocity&&this.throttle)return;this.velocity={velocityX:k,velocityY:j,velocity:N},this.throttle&&clearTimeout(this.throttle),this.throttle=setTimeout(function(){t.mounted&&(t.throttle=!1)},throttleTime)}var F=getClientPosition(e);this.lastMousePosition=F,this.velocityTime=h}}function getPosition(e,t,n,a,o,s,l,u,d,f,m){if(l){if(d>o&&u>s){var h=d-(d-s)*a;return h>m?m:h<s?s:h}if(d<o&&u<o){var h=d-(d-o)*a;return h<f?f:h>o?o:h}}return e?d:boundLimiter(u+t*n,o,s,l)}function makePassiveEventOption(e){return e}var propsList=`previousScale.scale.positionX.positionY.defaultPositionX.defaultPositionY.defaultScale.onWheelStart.onWheel.onWheelStop.onPanningStart.onPanning.onPanningStop.onPinchingStart.onPinching.onPinchingStop.onZoomChange.options.wheel.scalePadding.pan.pinch.zoomIn.zoomOut.doubleClick.reset`.split(`.`),getValidPropsFromObject=function(e){return Object.keys(e).reduce(function(t,n){return propsList.includes(n)&&(t[n]=e[n]),t},{})},Context=import_react$24.createContext({}),wheelStopEventTimer=null,wheelStopEventTime=180,wheelAnimationTimer=null,wheelAnimationTime=100,StateProvider=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.mounted=!0,t.state={wrapperComponent:void 0,contentComponent:void 0},t.stateProvider=__assign$1(__assign$1(__assign$1(__assign$1({},initialState),mergeProps(initialState,t.props.dynamicValues)),t.props.defaultValues),{previousScale:t.props.dynamicValues.scale||t.props.defaultValues.scale||initialState.scale}),t.windowToWrapperScaleX=0,t.windowToWrapperScaleY=0,t.startCoords=null,t.isDown=!1,t.pinchStartDistance=null,t.lastDistance=null,t.pinchStartScale=null,t.distance=null,t.bounds=null,t.velocityTime=null,t.lastMousePosition=null,t.velocity=null,t.offsetX=null,t.offsetY=null,t.throttle=!1,t.previousWheelEvent=null,t.lastScale=null,t.animate=null,t.animation=null,t.maxBounds=null,t.handleWheel=function(e){var n=t.stateProvider,a=n.scale,o=n.wheel,s=o.disabled,l=o.wheelEnabled,u=o.touchPadEnabled,d=t.props,f=d.onWheelStart,m=d.onWheel,h=d.onWheelStop,v=t.state,y=v.wrapperComponent,b=v.contentComponent;t.isDown||s||t.stateProvider.options.disabled||!y||!b||!l&&!e.ctrlKey||!u&&e.ctrlKey||(wheelStopEventTimer||(t.lastScale=a,handleDisableAnimation.call(t),handleCallback(f,t.getCallbackProps())),handleWheelZoom.call(t,e),handleCallback(m,t.getCallbackProps()),t.applyTransformation(null,null,null),t.previousWheelEvent=e,handleWheelStop(t.previousWheelEvent,e,t.stateProvider)&&(clearTimeout(wheelStopEventTimer),wheelStopEventTimer=setTimeout(function(){t.mounted&&(handleCallback(h,t.getCallbackProps()),wheelStopEventTimer=null)},wheelStopEventTime)),t.animate=!1,t.lastScale=t.stateProvider.scale,clearTimeout(wheelAnimationTimer),wheelAnimationTimer=setTimeout(function(){t.mounted&&handlePaddingAnimation$1.call(t,e)},wheelAnimationTime))},t.checkPanningTarget=function(e){var n=t.stateProvider.pan.disableOnTarget;return n.map(function(e){return e.toUpperCase()}).includes(e.target.tagName)||n.find(function(t){return e.target.classList.value.includes(t)})},t.checkIsPanningActive=function(e){var n=t.stateProvider.pan.disabled,a=t.state,o=a.wrapperComponent,s=a.contentComponent;return!t.isDown||n||t.stateProvider.options.disabled||e.touches&&(e.touches.length!==1||Math.abs(t.startCoords.x-e.touches[0].clientX)<1||Math.abs(t.startCoords.y-e.touches[0].clientY)<1)||!o||!s},t.handleSetUpPanning=function(e,n){var a=t.stateProvider,o=a.positionX,s=a.positionY;t.isDown=!0,t.startCoords={x:e-o,y:n-s},handleCallback(t.props.onPanningStart,t.getCallbackProps())},t.handleStartPanning=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.scale,s=n.options,l=s.minScale,u=s.maxScale,d=s.limitToWrapper,f=n.pan.disabled,m=e.target,h=e.touches;f||t.stateProvider.options.disabled||a&&!a.contains(m)||t.checkPanningTarget(e)||o<l||o>u||(handleDisableAnimation.call(t),t.bounds=handleCalculateBounds.call(t,o,d),h&&h.length===1&&t.handleSetUpPanning(h[0].clientX,h[0].clientY),h||t.handleSetUpPanning(e.clientX,e.clientY))},t.handlePanning=function(e){t.isDown&&e.preventDefault(),!t.checkIsPanningActive(e)&&(e.stopPropagation(),calculateVelocityStart.call(t,e),handlePanning.call(t,e),handleCallback(t.props.onPanning,t.getCallbackProps()))},t.handleStopPanning=function(){if(t.isDown){t.isDown=!1,t.animate=!1,t.animation=!1,handleFireVelocity.call(t),handleCallback(t.props.onPanningStop,t.getCallbackProps());var e=t.stateProvider,n=e.pan.velocity,a=e.scale;t.velocity&&n&&a>1?animateVelocity.call(t):handlePanningAnimation.call(t)}},t.handlePinchStart=function(e){var n=t.stateProvider.scale;e.preventDefault(),e.stopPropagation(),handleDisableAnimation.call(t);var a=getDistance(e.touches[0],e.touches[1]);t.pinchStartDistance=a,t.lastDistance=a,t.pinchStartScale=n,t.isDown=!1,handleCallback(t.props.onPinchingStart,t.getCallbackProps())},t.handlePinch=function(e){t.isDown=!1,handleZoomPinch.call(t,e),handleCallback(t.props.onPinching,t.getCallbackProps())},t.handlePinchStop=function(){typeof t.pinchStartScale==`number`&&(t.isDown=!1,t.velocity=null,t.lastDistance=null,t.pinchStartScale=null,t.pinchStartDistance=null,handlePaddingAnimation$1.call(t),handleCallback(t.props.onPinchingStop,t.getCallbackProps()))},t.handleTouchStart=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=n.scale,l=n.options,u=l.disabled,d=l.minScale,f=e.touches;if(!(u||!a||!o||s<d)){if(handleDisableAnimation.call(t),f&&f.length===1)return t.handleStartPanning(e);if(f&&f.length===2)return t.handlePinchStart(e)}},t.handleTouch=function(e){var n=t.stateProvider,a=n.pan,o=n.pinch;if(!n.options.disabled){if(!a.disabled&&e.touches.length===1)return t.handlePanning(e);if(!o.disabled&&e.touches.length===2)return t.handlePinch(e)}},t.handleTouchStop=function(){t.handleStopPanning(),t.handlePinchStop()},t.zoomIn=function(e){var n=t.stateProvider,a=n.zoomIn,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom in function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,1,s)},t.zoomOut=function(e){var n=t.stateProvider,a=n.zoomOut,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom out function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,-1,s)},t.handleDbClick=function(e){var n=t.stateProvider,a=n.options,o=n.doubleClick,s=o.disabled,l=o.step,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Double click function requires event prop`);s||a.disabled||!d||!f||handleDoubleClick.call(t,e,1,l)},t.setScale=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options.disabled,f=t.state,m=f.wrapperComponent,h=f.contentComponent;if(!(d||!m||!h)){var v={positionX:s,positionY:l,scale:isNaN(e)?u:e};animateComponent.call(t,{targetState:v,speed:n,type:a})}},t.setPositionX=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:isNaN(e)?s:e,positionY:l,scale:u};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setPositionY=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.scale,u=o.positionY,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:s,positionY:isNaN(e)?u:e,scale:l};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setTransform=function(e,n,a,o,s){o===void 0&&(o=200),s===void 0&&(s=`easeOut`);var l=t.stateProvider,u=l.positionX,d=l.positionY,f=l.scale,m=l.options,h=m.disabled,v=m.transformEnabled,y=t.state,b=y.wrapperComponent,x=y.contentComponent;if(!(h||!v||!b||!x)){var S={positionX:isNaN(e)?u:e,positionY:isNaN(n)?d:n,scale:isNaN(a)?f:a};animateComponent.call(t,{targetState:S,speed:o,type:s})}},t.resetTransform=function(){var e=t.stateProvider.options,n=e.disabled,a=e.transformEnabled;n||!a||resetTransformations.call(t)},t.setDefaultState=function(){t.animation=null,t.stateProvider=__assign$1(__assign$1(__assign$1({},t.stateProvider),{scale:initialState.scale,positionX:initialState.positionX,positionY:initialState.positionY}),t.props.defaultValues),t.forceUpdate()},t.setWrapperComponent=function(e){t.setState({wrapperComponent:e})},t.setContentComponent=function(e){t.setState({contentComponent:e},function(){var n=t.stateProvider,a=n.wrapperComponent,o=n.options,s=o.centerContent,l=o.limitToBounds,u=o.limitToWrapper,d=n.scale,f=t.props.defaultValues,m=f.positionX,h=f.positionY;if(l&&!u||s&&!m&&!h){var v=`translate(25%, 25%) scale(`+d+`)`;e.style.transform=v,e.style.WebkitTransform=v,t.forceUpdate();var y=new Date().getTime(),b=2e3,x=setInterval(function(){if(a.offsetWidth){var e=handleCalculateBounds.call(t,d,!1);t.stateProvider.positionX=e.minPositionX,t.stateProvider.positionY=e.minPositionY,t.applyTransformation(null,null,null),clearInterval(x),x=null}else new Date().getTime()-y>b&&(clearInterval(x),x=null)},20)}else t.applyTransformation(null,null,null)})},t.applyTransformation=function(e,n,a){if(t.mounted){var o=t.state.contentComponent,s=t.props.onZoomChange,l=t.stateProvider,u=l.previousScale,d=l.scale,f=l.positionX,m=l.positionY;if(!o)return console.error(`There is no content component`);var h=`translate(`+(n||f)+`px, `+(a||m)+`px) scale(`+(e||d)+`)`;o.style.transform=h,o.style.WebkitTransform=h,t.forceUpdate(),s&&u!==d&&handleCallback(s,t.getCallbackProps())}},t.getCallbackProps=function(){return getValidPropsFromObject(t.stateProvider)},t}return t.prototype.componentDidMount=function(){var e=makePassiveEventOption(!1);window.addEventListener(`mousedown`,this.handleStartPanning,e),window.addEventListener(`mousemove`,this.handlePanning,e),window.addEventListener(`mouseup`,this.handleStopPanning,e)},t.prototype.componentWillUnmount=function(){var e=makePassiveEventOption(!1);window.removeEventListener(`mousedown`,this.handleStartPanning,e),window.removeEventListener(`mousemove`,this.handlePanning,e),window.removeEventListener(`mouseup`,this.handleStopPanning,e),handleDisableAnimation.call(this)},t.prototype.componentDidUpdate=function(e,t){var n=this.state,a=n.wrapperComponent,o=n.contentComponent,s=this.props.dynamicValues;if(!t.contentComponent&&o&&(this.stateProvider.contentComponent=o),!t.wrapperComponent&&a&&a!==void 0){this.stateProvider.wrapperComponent=a,this.windowToWrapperScaleX=getWindowScaleX(a),this.windowToWrapperScaleY=getWindowScaleY(a);var l=makePassiveEventOption(!1);a.addEventListener(`wheel`,this.handleWheel,l),a.addEventListener(`dblclick`,this.handleDbClick,l),a.addEventListener(`touchstart`,this.handleTouchStart,l),a.addEventListener(`touchmove`,this.handleTouch,l),a.addEventListener(`touchend`,this.handleTouchStop,l)}(a&&o||e.dynamicValues!==s)&&(this.maxBounds=handleCalculateBounds.call(this,this.stateProvider.scale,this.stateProvider.options.limitToWrapper)),e.dynamicValues&&e.dynamicValues!==s&&(this.animation=null,this.stateProvider=__assign$1(__assign$1({},this.stateProvider),mergeProps(this.stateProvider,s)),this.applyTransformation(null,null,null))},t.prototype.render=function(){var e=this.state,t=e.wrapperComponent,n=e.contentComponent,a={loaded:!!(t&&n),state:this.getCallbackProps(),dispatch:{setScale:this.setScale,setPositionX:this.setPositionX,setPositionY:this.setPositionY,zoomIn:this.zoomIn,zoomOut:this.zoomOut,setTransform:this.setTransform,resetTransform:this.resetTransform,setDefaultState:this.setDefaultState},nodes:{setWrapperComponent:this.setWrapperComponent,setContentComponent:this.setContentComponent}},o=this.props.children,s=typeof o==`function`?o(__assign$1(__assign$1({},a.state),a.dispatch)):o;return import_react$24.createElement(Context.Provider,{value:a},s)},t}(import_react$24.Component),TransformWrapper=function(e){var t=e.children,n=e.defaultPositionX,a=e.defaultPositionY,o=e.defaultScale,s=e.onWheelStart,l=e.onWheel,u=e.onWheelStop,d=e.onPanningStart,f=e.onPanning,m=e.onPanningStop,h=e.onPinchingStart,v=e.onPinching,y=e.onPinchingStop,b=e.onZoomChange,x=__rest$1(e,[`children`,`defaultPositionX`,`defaultPositionY`,`defaultScale`,`onWheelStart`,`onWheel`,`onWheelStop`,`onPanningStart`,`onPanning`,`onPanningStop`,`onPinchingStart`,`onPinching`,`onPinchingStop`,`onZoomChange`]),S=__assign$1({},x);return S.options&&S.options.limitToWrapper&&(S.options.limitToBounds=!0),import_react$24.createElement(StateProvider,{defaultValues:deleteUndefinedProps({positionX:n,positionY:a,scale:o}),dynamicValues:deleteUndefinedProps(getValidPropsFromObject(S)),onWheelStart:s,onWheel:l,onWheelStop:u,onPanningStart:d,onPanning:f,onPanningStop:m,onPinchingStart:h,onPinching:v,onPinchingStop:y,onZoomChange:b},t)};function styleInject(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document>`u`)){var a=document.head||document.getElementsByTagName(`head`)[0],o=document.createElement(`style`);o.type=`text/css`,n===`top`&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var css=`.TransformComponent-module_container__3NwNd {
|
|
730
730
|
position: relative;
|
|
731
731
|
width: fit-content;
|
|
732
732
|
height: fit-content;
|
|
@@ -752,7 +752,7 @@ Create a new `,"processor first, by invoking it: use `processor()` instead of ",
|
|
|
752
752
|
.TransformComponent-module_content__TZU5O img {
|
|
753
753
|
pointer-events: none;
|
|
754
754
|
}
|
|
755
|
-
`,styles={container:`TransformComponent-module_container__3NwNd`,content:`TransformComponent-module_content__TZU5O`};styleInject(css);var TransformComponent=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.wrapperRef=import_react$24.createRef(),t.contentRef=import_react$24.createRef(),t}return t.prototype.componentDidMount=function(){var e=this.context.nodes;e.setWrapperComponent(this.wrapperRef.current),e.setContentComponent(this.contentRef.current)},t.prototype.render=function(){var e=this.props.children,t=this.context.state,n=t.positionX,a=t.positionY,o=t.scale,s=t.options,l=s.wrapperClass,u=s.contentClass,d={WebkitTransform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`,transform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`};return import_react$24.createElement(`div`,{ref:this.wrapperRef,className:`react-transform-component `+styles.container+` `+l},import_react$24.createElement(`div`,{ref:this.contentRef,className:`react-transform-element `+styles.content+` `+u,style:d},e))},t}(import_react$24.Component);TransformComponent.contextType=Context;var{CHOP:CHOP$1,CLEANUP:CLEANUP$2,HARVEST:HARVEST$2,HARVEST_FRUIT:HARVEST_FRUIT$1,MINE:MINE$2,WATER:WATER$2}=fieldMode,{FIELD,FOREST}=stageFocusType,tools={wateringCan:{alt:WATERING_CAN_ALT_TEXT,fieldKey:`shift+1`,fieldMode:WATER$2,hiddenText:WATERING_CAN_HIDDEN_TEXT,id:`watering-can`,levelInfo:TOOL_LEVEL_INFO.WATERING_CAN,order:1,screens:[FIELD],type:toolType.WATERING_CAN},scythe:{alt:SCYTHE_ALT_TEXT,fieldKey:`shift+2`,fieldMode:HARVEST$2,hiddenText:SCYTHE_HIDDEN_TEXT,id:`scythe`,levelInfo:TOOL_LEVEL_INFO.SCYTHE,order:2,screens:[FIELD],type:toolType.SCYTHE},hoe:{alt:HOE_ALT_TEXT,fieldKey:`shift+3`,fieldMode:CLEANUP$2,hiddenText:HOE_HIDDEN_TEXT,id:`hoe`,levelInfo:TOOL_LEVEL_INFO.HOE,order:3,screens:[FIELD],type:toolType.HOE},shovel:{alt:SHOVEL_ALT_TEXT,fieldKey:`shift+4`,fieldMode:MINE$2,hiddenText:SHOVEL_HIDDEN_TEXT,id:`shovel`,levelInfo:TOOL_LEVEL_INFO.SHOVEL,order:4,screens:[FIELD],type:toolType.SHOVEL},axe:{alt:AXE_ALT_TEXT,fieldKey:`shift+5`,fieldMode:CHOP$1,hiddenText:AXE_HIDDEN_TEXT,id:`axe`,levelInfo:TOOL_LEVEL_INFO.AXE,order:5,screens:[FOREST],type:toolType.AXE},pickerPole:{alt:PICKER_POLE_ALT_TEXT,fieldKey:`shift+6`,fieldMode:HARVEST_FRUIT$1,hiddenText:PICKER_POLE_HIDDEN_TEXT,id:`picker-pole`,levelInfo:TOOL_LEVEL_INFO.PICKER_POLE,order:6,screens:[FOREST],type:toolType.PICKER_POLE}},dirt_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAACA0lEQVRYR6WXwWrEMAxEHViWQr+vp576ab332F8rlKWQ4lCHeKLnkdNclk1iWRqPZpTl47WsX49Snu+ltN+n+618P35K+3XP9f3yd1Gc9rzFPf5fakL1hm6qQa8mpUVGSVQw2rUnFCXlFjcEtGJNnoqJ3ls+325rPR69skHd8VIcKmJDKLu5InaqwtygfY5I7wjRWRPRqUIiNL2vCG8IUZfQ2btkXFKj7jtxSInquo1OiSTDcbVDiCpzxL2KcKRHO0IaVJGiFv9vsopY12UOTkqSkqIiSYTr/sv7S1mrUuqZO+I6RHV9llMhh5wuOSSVi474nQ41hLIVkTg6iaAiNPnOyxRWJwGuu2ZpsHGouT0tniWmG2HoJNo+HYecV7n5iHTMjTahl9FmmmT2WLOcUVoMEcoOZWQvxMHRUHByexrKiMCuO0dGWtdq0UOEssfodIsaJhJfnIdIqd3mkWEekaDn7f6leciNpU4qRkmh28+2MHUVEZukIPQyNxeRFMwacqR7nXWMztopueMctbomFc5DjrhkD7NdGSWJX66kyKRTxInMp09NrPMyt4mbZ2YRHSF8cntqWWcDVFS2+0K3J3twycwSegqhkfEdn7nJMRsnnBiJwGSMo6+GYyLZwf64Zv/qcHOPSyKbvIsT6pALTpxxOuS6scY9uX1WUZ2+ULe6BvgFS/BfKlY4GqkAAAAASUVORK5CYIIA`,getGrowingPhaseForTimeline=(e,t)=>{let n=Math.floor(t)+1,a=0;for(let t of e){if(n-t<=0)break;n-=t,a+=1}return a},getGrowingPhase=memoize(e=>{let{itemId:t,daysWatered:n=0}=e,{cropTimeline:a=[]}=itemsMap[t];return getGrowingPhaseForTimeline(a,n)},{cacheSize:LARGEST_PURCHASABLE_FIELD_SIZE.columns*LARGEST_PURCHASABLE_FIELD_SIZE.rows}),{SEED:SEED$2,GROWING:GROWING$1,GROWN:GROWN$3}=cropLifeStage,isPlotContent=(e={})=>!!(e&&typeof e==`object`&&`itemId`in e&&`fertilizerType`in e&&e.itemId&&e.fertilizerType),isShoveledPlot=(e={})=>!!(e&&typeof e==`object`&&`isShoveled`in e&&`daysUntilClear`in e&&e.isShoveled&&e.daysUntilClear),isPlotContentACrop=e=>getPlotContentType(e)===itemType.CROP,getPlotImage=(e,t,n)=>{if(isPlotContent(e)){if(isPlotContentACrop(e)){let t;switch(getCropLifeStage(e)){case GROWN$3:t=e.itemId;break;case GROWING$1:let n=getGrowingPhase(e);t=`${e.itemId}-growing-${n}`;break;default:t=cropItemIdToSeedItemMap[e.itemId].id}return items[t]}if(getPlotContentType(e)===itemType.WEED){let e=[`yellow`,`orange`,`pink`];return items[`weed-${e[t*n%e.length]}`]}return items[e.itemId]}return isShoveledPlot(e)&&e?.oreId?items[e.oreId]:null},colorGenericHighlight$1=`rgba(255, 255, 255, 0.8)`,getBackgroundStyles=e=>{if(!e)return;let t=[];return e.fertilizerType===fertilizerType.STANDARD?t.push(`url(${plotStates[`fertilized-plot`]})`):e.fertilizerType===fertilizerType.RAINBOW&&t.push(`url(${plotStates[`rainbow-fertilized-plot`]})`),`wasWateredToday`in e&&e.wasWateredToday?t.push(`url(${plotStates[`watered-plot`]})`):`isShoveled`in e&&e.isShoveled&&t.push(`url(${plotStates[`shoveled-plot`]})`),t.length>0?t.join(`, `):void 0},getDaysLeftToMature=e=>e&&e.daysWatered>-1&&getPlotContentType(e)===itemType.CROP?Math.max(0,Math.ceil((getCropLifecycleDuration(e?itemsMap[e.itemId]:null)-e.daysWatered)/(1+(e.fertilizerType===fertilizerType.NONE?0:FERTILIZER_BONUS)))):null,Plot=({handlePlotClick:e,isInHoverRange:t,plotContent:n,selectedItemId:a,setHoveredPlot:o,x:s,y:l,image:u,lifeStage:d,canBeHarvested:f})=>{let m=u??getPlotImage(n??null,s??0,l??0)??``,h=d===void 0?n&&getPlotContentType(n)===itemType.CROP&&getCropLifeStage(n)||null:d,v=f===void 0?h===cropLifeStage.GROWN||n&&getPlotContentType(n)===itemType.WEED||!1:f,y=n?itemsMap[n.itemId]:null,b=getDaysLeftToMature(n??null),x=n&&getPlotContentType(n)===itemType.CROP,S=(n?.itemId?itemsMap[n.itemId]:null)?.type===itemType.SCARECROW,[C,T]=(0,import_react$24.useState)(!1),[E,D]=(0,import_react$24.useState)(!!n?.isShoveled);(0,import_react$24.useEffect)(()=>{!E&&n?.isShoveled&&n?.oreId&&T(!0)},[E,n]),(0,import_react$24.useEffect)(()=>{n===null&&(D(!1),T(!1))},[n]);let O=!!(m&&(C||n?.itemId||n&&getPlotContentType(n)===itemType.CROP)),k=null;if(y){let e=n&&getPlotContentType(n)===itemType.CROP&&getCropLifeStage(n)===cropLifeStage.SEED,t=cropItemIdToSeedItemMap[y.id];k=e?t.name:y.name}else if(C||n?.isShoveled){let e=n?.oreId,t=e?itemsMap[e]:null;k=t?SHOVELED_PLOT(``,t):SHOVELED}let j=(0,import_jsx_runtime.jsx)(Div,{className:(0,import_classnames.default)(`Plot`,{"is-empty":!n,"is-in-hover-range":t,crop:x,"can-be-harvested":v,"can-be-fertilized":x&&n?.fertilizerType===fertilizerType.NONE||S&&n?.fertilizerType===fertilizerType.NONE&&a===`rainbow-fertilizer`,"can-be-mined":!n,"is-replantable":n&&y?.isReplantable}),style:{backgroundImage:getBackgroundStyles(n??null)},onClick:()=>e?.(s??0,l??0),onMouseOver:()=>o?.({x:s??null,y:l??null}),sx:{backgroundRepeat:`no-repeat`,backgroundSize:`cover`,border:`solid 1px #000`,flexGrow:1,imageRendering:`pixelated`,"&:hover":{backgroundColor:colorGenericHighlight$1,cursor:`pointer`},"&.is-in-hover-range":{borderColor:colorGenericHighlight$1}},children:(0,import_jsx_runtime.jsx)(Img,{className:(0,import_classnames.default)(`square`,{...x&&{animated:v,heartBeat:v},...C&&{animated:!0,"was-just-shoveled":!0}}),style:{backgroundImage:O?`url(${m})`:void 0},src:pixel_default,alt:k??`Empty plot`,sx:{...squareImgSx,"&.was-just-shoveled":{animationName:`fadeAwayShoveledContent`},"@keyframes fadeAwayShoveledContent":{from:{opacity:1,transform:`translate3d(0, 0, 0) scale(1)`},to:{opacity:0,visibility:`hidden`,transform:`translate3d(0, -100%, 0) scale(0.75)`}}}})});return n?(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,placement:`top`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[k?(0,import_jsx_runtime.jsx)(Typography,{children:k}):null,x&&(0,import_jsx_runtime.jsx)(Typography,{children:b?`Days of watering to mature: ${b}`:`Ready to harvest!`})]}),children:j}):j};function Consumer$13(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Plot,{...t,...n,...e})})}var GridContext=import_react$24.createContext();init_generateUtilityClasses(),init_generateUtilityClass();function getGridUtilityClass(e){return generateUtilityClass(`MuiGrid`,e)}var SPACINGS=[0,1,2,3,4,5,6,7,8,9,10],DIRECTIONS=[`column-reverse`,`column`,`row-reverse`,`row`],WRAPS=[`nowrap`,`wrap-reverse`,`wrap`],GRID_SIZES=[`auto`,!0,1,2,3,4,5,6,7,8,9,10,11,12],gridClasses=generateUtilityClasses(`MuiGrid`,[`root`,`container`,`item`,`zeroMinWidth`,...SPACINGS.map(e=>`spacing-xs-${e}`),...DIRECTIONS.map(e=>`direction-xs-${e}`),...WRAPS.map(e=>`wrap-xs-${e}`),...GRID_SIZES.map(e=>`grid-xs-${e}`),...GRID_SIZES.map(e=>`grid-sm-${e}`),...GRID_SIZES.map(e=>`grid-md-${e}`),...GRID_SIZES.map(e=>`grid-lg-${e}`),...GRID_SIZES.map(e=>`grid-xl-${e}`)]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_breakpoints(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded=[`className`,`columns`,`columnSpacing`,`component`,`container`,`direction`,`item`,`rowSpacing`,`spacing`,`wrap`,`zeroMinWidth`];function getOffset(e){let t=parseFloat(e);return`${t}${String(e).replace(String(t),``)||`px`}`}function generateGrid({theme:e,ownerState:t}){let n;return e.breakpoints.keys.reduce((a,o)=>{let s={};if(t[o]&&(n=t[o]),!n)return a;if(n===!0)s={flexBasis:0,flexGrow:1,maxWidth:`100%`};else if(n===`auto`)s={flexBasis:`auto`,flexGrow:0,flexShrink:0,maxWidth:`none`,width:`auto`};else{let l=resolveBreakpointValues({values:t.columns,breakpoints:e.breakpoints.values}),u=typeof l==`object`?l[o]:l;if(u==null)return a;let d=`${Math.round(n/u*1e8)/1e6}%`,f={};if(t.container&&t.item&&t.columnSpacing!==0){let n=e.spacing(t.columnSpacing);if(n!==`0px`){let e=`calc(${d} + ${getOffset(n)})`;f={flexBasis:e,maxWidth:e}}}s=_extends$3({flexBasis:d,flexGrow:0,maxWidth:d},f)}return e.breakpoints.values[o]===0?Object.assign(a,s):a[e.breakpoints.up(o)]=s,a},{})}function generateDirection({theme:e,ownerState:t}){let n=resolveBreakpointValues({values:t.direction,breakpoints:e.breakpoints.values});return handleBreakpoints({theme:e},n,e=>{let t={flexDirection:e};return e.indexOf(`column`)===0&&(t[`& > .${gridClasses.item}`]={maxWidth:`none`}),t})}function extractZeroValueBreakpointKeys({breakpoints:e,values:t}){let n=``;Object.keys(t).forEach(e=>{n===``&&t[e]!==0&&(n=e)});let a=Object.keys(e).sort((t,n)=>e[t]-e[n]);return a.slice(0,a.indexOf(n))}function generateRowGap({theme:e,ownerState:t}){let{container:n,rowSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{marginTop:0,[`& > .${gridClasses.item}`]:{paddingTop:0}}:{marginTop:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingTop:getOffset(s)}}})}return o}function generateColumnGap({theme:e,ownerState:t}){let{container:n,columnSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{width:`100%`,marginLeft:0,[`& > .${gridClasses.item}`]:{paddingLeft:0}}:{width:`calc(100% + ${getOffset(s)})`,marginLeft:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingLeft:getOffset(s)}}})}return o}function resolveSpacingStyles(e,t,n={}){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[n[`spacing-xs-${String(e)}`]];let a=[];return t.forEach(t=>{let o=e[t];Number(o)>0&&a.push(n[`spacing-${t}-${String(o)}`])}),a}var GridRoot=styled$1(`div`,{name:`MuiGrid`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{container:a,direction:o,item:s,spacing:l,wrap:u,zeroMinWidth:d,breakpoints:f}=n,m=[];a&&(m=resolveSpacingStyles(l,f,t));let h=[];return f.forEach(e=>{let a=n[e];a&&h.push(t[`grid-${e}-${String(a)}`])}),[t.root,a&&t.container,s&&t.item,d&&t.zeroMinWidth,...m,o!==`row`&&t[`direction-xs-${String(o)}`],u!==`wrap`&&t[`wrap-xs-${String(u)}`],...h]}})(({ownerState:e})=>_extends$3({boxSizing:`border-box`},e.container&&{display:`flex`,flexWrap:`wrap`,width:`100%`},e.item&&{margin:0},e.zeroMinWidth&&{minWidth:0},e.wrap!==`wrap`&&{flexWrap:e.wrap}),generateDirection,generateRowGap,generateColumnGap,generateGrid);function resolveSpacingClasses(e,t){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[`spacing-xs-${String(e)}`];let n=[];return t.forEach(t=>{let a=e[t];if(Number(a)>0){let e=`spacing-${t}-${String(a)}`;n.push(e)}}),n}var useUtilityClasses=e=>{let{classes:t,container:n,direction:a,item:o,spacing:s,wrap:l,zeroMinWidth:u,breakpoints:d}=e,f=[];n&&(f=resolveSpacingClasses(s,d));let m=[];return d.forEach(t=>{let n=e[t];n&&m.push(`grid-${t}-${String(n)}`)}),composeClasses({root:[`root`,n&&`container`,o&&`item`,u&&`zeroMinWidth`,...f,a!==`row`&&`direction-xs-${String(a)}`,l!==`wrap`&&`wrap-xs-${String(l)}`,...m]},getGridUtilityClass,t)},Grid=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiGrid`}),{breakpoints:a}=useTheme$1(),o=extendSxProp(n),{className:s,columns:l,columnSpacing:u,component:d=`div`,container:f=!1,direction:m=`row`,item:h=!1,rowSpacing:v,spacing:y=0,wrap:b=`wrap`,zeroMinWidth:x=!1}=o,S=_objectWithoutPropertiesLoose$3(o,_excluded),C=v||y,T=u||y,E=import_react$24.useContext(GridContext),D=f?l||12:E,O={},k=_extends$3({},S);a.keys.forEach(e=>{S[e]!=null&&(O[e]=S[e],delete k[e])});let j=_extends$3({},o,{columns:D,container:f,direction:m,item:h,rowSpacing:C,columnSpacing:T,wrap:b,zeroMinWidth:x,spacing:y},O,{breakpoints:a.keys}),M=useUtilityClasses(j);return(0,import_jsx_runtime.jsx)(GridContext.Provider,{value:D,children:(0,import_jsx_runtime.jsx)(GridRoot,_extends$3({ownerState:j,className:clsx$1(M.root,s),as:d,ref:t},k))})}),ItemList=({handleItemSelectClick:e,items:t,playerInventoryQuantities:n,selectedItemId:a})=>(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`}},children:sortItems(t).map(t=>(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:t.id,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:t.name}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({"is-selected":t.id===a}),color:`primary`,onClick:()=>e(t),variant:t.id===a?`contained`:`text`,sx:{padding:`0.5em`,minWidth:`3.5em`,margin:`0 0.25em`,"&.MuiButton-containedPrimary":{backgroundColor:`#ffb913`,"&:hover":{backgroundColor:`#e5a000`}},"&.MuiButton-textPrimary:hover":{backgroundColor:`#fff7e4`}},children:[(0,import_jsx_runtime.jsx)(Img,{alt:t.name,className:`square`,src:pixel_default,style:{backgroundImage:`url(${items[t.id]})`},sx:{...squareImgSx,...spriteShadowSx}}),(0,import_jsx_runtime.jsx)(P$1,{className:`quantity`,sx:{backgroundColor:`rgba(0, 0, 0, 0.5)`,borderRadius:`1em`,color:`#fff`,fontSize:`0.75em`,lineHeight:`calc(0.75em - 1px)`,minWidth:`0.5em`,padding:`0.5em`,position:`absolute`,right:`-2px`,top:`-2px`},children:integerString(n[t.id])})]})}))});ItemList.propTypes={handleItemSelectClick:import_prop_types$1.func,items:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};var getTools=memoize((e,t)=>{let n=[];for(let a of Object.values(tools))e[a.type]!==toolLevel.UNAVAILABLE&&(t&&!a.screens.includes(t)||n.push(a));return n.sort((e,t)=>e.order-t.order)}),getToolImage=e=>e.level===toolLevel.DEFAULT?tools$1[e.id]:craftedItems[`${e.id}-${e.level.toLowerCase()}`],Toolbelt=({fieldMode:e,handleFieldModeSelect:t,stageFocus:n,toolLevels:a})=>{let o=getTools(a,n);return(0,import_jsx_runtime.jsx)(Div,{className:`Toolbelt`,children:(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`},"& button":{flexGrow:1,margin:`0 0.5em`}},children:o.map(({alt:n,fieldMode:o,fieldKey:s,hiddenText:l,id:u,levelInfo:d,type:f})=>{let m=o===e;return(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:o,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{component:`div`,children:[(0,import_jsx_runtime.jsx)(`p`,{children:n}),(0,import_jsx_runtime.jsx)(import_react_markdown.default,{className:`markdown`,source:d[a[f]]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`(`,s,`)`]})]}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({selected:m}),color:`primary`,onClick:()=>t(o),variant:`text`,sx:m?{border:`1px solid #000`,backgroundColor:`transparent`,"&:hover":{backgroundColor:`#ffffb3`}}:void 0,children:[(0,import_jsx_runtime.jsx)(Img,{className:`square ${u}`,src:pixel_default,style:{backgroundImage:`url(${getToolImage({level:a[f],id:u})})`},sx:squareImgSx,alt:n}),(0,import_jsx_runtime.jsx)(`span`,{className:`visually_hidden`,children:l})]})})})})})};Toolbelt.propTypes={fieldMode:import_prop_types$1.default.string.isRequired,handleFieldModeSelect:import_prop_types$1.default.func},Toolbelt.defaultProps={handleFieldModeSelect:noop$3,toolLevels:{}};function Consumer$12(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Toolbelt,{...t,...n,...e})})}var QuickSelect=({fieldToolInventory:e,handleItemSelectClick:t,isMenuOpen:n=!0,playerInventoryQuantities:a,plantableCropInventory:o,selectedItemId:s})=>(0,import_jsx_runtime.jsx)(Paper,{className:`QuickSelect`,elevation:10,sx:e=>quickSelectSx(e,n),children:(0,import_jsx_runtime.jsxs)(Grid,{container:!0,alignItems:`center`,wrap:`nowrap`,children:[(0,import_jsx_runtime.jsx)(Consumer$12,{}),o.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:o,playerInventoryQuantities:a,selectedItemId:s})]}),e.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:e,playerInventoryQuantities:a,selectedItemId:s})]})]})});QuickSelect.propTypes={fieldToolInventory:import_prop_types$1.array.isRequired,handleItemSelectClick:import_prop_types$1.func,isMenuOpen:import_prop_types$1.bool,plantableCropInventory:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};function Consumer$11(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(QuickSelect,{...t,...n,...e})})}var colorRedDanger=`rgba(255, 0, 0, 0.5)`,colorBlueWater=`rgba(125, 245, 255, 0.6)`,colorBrownFertilize=`rgba(125, 56, 0, 0.75)`,colorGreenOk$1=`rgba(0, 255, 0, 0.5)`,colorYellow=`rgba(255, 255, 0, 0.75)`,obscuringPortraitUiVerticalOffset=215,obscuringLandscapeUiVerticalOffset=395,{CLEANUP:CLEANUP$1,FERTILIZE,HARVEST:HARVEST$1,MINE:MINE$1,OBSERVE,PLANT:PLANT$1,SET_SCARECROW,SET_SPRINKLER,WATER:WATER$1}=fieldMode,zoomKeyMap={zoomIn:[`=`,`plus`],zoomOut:`-`},fieldKeyMap={selectWateringCan:tools.wateringCan.fieldKey,selectScythe:tools.scythe.fieldKey,selectHoe:tools.hoe.fieldKey};tools.shovel&&(fieldKeyMap.selectShovel=tools.shovel.fieldKey);var isInHoverRange=({experience:e,fieldMode:t,hoveredPlotRangeSize:n,hoveredPlot:{x:a,y:o},x:s,y:l})=>{if(a==null||o==null||t===OBSERVE)return!1;let u=n;switch(t){case SET_SPRINKLER:u=getLevelEntitlements(levelAchieved(e)).sprinklerRange;break;case SET_SCARECROW:u=2**53-1;break;default:}let d=2*u,f=a-u,m=o-u,h=f+d,v=m+d;return s>=f&&s<=h&&l>=m&&l<=v},MemoPlot=(0,import_react$24.memo)(e=>{let{hoveredPlot:t,plotContent:n,setHoveredPlot:a,x:o,y:s}=e;return(0,import_jsx_runtime.jsx)(Consumer$13,{hoveredPlot:t,isInHoverRange:isInHoverRange(e),plotContent:n,setHoveredPlot:a,x:o,y:s})},(e,t)=>isInHoverRange(e)===isInHoverRange(t)&&e.plotContent===t.plotContent&&e.hoveredPlotRangeSize===t.hoveredPlotRangeSize),FieldContentWrapper=({fieldContent:e,previousScale:t,resetTransform:n,scale:a,zoomIn:o,zoomOut:s})=>((0,import_react$24.useEffect)(()=>{a===1&&t!==1&&n()},[a,t,n]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:zoomKeyMap,handlers:{zoomIn:o,zoomOut:s}}),(0,import_jsx_runtime.jsx)(TransformComponent,{children:e}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-in-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom In`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom In`,color:`primary`,onClick:o,children:(0,import_jsx_runtime.jsx)(import_ZoomIn.default,{})})})}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-out-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom Out`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom Out`,color:`primary`,onClick:s,children:(0,import_jsx_runtime.jsx)(import_ZoomOut.default,{})})})})]}));FieldContentWrapper.propTypes={fieldContent:import_prop_types$1.element.isRequired};var FieldContent=({columns:e=0,experience:t,field:n,fieldMode:a,handleCombineEnabledChange:o,hoveredPlot:s,hoveredPlotRangeSize:l,isCombineEnabled:u,purchasedCombine:d,rows:f=0,setHoveredPlot:m})=>(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`row-wrapper`,onMouseLeave:()=>m({x:null,y:null}),children:nullArray(f).map((o,u)=>(0,import_jsx_runtime.jsx)(`div`,{className:`row`,children:nullArray(e).map((e,o)=>{let d=n[u][o];return(0,import_jsx_runtime.jsx)(MemoPlot,{experience:t,fieldMode:a,hoveredPlot:s,hoveredPlotRangeSize:l,plotContent:d,setHoveredPlot:m,x:o,y:u},o)})},u))}),d?(0,import_jsx_runtime.jsx)(FormControl,{variant:`standard`,component:`fieldset`,children:(0,import_jsx_runtime.jsx)(FormGroup,{children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:u,onChange:o,name:`is-combine-enabled`}),label:`Automatically harvest crops at the start of every day`})})}):null]});FieldContent.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,hoveredPlot:import_prop_types$1.object.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,purchasedCombine:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired,setHoveredPlot:import_prop_types$1.func.isRequired};var adjustableRangeFieldModes=new Set([CLEANUP$1,FERTILIZE,HARVEST$1,MINE$1,PLANT$1,WATER$1]),RangeSliderValueLabelComponent=({children:e,open:t,value:n})=>(0,import_jsx_runtime.jsx)(Tooltip,{open:t,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{children:[`Range: `,n,` x `,n]}),children:e}),Field=e=>{let{field:t,fieldMode:n,handleFieldActionRangeChange:a,hoveredPlotRangeSize:o,inventory:s,inventoryLimit:l,isMenuOpen:u=!0,purchasedField:d}=e,[f,m]=(0,import_react$24.useState)({x:null,y:null}),[h,v]=(0,import_react$24.useState)(1),[y,b]=(0,import_react$24.useState)(o);(0,import_react$24.useEffect)(()=>{b(o)},[o]);let x=e=>{b(e),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:fieldKeyMap}),(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Field`,{"cleanup-mode":n===CLEANUP$1,"fertilize-mode":n===FERTILIZE,"harvest-mode":n===HARVEST$1,"mine-mode":n===MINE$1,"is-inventory-full":!doesInventorySpaceRemain({inventory:s,inventoryLimit:l}),"plant-mode":n===PLANT$1,"set-scarecrow-mode":n===SET_SCARECROW,"set-sprinkler-mode":n===SET_SPRINKLER,"water-mode":n===WATER$1}),"data-purchased-field":d,"data-testid":`field`,sx:e=>({margin:`0 auto`,"@media (orientation: portrait)":{marginBottom:`10.5em`,[`@media (min-width: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (6/10) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (8/12) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (10/16) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (12/18) - ${obscuringPortraitUiVerticalOffset}px)`}}},"@media (orientation: landscape)":{margin:`5em auto`,[`@media (min-height: ${breakpoints.largePhone}px)`]:{marginTop:`auto`},[`@media (min-height: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (10/6) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (12/8) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (16/10) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (18/12) - ${obscuringLandscapeUiVerticalOffset}px)`}}},"& .row":{display:`flex`,flexDirection:`row`,width:`100%`,"@media (orientation: landscape)":{flexDirection:`column-reverse`}},"& .react-transform-component":{overflow:`visible`,width:`auto`},"& .react-transform-element":{display:`block`,height:`auto`,width:`auto`,"& .row-wrapper":{backgroundImage:`url(${dirt_default})`,border:`solid 1px #000`,backgroundRepeat:`repeat`,backgroundSize:`calc(100% * (1 / 6) * 1.5)`,imageRendering:`pixelated`,display:`flex`,flexDirection:`column`,"@media (orientation: landscape)":{flexDirection:`row`,marginRight:layout.fieldSpaceForRightSideControls}}},'&[data-purchased-field="1"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 8) * 1.5)`},'&[data-purchased-field="2"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 10) * 1.5)`},'&[data-purchased-field="3"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 12) * 1.5)`},"& .slider-wrapper":{alignItems:`center`,background:`rgba(128, 128, 128, 0.5)`,borderRadius:`2em`,bottom:`7.5em`,display:`flex`,left:u?`calc(50vw + ${layout.sidebarWidth} / 2)`:`50%`,padding:`0 1em`,position:`fixed`,transform:`translateX(-50%)`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:`250px`,"@media (orientation: portrait)":{bottom:`13.5em`,display:u?`none`:void 0}},"& .zoom-controls":{position:`fixed`,display:`flex`,flexDirection:`column`,bottom:`1em`,"@media (orientation: portrait)":{display:u?`none`:void 0},"&.zoom-in-wrapper":{right:`0.5em`,"@media (orientation: portrait)":{right:`0.25em`},"@media (orientation: landscape)":{bottom:`5.5em`}},"&.zoom-out-wrapper":{"@media (orientation: portrait)":{left:`0.5em`},"@media (orientation: landscape)":{right:`0.5em`}},[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.25em`},"& button":{margin:`0.5em`}},"& .MuiFormControl-root":{alignItems:`center`,display:`flex`,padding:`1em 0 0`},"&.water-mode .Plot.crop:hover":{backgroundColor:colorBlueWater,cursor:`pointer`},"&.water-mode .Plot.is-in-hover-range":{backgroundColor:colorBlueWater},"&.fertilize-mode .Plot.can-be-fertilized":{backgroundColor:colorBrownFertilize,"&:hover":{cursor:`pointer`}},"&.harvest-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk$1,"&:hover":{cursor:`pointer`}},"&.mine-mode .Plot.can-be-mined":{backgroundColor:colorGreenOk$1,"&:hover":{cursor:`pointer`,borderColor:colorYellow},"&.is-in-hover-range":{borderColor:colorYellow}},"&.cleanup-mode .Plot.crop":{backgroundColor:colorYellow,cursor:`pointer`},"&.harvest-mode.is-inventory-full .Plot.crop.can-be-harvested, &.cleanup-mode.is-inventory-full .Plot.is-replantable":{backgroundColor:colorRedDanger,cursor:`not-allowed`},"&.cleanup-mode .Plot.is-replantable":{backgroundColor:colorGreenOk$1,cursor:`pointer`},"&.cleanup-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk$1,cursor:`auto`},"&.set-sprinkler-mode:hover .Plot:hover, &.set-scarecrow-mode:hover .Plot:hover":{"&.is-empty img":{cursor:`pointer`,opacity:.5},"&:not(.is-empty)":{backgroundColor:colorRedDanger,backgroundImage:`none`,cursor:`not-allowed`}},"&.set-sprinkler-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${sprinkler_default})`},"&.set-scarecrow-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${scarecrow_default})`}}),children:[(0,import_jsx_runtime.jsx)(TransformWrapper,{options:{limitToBounds:!1},reset:{animationTime:0},pan:{disabled:h<=1},zoomIn:{animationTime:0},zoomOut:{animationTime:0},onZoomChange:({scale:e})=>{e>=1&&v(e)},wheel:{disabled:!0},doubleClick:{disabled:!0},children:t=>(0,import_jsx_runtime.jsx)(FieldContentWrapper,{...t,fieldContent:(0,import_jsx_runtime.jsx)(FieldContent,{...e,hoveredPlot:f,setHoveredPlot:m})})}),adjustableRangeFieldModes.has(n)&&(0,import_jsx_runtime.jsx)(`div`,{className:`slider-wrapper`,children:(0,import_jsx_runtime.jsx)(Slider,{marks:!0,max:t.length-1,min:0,onChange:(e,t)=>x(t),step:1,value:y,valueLabelDisplay:`auto`,valueLabelFormat:e=>`${e*2+1}`,components:{ValueLabel:RangeSliderValueLabelComponent}})}),(0,import_jsx_runtime.jsx)(Consumer$11,{})]})]})};Field.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,handleFieldActionRangeChange:import_prop_types$1.func.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,isMenuOpen:import_prop_types$1.bool,purchasedCombine:import_prop_types$1.number.isRequired,purchasedField:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired};function Consumer$10(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Field,{...t,...n,...e})})}var forest_plot_default_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAASxJREFUWIXtlrENg0AMRQ1KC6JhFUZIF9GnzgQZhAmo6REdI7BKmigZICmQE+TznX1AkUj+JXecH98+GwCTyWQy/bYS7cbr+fTaGqzpBjHeQQtzOW7mAYD5o0JgIjEH00851NVjNVY7zmE5MC8QpghhJAhuvZ9yAADve+2YOFBOyigISnKEW1/jYkphyiJzYPYQurVUWWTOZUnpJumruINDz0Pncs8++cPixVrYWrgxWtaS1yGE2qpYRz9ATTckeB0pXGww3xn9lIs3z3EoJnBsSuvqIb7j9KH9urKugdJe5DjEpY46pK2tNSkPduo9nPJ18Nv9CcCMj+Bw1Vgu7VmufZ1/egdscLhiFy2LjA0a06tCA1UNRMFQFJDWHCfNv5AaSALUBjOZTKZ/0Bv5OKQqSRXtTgAAAABJRU5ErkJggg==`,getFruitGrowingPhase=e=>{let{itemId:t,daysSinceLastHarvest:n=0}=e,{fruitTimeline:a=[]}=itemsMap[t]??{};return getGrowingPhaseForTimeline(a,n)},{SEED:SEED$1,GROWN:GROWN$2}=cropLifeStage,getForestFruitImage=e=>{let t=getTreeLifeStage(e);if(t!==GROWN$2)return null;let n=getFruitLifeStage(e,t);return n===SEED$1?null:items[n===GROWN$2?`${e.itemId}-fruit-grown`:`${e.itemId}-fruit-growing-${getFruitGrowingPhase(e)}`]??null},getTreeGrowingPhase=e=>{let{itemId:t,daysOld:n=0,daysGrown:a=n}=e,{treeTimeline:o=[]}=itemsMap[t]??{};return getGrowingPhaseForTimeline(o,a)},{SEED,GROWING,GROWN:GROWN$1,DEAD:DEAD$1}=treeLifeStage,getForestPlotImage=e=>{if(!e)return null;if(isPlantedTree(e)){let t;switch(getTreeLifeStage(e)){case DEAD$1:t=`${e.itemId}-tree-dead`;break;case GROWN$1:t=`${e.itemId}-tree-grown`;break;case GROWING:t=`${e.itemId}-tree-growing-${getTreeGrowingPhase(e)}`;break;case SEED:default:t=`${e.itemId}-tree-sapling-planted`}return items[t]??null}return items[e.forageableId]??null},{GROWN}=cropLifeStage,{DEAD}=treeLifeStage,{CHOP,HARVEST_FRUIT}=fieldMode,{NONE,STANDARD,RAINBOW}=fertilizerType,getForestPlotBackgroundImage=e=>{let t=e===STANDARD?plotStates[`mulched-plot`]:e===RAINBOW?plotStates[`rainbow-mulched-plot`]:null;return[...t?[`url(${t})`]:[],`url(${forest_plot_default_default})`].join(`, `)},colorGenericHighlight=`rgba(255, 255, 255, 0.8)`,colorGreenOk=`rgba(0, 255, 0, 0.5)`,colorYellowCaution=`rgba(255, 220, 0, 0.5)`,getTreeTooltipText=(e,t,n,a,o)=>{if(e===DEAD)return`Dead`;let s=e===GROWN?t===GROWN?`Ready to pick! (${a} ${o??`fruit`})`:`Fruiting...`:`Growing...`;return!n||n===NONE?s:`${s} (${n===RAINBOW?`Rainbow Mulched`:`Mulched`})`},formatWoodRange=([e,t])=>e===t?`${e}`:`${e}-${t}`,getChopActionText=e=>e?`Pick and Chop (destroy)`:`Chop (destroy)`,getChopYieldText=(e,t)=>{if(!e)return``;let n=(itemsMap.wood?.name??`Wood`).toLowerCase(),a=`${formatWoodRange(e)} ${n}`;return t?`${a}, 1 ${t}`:a},ForestPlot=({fieldMode:e,plotContent:t,handleForestPlotClick:n,toolLevels:a,x:o,y:s})=>{let l=isPlantedTree(t),u=l?getTreeLifeStage(t):null,d=l?getFruitLifeStage(t,u??void 0):null,f=d===GROWN,m=l&&e===CHOP,h=f&&e===HARVEST_FRUIT,v=l?itemsMap[t.itemId]:null,y=l?getForestPlotImage(t):null,b=l?getForestFruitImage(t):null,x=l?t.fertilizerType:void 0,S=PICKER_POLE_LEVEL_TO_FRUIT_YIELD[a?.[toolType.PICKER_POLE]]??1,C=m?getChopWoodYieldRange(a?.[toolType.AXE],u===GROWN||u===DEAD):null,T=e=>{e.stopPropagation(),n(o,s)},E=(0,import_jsx_runtime.jsx)(Div,{className:(0,import_classnames.default)(`ForestPlot`,{"is-empty":!t,"can-be-harvested":h,"can-be-chopped":m}),style:{gridColumn:o+1,gridRow:s+1},onClick:()=>n(o,s),sx:{backgroundImage:getForestPlotBackgroundImage(x),backgroundRepeat:`no-repeat`,backgroundSize:`cover`,border:`solid 1px #000`,height:`auto`,imageRendering:`pixelated`,overflow:`visible`,position:`relative`,width:`100%`,aspectRatio:`1`,transform:`translateX(calc(${s%2==0?`-50%`:`50%`} ${s%2==0?`+`:`-`} ${16/2}px))`,"&:hover":{backgroundColor:colorGenericHighlight,cursor:`pointer`},"&.can-be-harvested":{backgroundColor:colorGreenOk,"&:hover":{cursor:`pointer`}},"&.can-be-chopped":{backgroundColor:colorYellowCaution,"&:hover":{cursor:`pointer`}}},children:l&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Div,{"aria-hidden":!0,className:`ForestTreeSprite`,onClick:T,style:{backgroundImage:y?`url(${y})`:void 0},sx:{backgroundPosition:`bottom center`,backgroundRepeat:`no-repeat`,backgroundSize:`contain`,bottom:`50%`,cursor:`pointer`,imageRendering:`pixelated`,left:0,position:`absolute`,width:`100%`,aspectRatio:`1 / 2`}}),b&&(0,import_jsx_runtime.jsx)(Div,{"aria-hidden":!0,className:(0,import_classnames.default)(`ForestTreeSprite`,{...f&&{animated:!0,heartBeat:!0}}),onClick:T,style:{backgroundImage:`url(${b})`},sx:{backgroundPosition:`bottom center`,backgroundRepeat:`no-repeat`,backgroundSize:`contain`,bottom:`50%`,cursor:`pointer`,imageRendering:`pixelated`,left:0,position:`absolute`,width:`100%`,aspectRatio:`1 / 2`}})]})});return t?(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,placement:`top`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[v?(0,import_jsx_runtime.jsxs)(Typography,{children:[v.name,` Tree`]}):null,l&&(0,import_jsx_runtime.jsxs)(Typography,{children:[t.daysOld,` `,t.daysOld===1?`day`:`days`,` old`]}),l&&u&&d&&(m?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Typography,{children:getChopActionText(f)}),(0,import_jsx_runtime.jsx)(Typography,{children:getChopYieldText(C,f?v?.name??null:null)})]}):(0,import_jsx_runtime.jsx)(Typography,{children:getTreeTooltipText(u,d,x,S,v?.name??null)}))]}),children:E}):E};function Consumer$9(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(ForestPlot,{...t,...n,...e})})}var ForestQuickSelect=({mulchInventory:e,handleForestItemSelectClick:t,handleItemSelectClick:n,isMenuOpen:a=!0,playerInventoryQuantities:o,plantableTreeInventory:s,selectedForestItemId:l,selectedItemId:u})=>(0,import_jsx_runtime.jsx)(Paper,{className:`QuickSelect`,elevation:10,sx:e=>quickSelectSx(e,a),children:(0,import_jsx_runtime.jsxs)(Grid,{container:!0,alignItems:`center`,wrap:`nowrap`,children:[(0,import_jsx_runtime.jsx)(Consumer$12,{}),s.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:s,playerInventoryQuantities:o,selectedItemId:l})]}),e.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:n,items:e,playerInventoryQuantities:o,selectedItemId:u})]})]})});ForestQuickSelect.propTypes={mulchInventory:import_prop_types$1.array.isRequired,handleForestItemSelectClick:import_prop_types$1.func,handleItemSelectClick:import_prop_types$1.func,isMenuOpen:import_prop_types$1.bool,plantableTreeInventory:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedForestItemId:import_prop_types$1.string.isRequired,selectedItemId:import_prop_types$1.string.isRequired};function Consumer$8(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(ForestQuickSelect,{...t,...n,...e})})}var Forest=()=>{let{gameState:{forest:e}}=(0,import_react$24.useContext)(FarmhandContext),t=e[0]?.length??0,n=e.length,a=1,o=395,s=`48px`,l=`max(${s}, min(160px, calc((100vh - 395px) / ${n+1}), calc(100% / ${2*Math.max(t,1)})))`,u=`calc(1 * ${l})`,d=90;return(0,import_jsx_runtime.jsxs)(Div,{className:`Forest`,sx:{display:`flex`,height:`100%`,flexDirection:`column`,justifyContent:`center`,margin:`0 auto`,paddingTop:u,"@media (orientation: portrait)":{marginBottom:`10.5em`}},children:[(0,import_jsx_runtime.jsx)(Div,{className:`forest-plots`,sx:{display:`grid`,rowGap:`2%`,columnGap:`calc(${l} - 32px)`,justifyContent:`center`,width:`100%`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{width:`calc(100% - ${layout.fieldSpaceForRightSideControls})`},gridTemplateColumns:`repeat(${t}, minmax(${s}, ${l}))`,paddingLeft:`calc(${l} / 2)`,paddingRight:`calc(${l} / 2)`,transform:`translateY(calc(${u} / -2))`,"@media (orientation: portrait)":{transform:`translateY(calc(${u} / -2 - 90px))`}},children:e.map((e,t)=>e.map((e,n)=>(0,import_jsx_runtime.jsx)(Consumer$9,{plotContent:e,x:n,y:t},`${n},${t}`)))}),(0,import_jsx_runtime.jsx)(Consumer$8,{})]})},isDecember=()=>new Date().getMonth()===11,tslib_es6_exports=__exportAll({__addDisposableResource:()=>__addDisposableResource,__assign:()=>__assign,__asyncDelegator:()=>__asyncDelegator,__asyncGenerator:()=>__asyncGenerator,__asyncValues:()=>__asyncValues,__await:()=>__await,__awaiter:()=>__awaiter,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldIn:()=>__classPrivateFieldIn,__classPrivateFieldSet:()=>__classPrivateFieldSet,__createBinding:()=>__createBinding,__decorate:()=>__decorate,__disposeResources:()=>__disposeResources,__esDecorate:()=>__esDecorate,__exportStar:()=>__exportStar,__extends:()=>__extends,__generator:()=>__generator,__importDefault:()=>__importDefault,__importStar:()=>__importStar,__makeTemplateObject:()=>__makeTemplateObject,__metadata:()=>__metadata,__param:()=>__param,__propKey:()=>__propKey,__read:()=>__read,__rest:()=>__rest,__rewriteRelativeImportExtension:()=>__rewriteRelativeImportExtension,__runInitializers:()=>__runInitializers,__setFunctionName:()=>__setFunctionName,__spread:()=>__spread,__spreadArray:()=>__spreadArray,__spreadArrays:()=>__spreadArrays,__values:()=>__values,default:()=>tslib_es6_default});function __extends(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);extendStatics(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function __rest(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}function __decorate(e,t,n,a){var o=arguments.length,s=o<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,n):a,l;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)s=Reflect.decorate(e,t,n,a);else for(var u=e.length-1;u>=0;u--)(l=e[u])&&(s=(o<3?l(s):o>3?l(t,n,s):l(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function __param(e,t){return function(n,a){t(n,a,e)}}function __esDecorate(e,t,n,a,o,s){function l(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var u=a.kind,d=u===`getter`?`get`:u===`setter`?`set`:`value`,f=!t&&e?a.static?e:e.prototype:null,m=t||(f?Object.getOwnPropertyDescriptor(f,a.name):{}),h,v=!1,y=n.length-1;y>=0;y--){var b={};for(var x in a)b[x]=x===`access`?{}:a[x];for(var x in a.access)b.access[x]=a.access[x];b.addInitializer=function(e){if(v)throw TypeError(`Cannot add initializers after decoration has completed`);s.push(l(e||null))};var S=(0,n[y])(u===`accessor`?{get:m.get,set:m.set}:m[d],b);if(u===`accessor`){if(S===void 0)continue;if(typeof S!=`object`||!S)throw TypeError(`Object expected`);(h=l(S.get))&&(m.get=h),(h=l(S.set))&&(m.set=h),(h=l(S.init))&&o.unshift(h)}else(h=l(S))&&(u===`field`?o.unshift(h):m[d]=h)}f&&Object.defineProperty(f,a.name,m),v=!0}function __runInitializers(e,t,n){for(var a=arguments.length>2,o=0;o<t.length;o++)n=a?t[o].call(e,n):t[o].call(e);return a?n:void 0}function __propKey(e){return typeof e==`symbol`?e:`${e}`}function __setFunctionName(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,"name",{configurable:!0,value:n?`${n} ${t}`:t})}function __metadata(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function __awaiter(e,t,n,a){function o(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,s){function l(e){try{d(a.next(e))}catch(e){s(e)}}function u(e){try{d(a.throw(e))}catch(e){s(e)}}function d(e){e.done?n(e.value):o(e.value).then(l,u)}d((a=a.apply(e,t||[])).next())})}function __generator(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,o,s,l=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return l.next=u(0),l.throw=u(1),l.return=u(2),typeof Symbol==`function`&&(l[Symbol.iterator]=function(){return this}),l;function u(e){return function(t){return d([e,t])}}function d(u){if(a)throw TypeError(`Generator is already executing.`);for(;l&&(l=0,u[0]&&(n=0)),n;)try{if(a=1,o&&(s=u[0]&2?o.return:u[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,u[1])).done)return s;switch(o=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,o=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if((s=n.trys,!(s=s.length>0&&s[s.length-1]))&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(e){u=[6,e],o=0}finally{a=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function __exportStar(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&__createBinding(t,e,n)}function __values(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],a=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&a>=e.length&&(e=void 0),{value:e&&e[a++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function __read(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var a=n.call(e),o,s=[],l;try{for(;(t===void 0||t-->0)&&!(o=a.next()).done;)s.push(o.value)}catch(e){l={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(l)throw l.error}}return s}function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}function __spreadArrays(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var a=Array(e),o=0,t=0;t<n;t++)for(var s=arguments[t],l=0,u=s.length;l<u;l++,o++)a[o]=s[l];return a}function __spreadArray(e,t,n){if(n||arguments.length===2)for(var a=0,o=t.length,s;a<o;a++)(s||!(a in t))&&(s||=Array.prototype.slice.call(t,0,a),s[a]=t[a]);return e.concat(s||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var a=n.apply(e,t||[]),o,s=[];return o=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),u(`next`),u(`throw`),u(`return`,l),o[Symbol.asyncIterator]=function(){return this},o;function l(e){return function(t){return Promise.resolve(t).then(e,h)}}function u(e,t){a[e]&&(o[e]=function(t){return new Promise(function(n,a){s.push([e,t,n,a])>1||d(e,t)})},t&&(o[e]=t(o[e])))}function d(e,t){try{f(a[e](t))}catch(e){v(s[0][3],e)}}function f(e){e.value instanceof __await?Promise.resolve(e.value.v).then(m,h):v(s[0][2],e)}function m(e){d(`next`,e)}function h(e){d(`throw`,e)}function v(e,t){e(t),s.shift(),s.length&&d(s[0][0],s[0][1])}}function __asyncDelegator(e){var t,n;return t={},a(`next`),a(`throw`,function(e){throw e}),a(`return`),t[Symbol.iterator]=function(){return this},t;function a(a,o){t[a]=e[a]?function(t){return(n=!n)?{value:__await(e[a](t)),done:!1}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values==`function`?__values(e):e[Symbol.iterator](),n={},a(`next`),a(`throw`),a(`return`),n[Symbol.asyncIterator]=function(){return this},n);function a(t){n[t]=e[t]&&function(n){return new Promise(function(a,s){n=e[t](n),o(a,s,n.done,n.value)})}}function o(e,t,n,a){Promise.resolve(a).then(function(t){e({value:t,done:n})},t)}}function __makeTemplateObject(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function __importStar(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=ownKeys(e),a=0;a<n.length;a++)n[a]!=="default"&&__createBinding(t,e,n[a]);return __setModuleDefault(t,e),t}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,n,a){if(n===`a`&&!a)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!a:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?a:n===`a`?a.call(e):a?a.value:t.get(e)}function __classPrivateFieldSet(e,t,n,a,o){if(a===`m`)throw TypeError(`Private method is not writable`);if(a===`a`&&!o)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!o:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return a===`a`?o.call(e,n):o?o.value=n:t.set(e,n),n}function __classPrivateFieldIn(e,t){if(t===null||typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Cannot use 'in' operator on non-object`);return typeof e==`function`?t===e:e.has(t)}function __addDisposableResource(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var a,o;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);a=t[Symbol.asyncDispose]}if(a===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);a=t[Symbol.dispose],n&&(o=a)}if(typeof a!=`function`)throw TypeError(`Object not disposable.`);o&&(a=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:a,async:n})}else n&&e.stack.push({async:!0});return t}function __disposeResources(e){function t(t){e.error=e.hasError?new _SuppressedError(t,e.error,`An error was suppressed during disposal.`):t,e.hasError=!0}var n,a=0;function o(){for(;n=e.stack.pop();)try{if(!n.async&&a===1)return a=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var s=n.dispose.call(n.value);if(n.async)return a|=2,Promise.resolve(s).then(o,function(e){return t(e),o()})}else a|=1}catch(e){t(e)}if(a===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return o()}function __rewriteRelativeImportExtension(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,a,o,s){return n?t?`.jsx`:`.js`:a&&(!o||!s)?e:a+o+`.`+s.toLowerCase()+`js`}):e}var extendStatics,__assign,__createBinding,__setModuleDefault,ownKeys,_SuppressedError,tslib_es6_default,init_tslib_es6=__esmMin((()=>{extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},extendStatics(e,t)},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)},__createBinding=Object.create?(function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(`get`in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}):(function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),__setModuleDefault=Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t},ownKeys=function(e){return ownKeys=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},ownKeys(e)},_SuppressedError=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var a=Error(n);return a.name=`SuppressedError`,a.error=e,a.suppressed=t,a},tslib_es6_default={__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__createBinding,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension}})),require_useEffectOnce=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=require_react();e.default=function(e){t.useEffect(e,[])}})),require_useUnmount=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useEffectOnce());e.default=function(e){var t=n.useRef(e);t.current=e,a.default(function(){return function(){return t.current()}})}})),require_useRafState=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useUnmount());e.default=function(e){var t=n.useRef(0),o=n.useState(e),s=o[0],l=o[1],u=n.useCallback(function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame(function(){l(e)})},[]);return a.default(function(){cancelAnimationFrame(t.current)}),[s,u]}})),require_util=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isNavigator=e.isBrowser=e.off=e.on=e.noop=void 0,e.noop=function(){};function t(e){var t=[...arguments].slice(1);e&&e.addEventListener&&e.addEventListener.apply(e,t)}e.on=t;function n(e){var t=[...arguments].slice(1);e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}e.off=n,e.isBrowser=typeof window<`u`,e.isNavigator=typeof navigator<`u`})),require_useWindowSize=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useRafState()),o=require_util();e.default=function(e){var t=e===void 0?{}:e,s=t.initialWidth,l=s===void 0?1/0:s,u=t.initialHeight,d=u===void 0?1/0:u,f=t.onChange,m=a.default({width:o.isBrowser?window.innerWidth:l,height:o.isBrowser?window.innerHeight:d}),h=m[0],v=m[1];return n.useEffect(function(){if(o.isBrowser){var e=function(){var e=window.innerWidth,t=window.innerHeight;v({width:e,height:t}),f&&f(e,t)};return o.on(window,`resize`,e),function(){o.off(window,`resize`,e)}}},[]),h}})),require_react_confetti_min=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a(require_react()):typeof define==`function`&&define.amd?define([`react`],a):typeof e==`object`?e.ReactConfetti=a(require_react()):n.ReactConfetti=a(n.React)})(typeof self<`u`?self:e,(function(e){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t||4&t&&typeof e==`object`&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&typeof e!=`string`)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=2)}([function(t,n){t.exports=e},function(e,t,n){var a={linear:function(e,t,n,a){return(n-t)*e/a+t},easeInQuad:function(e,t,n,a){return(n-t)*(e/=a)*e+t},easeOutQuad:function(e,t,n,a){return-(n-t)*(e/=a)*(e-2)+t},easeInOutQuad:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e+t:-o/2*(--e*(e-2)-1)+t},easeInCubic:function(e,t,n,a){return(n-t)*(e/=a)*e*e+t},easeOutCubic:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e+1)+t},easeInOutCubic:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t},easeInQuart:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e+t},easeOutQuart:function(e,t,n,a){return-(n-t)*((e=e/a-1)*e*e*e-1)+t},easeInOutQuart:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e+t:-o/2*((e-=2)*e*e*e-2)+t},easeInQuint:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e*e+t},easeOutQuint:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e*e*e+1)+t},easeInOutQuint:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e*e+t:o/2*((e-=2)*e*e*e*e+2)+t},easeInSine:function(e,t,n,a){var o=n-t;return-o*Math.cos(e/a*(Math.PI/2))+o+t},easeOutSine:function(e,t,n,a){return(n-t)*Math.sin(e/a*(Math.PI/2))+t},easeInOutSine:function(e,t,n,a){return-(n-t)/2*(Math.cos(Math.PI*e/a)-1)+t},easeInExpo:function(e,t,n,a){return e==0?t:(n-t)*2**(10*(e/a-1))+t},easeOutExpo:function(e,t,n,a){var o=n-t;return e==a?t+o:o*(1-2**(-10*e/a))+t},easeInOutExpo:function(e,t,n,a){var o=n-t;return e===0?t:e===a?t+o:(e/=a/2)<1?o/2*2**(10*(e-1))+t:o/2*(2-2**(-10*--e))+t},easeInCirc:function(e,t,n,a){return-(n-t)*(Math.sqrt(1-(e/=a)*e)-1)+t},easeOutCirc:function(e,t,n,a){return(n-t)*Math.sqrt(1-(e=e/a-1)*e)+t},easeInOutCirc:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?-o/2*(Math.sqrt(1-e*e)-1)+t:o/2*(Math.sqrt(1-(e-=2)*e)+1)+t},easeInElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),-o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)+t)},easeOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),o*2**(-10*e)*Math.sin((e*a-l)*(2*Math.PI)/s)+u+t)},easeInOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a/2)==2?t+u:((s=0)||(s=.3*1.5*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),e<1?o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*-.5+t:o*2**(-10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*.5+u+t)},easeInBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*(e/=a)*e*((o+1)*e-o)+t},easeOutBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*((e=e/a-1)*e*((o+1)*e+o)+1)+t},easeInOutBack:function(e,t,n,a,o){var s=n-t;return o===void 0&&(o=1.70158),(e/=a/2)<1?s/2*(e*e*((1+(o*=1.525))*e-o))+t:s/2*((e-=2)*e*((1+(o*=1.525))*e+o)+2)+t},easeInBounce:function(e,t,n,o){var s=n-t;return s-a.easeOutBounce(o-e,0,s,o)+t},easeOutBounce:function(e,t,n,a){var o=n-t;return(e/=a)<1/2.75?o*(7.5625*e*e)+t:e<2/2.75?o*(7.5625*(e-=1.5/2.75)*e+.75)+t:e<2.5/2.75?o*(7.5625*(e-=2.25/2.75)*e+.9375)+t:o*(7.5625*(e-=2.625/2.75)*e+.984375)+t},easeInOutBounce:function(e,t,n,o){var s=n-t;return e<o/2?.5*a.easeInBounce(2*e,0,s,o)+t:.5*a.easeOutBounce(2*e-o,0,s,o)+.5*s+t}};e.exports=a},function(e,t,n){e.exports=n(3)},function(e,t,n){n.r(t),n.d(t,`ReactConfetti`,(function(){return q}));var a,o,s=n(0),l=n.n(s),u=n(1),d=n.n(u);function f(e,t){return e+Math.random()*(t-e)}function m(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}(function(e){e[e.Circle=0]=`Circle`,e[e.Square=1]=`Square`,e[e.Strip=2]=`Strip`})(a||={}),function(e){e[e.Positive=1]=`Positive`,e[e.Negative=-1]=`Negative`}(o||={});var v=function(){function e(t,n,a,s){(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),h(this,`context`,void 0),h(this,`radius`,void 0),h(this,`x`,void 0),h(this,`y`,void 0),h(this,`w`,void 0),h(this,`h`,void 0),h(this,`vx`,void 0),h(this,`vy`,void 0),h(this,`shape`,void 0),h(this,`angle`,void 0),h(this,`angularSpin`,void 0),h(this,`color`,void 0),h(this,`rotateY`,void 0),h(this,`rotationDirection`,void 0),h(this,`getOptions`,void 0),this.getOptions=n;var l,u,d=this.getOptions(),m=d.colors,v=d.initialVelocityX,y=d.initialVelocityY;this.context=t,this.x=a,this.y=s,this.w=f(5,20),this.h=f(5,20),this.radius=f(5,10),this.vx=typeof v==`number`?f(-v,v):f(v.min,v.max),this.vy=typeof y==`number`?f(-y,0):f(y.min,y.max),this.shape=(l=0,u=2,Math.floor(l+Math.random()*(u-l+1))),this.angle=f(0,360)*Math.PI/180,this.angularSpin=f(-.2,.2),this.color=m[Math.floor(Math.random()*m.length)],this.rotateY=f(0,1),this.rotationDirection=f(0,1)?o.Positive:o.Negative}var t,n,s;return t=e,(n=[{key:`update`,value:function(){var e=this.getOptions(),t=e.gravity,n=e.wind,s=e.friction,l=e.opacity,u=e.drawShape;this.x+=this.vx,this.y+=this.vy,this.vy+=t,this.vx+=n,this.vx*=s,this.vy*=s,this.rotateY>=1&&this.rotationDirection===o.Positive?this.rotationDirection=o.Negative:this.rotateY<=-1&&this.rotationDirection===o.Negative&&(this.rotationDirection=o.Positive);var d=.1*this.rotationDirection;if(this.rotateY+=d,this.angle+=this.angularSpin,this.context.save(),this.context.translate(this.x,this.y),this.context.rotate(this.angle),this.context.scale(1,this.rotateY),this.context.rotate(this.angle),this.context.beginPath(),this.context.fillStyle=this.color,this.context.strokeStyle=this.color,this.context.globalAlpha=l,this.context.lineCap=`round`,this.context.lineWidth=2,u&&typeof u==`function`)u.call(this,this.context);else switch(this.shape){case a.Circle:this.context.beginPath(),this.context.arc(0,0,this.radius,0,2*Math.PI),this.context.fill();break;case a.Square:this.context.fillRect(-this.w/2,-this.h/2,this.w,this.h);break;case a.Strip:this.context.fillRect(-this.w/6,-this.h/2,this.w/3,this.h)}this.context.closePath(),this.context.restore()}}])&&m(t.prototype,n),s&&m(t,s),e}();function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),y(this,`canvas`,void 0),y(this,`context`,void 0),y(this,`getOptions`,void 0),y(this,`x`,0),y(this,`y`,0),y(this,`w`,0),y(this,`h`,0),y(this,`lastNumberOfPieces`,0),y(this,`tweenInitTime`,Date.now()),y(this,`particles`,[]),y(this,`particlesGenerated`,0),y(this,`removeParticleAt`,(function(e){a.particles.splice(e,1)})),y(this,`getParticle`,(function(){var e=f(a.x,a.w+a.x),t=f(a.y,a.h+a.y);return new v(a.context,a.getOptions,e,t)})),y(this,`animate`,(function(){var e=a.canvas,t=a.context,n=a.particlesGenerated,o=a.lastNumberOfPieces,s=a.getOptions(),l=s.run,u=s.recycle,d=s.numberOfPieces,f=s.debug,m=s.tweenFunction,h=s.tweenDuration;if(!l)return!1;var v=a.particles.length,y=u?v:n,b=Date.now();if(y<d){o!==d&&(a.tweenInitTime=b,a.lastNumberOfPieces=d);for(var x=a.tweenInitTime,S=m(b-x>h?h:Math.max(0,b-x),y,d,h),C=Math.round(S-y),T=0;T<C;T++)a.particles.push(a.getParticle());a.particlesGenerated+=C}return f&&(t.font=`12px sans-serif`,t.fillStyle=`#333`,t.textAlign=`right`,t.fillText(`Particles: ${v}`,e.width-10,e.height-20)),a.particles.forEach((function(t,n){t.update(),(t.y>e.height||t.y<-100||t.x>e.width+100||t.x<-100)&&(u&&y<=d?a.particles[n]=a.getParticle():a.removeParticleAt(n))})),v>0||y<d})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.getOptions=n};function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?x(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function C(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E={width:typeof window<`u`?window.innerWidth:300,height:typeof window<`u`?window.innerHeight:200,numberOfPieces:200,friction:.99,wind:0,gravity:.1,initialVelocityX:4,initialVelocityY:10,colors:[`#f44336`,`#e91e63`,`#9c27b0`,`#673ab7`,`#3f51b5`,`#2196f3`,`#03a9f4`,`#00bcd4`,`#009688`,`#4CAF50`,`#8BC34A`,`#CDDC39`,`#FFEB3B`,`#FFC107`,`#FF9800`,`#FF5722`,`#795548`],opacity:1,debug:!1,tweenFunction:d.a.easeInOutQuad,tweenDuration:5e3,recycle:!0,run:!0},D=function(){function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),T(this,`canvas`,void 0),T(this,`context`,void 0),T(this,`_options`,void 0),T(this,`generator`,void 0),T(this,`rafId`,void 0),T(this,`setOptionsWithDefaults`,(function(e){a._options=S(S(S({},{confettiSource:{x:0,y:0,w:a.canvas.width,h:0}}),E),e),Object.assign(a,e.confettiSource)})),T(this,`update`,(function(){var e=a.options,t=e.run,n=e.onConfettiComplete,o=a.canvas,s=a.context;t&&(s.fillStyle=`white`,s.clearRect(0,0,o.width,o.height)),a.generator.animate()?a.rafId=requestAnimationFrame(a.update):(n&&typeof n==`function`&&a.generator.particlesGenerated>0&&n.call(a,a),a._options.run=!1)})),T(this,`reset`,(function(){a.generator&&a.generator.particlesGenerated>0&&(a.generator.particlesGenerated=0,a.generator.particles=[],a.generator.lastNumberOfPieces=0)})),T(this,`stop`,(function(){a.options={run:!1},a.rafId&&=(cancelAnimationFrame(a.rafId),void 0)})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.generator=new b(this.canvas,(function(){return a.options})),this.options=n,this.update()}var t,n,a;return t=e,(n=[{key:`options`,get:function(){return this._options},set:function(e){var t=this._options&&this._options.run,n=this._options&&this._options.recycle;this.setOptionsWithDefaults(e),this.generator&&(Object.assign(this.generator,this.options.confettiSource),typeof e.recycle==`boolean`&&e.recycle&&!1===n&&(this.generator.lastNumberOfPieces=this.generator.particles.length)),typeof e.run==`boolean`&&e.run&&!1===t&&this.update()}}])&&C(t.prototype,n),a&&C(t,a),e}();function O(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if(typeof Symbol<`u`&&Symbol.iterator in Object(e))return Array.from(e)}(e)||I(e)||function(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
755
|
+
`,styles={container:`TransformComponent-module_container__3NwNd`,content:`TransformComponent-module_content__TZU5O`};styleInject(css);var TransformComponent=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.wrapperRef=import_react$24.createRef(),t.contentRef=import_react$24.createRef(),t}return t.prototype.componentDidMount=function(){var e=this.context.nodes;e.setWrapperComponent(this.wrapperRef.current),e.setContentComponent(this.contentRef.current)},t.prototype.render=function(){var e=this.props.children,t=this.context.state,n=t.positionX,a=t.positionY,o=t.scale,s=t.options,l=s.wrapperClass,u=s.contentClass,d={WebkitTransform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`,transform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`};return import_react$24.createElement(`div`,{ref:this.wrapperRef,className:`react-transform-component `+styles.container+` `+l},import_react$24.createElement(`div`,{ref:this.contentRef,className:`react-transform-element `+styles.content+` `+u,style:d},e))},t}(import_react$24.Component);TransformComponent.contextType=Context;var{CHOP:CHOP$1,CLEANUP:CLEANUP$3,HARVEST:HARVEST$2,HARVEST_FRUIT:HARVEST_FRUIT$1,MINE:MINE$2,WATER:WATER$2}=fieldMode,{FIELD,FOREST}=stageFocusType,tools={wateringCan:{alt:WATERING_CAN_ALT_TEXT,fieldKey:`shift+1`,fieldMode:WATER$2,hiddenText:WATERING_CAN_HIDDEN_TEXT,id:`watering-can`,levelInfo:TOOL_LEVEL_INFO.WATERING_CAN,order:1,screens:[FIELD],type:toolType.WATERING_CAN},scythe:{alt:SCYTHE_ALT_TEXT,fieldKey:`shift+2`,fieldMode:HARVEST$2,hiddenText:SCYTHE_HIDDEN_TEXT,id:`scythe`,levelInfo:TOOL_LEVEL_INFO.SCYTHE,order:2,screens:[FIELD],type:toolType.SCYTHE},hoe:{alt:HOE_ALT_TEXT,fieldKey:`shift+3`,fieldMode:CLEANUP$3,hiddenText:HOE_HIDDEN_TEXT,id:`hoe`,levelInfo:TOOL_LEVEL_INFO.HOE,order:3,screens:[FIELD],type:toolType.HOE},shovel:{alt:SHOVEL_ALT_TEXT,fieldKey:`shift+4`,fieldMode:MINE$2,hiddenText:SHOVEL_HIDDEN_TEXT,id:`shovel`,levelInfo:TOOL_LEVEL_INFO.SHOVEL,order:4,screens:[FIELD],type:toolType.SHOVEL},axe:{alt:AXE_ALT_TEXT,fieldKey:`shift+5`,fieldMode:CHOP$1,hiddenText:AXE_HIDDEN_TEXT,id:`axe`,levelInfo:TOOL_LEVEL_INFO.AXE,order:5,screens:[FOREST],type:toolType.AXE},pickerPole:{alt:PICKER_POLE_ALT_TEXT,fieldKey:`shift+6`,fieldMode:HARVEST_FRUIT$1,hiddenText:PICKER_POLE_HIDDEN_TEXT,id:`picker-pole`,levelInfo:TOOL_LEVEL_INFO.PICKER_POLE,order:6,screens:[FOREST],type:toolType.PICKER_POLE}},dirt_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAACA0lEQVRYR6WXwWrEMAxEHViWQr+vp576ab332F8rlKWQ4lCHeKLnkdNclk1iWRqPZpTl47WsX49Snu+ltN+n+618P35K+3XP9f3yd1Gc9rzFPf5fakL1hm6qQa8mpUVGSVQw2rUnFCXlFjcEtGJNnoqJ3ls+325rPR69skHd8VIcKmJDKLu5InaqwtygfY5I7wjRWRPRqUIiNL2vCG8IUZfQ2btkXFKj7jtxSInquo1OiSTDcbVDiCpzxL2KcKRHO0IaVJGiFv9vsopY12UOTkqSkqIiSYTr/sv7S1mrUuqZO+I6RHV9llMhh5wuOSSVi474nQ41hLIVkTg6iaAiNPnOyxRWJwGuu2ZpsHGouT0tniWmG2HoJNo+HYecV7n5iHTMjTahl9FmmmT2WLOcUVoMEcoOZWQvxMHRUHByexrKiMCuO0dGWtdq0UOEssfodIsaJhJfnIdIqd3mkWEekaDn7f6leciNpU4qRkmh28+2MHUVEZukIPQyNxeRFMwacqR7nXWMztopueMctbomFc5DjrhkD7NdGSWJX66kyKRTxInMp09NrPMyt4mbZ2YRHSF8cntqWWcDVFS2+0K3J3twycwSegqhkfEdn7nJMRsnnBiJwGSMo6+GYyLZwf64Zv/qcHOPSyKbvIsT6pALTpxxOuS6scY9uX1WUZ2+ULe6BvgFS/BfKlY4GqkAAAAASUVORK5CYIIA`,getGrowingPhaseForTimeline=(e,t)=>{let n=Math.floor(t)+1,a=0;for(let t of e){if(n-t<=0)break;n-=t,a+=1}return a},getGrowingPhase=memoize(e=>{let{itemId:t,daysWatered:n=0}=e,{cropTimeline:a=[]}=itemsMap[t];return getGrowingPhaseForTimeline(a,n)},{cacheSize:LARGEST_PURCHASABLE_FIELD_SIZE.columns*LARGEST_PURCHASABLE_FIELD_SIZE.rows}),{SEED:SEED$2,GROWING:GROWING$1,GROWN:GROWN$3}=cropLifeStage,isPlotContent=(e={})=>!!(e&&typeof e==`object`&&`itemId`in e&&`fertilizerType`in e&&e.itemId&&e.fertilizerType),isShoveledPlot=(e={})=>!!(e&&typeof e==`object`&&`isShoveled`in e&&`daysUntilClear`in e&&e.isShoveled&&e.daysUntilClear),isPlotContentACrop=e=>getPlotContentType(e)===itemType.CROP,getPlotImage=(e,t,n)=>{if(isPlotContent(e)){if(isPlotContentACrop(e)){let t;switch(getCropLifeStage(e)){case GROWN$3:t=e.itemId;break;case GROWING$1:let n=getGrowingPhase(e);t=`${e.itemId}-growing-${n}`;break;default:t=cropItemIdToSeedItemMap[e.itemId].id}return items[t]}if(getPlotContentType(e)===itemType.WEED){let e=[`yellow`,`orange`,`pink`];return items[`weed-${e[t*n%e.length]}`]}return items[e.itemId]}return isShoveledPlot(e)&&e?.oreId?items[e.oreId]:null},pluralize=(e,t,n=`${e}s`)=>t===1?e:n,colorGenericHighlight$1=`rgba(255, 255, 255, 0.8)`,{CLEANUP:CLEANUP$2}=fieldMode,getBackgroundStyles=e=>{if(!e)return;let t=[];return e.fertilizerType===fertilizerType.STANDARD?t.push(`url(${plotStates[`fertilized-plot`]})`):e.fertilizerType===fertilizerType.RAINBOW&&t.push(`url(${plotStates[`rainbow-fertilized-plot`]})`),`wasWateredToday`in e&&e.wasWateredToday?t.push(`url(${plotStates[`watered-plot`]})`):`isShoveled`in e&&e.isShoveled&&t.push(`url(${plotStates[`shoveled-plot`]})`),t.length>0?t.join(`, `):void 0},getDaysLeftToMature=e=>e&&e.daysWatered>-1&&getPlotContentType(e)===itemType.CROP?Math.max(0,Math.ceil((getCropLifecycleDuration(e?itemsMap[e.itemId]:null)-e.daysWatered)/(1+(e.fertilizerType===fertilizerType.NONE?0:FERTILIZER_BONUS)))):null,Plot=({fieldMode:e,handlePlotClick:t,isInHoverRange:n,plotContent:a,selectedItemId:o,setHoveredPlot:s,x:l,y:u,image:d,lifeStage:f,canBeHarvested:m})=>{let h=d??getPlotImage(a??null,l??0,u??0)??``,v=f===void 0?a&&getPlotContentType(a)===itemType.CROP&&getCropLifeStage(a)||null:f,y=m===void 0?v===cropLifeStage.GROWN||a&&getPlotContentType(a)===itemType.WEED||!1:m,b=a?itemsMap[a.itemId]:null,x=getDaysLeftToMature(a??null),S=a&&getPlotContentType(a)===itemType.CROP,C=(a?.itemId?itemsMap[a.itemId]:null)?.type===itemType.SCARECROW,T=b?.type===itemType.LIGHTNING_ROD,E=T&&b?.lightningStrikeCapacity?(a?.lightningStrikesSustained??0)/b.lightningStrikeCapacity:0,D=!a?.lightningStrikesSustained,O=b?.destructionYield?itemsMap[b.destructionYield.itemId]:null,k=b?.destructionYield?.quantity??0,[j,M]=(0,import_react$24.useState)(!1),[N,F]=(0,import_react$24.useState)(!!a?.isShoveled);(0,import_react$24.useEffect)(()=>{!N&&a?.isShoveled&&a?.oreId&&M(!0)},[N,a]),(0,import_react$24.useEffect)(()=>{a===null&&(F(!1),M(!1))},[a]);let I=!!(h&&(j||a?.itemId||a&&getPlotContentType(a)===itemType.CROP)),L=null;if(b){let e=a&&getPlotContentType(a)===itemType.CROP&&getCropLifeStage(a)===cropLifeStage.SEED,t=cropItemIdToSeedItemMap[b.id];L=e?t.name:b.name}else if(j||a?.isShoveled){let e=a?.oreId,t=e?itemsMap[e]:null;L=t?SHOVELED_PLOT(``,t):SHOVELED}let R=(0,import_jsx_runtime.jsx)(Div,{className:(0,import_classnames.default)(`Plot`,{"is-empty":!a,"is-in-hover-range":n,crop:S,"can-be-harvested":y,"can-be-fertilized":S&&a?.fertilizerType===fertilizerType.NONE||C&&a?.fertilizerType===fertilizerType.NONE&&o===`rainbow-fertilizer`,"can-be-mined":!a,"is-replantable":a&&b?.isReplantable}),style:{backgroundImage:getBackgroundStyles(a??null)},onClick:()=>t?.(l??0,u??0),onMouseOver:()=>s?.({x:l??null,y:u??null}),sx:{backgroundRepeat:`no-repeat`,backgroundSize:`cover`,border:`solid 1px #000`,flexGrow:1,imageRendering:`pixelated`,"&:hover":{backgroundColor:colorGenericHighlight$1,cursor:`pointer`},"&.is-in-hover-range":{borderColor:colorGenericHighlight$1}},children:(0,import_jsx_runtime.jsx)(Img,{className:(0,import_classnames.default)(`square`,{...S&&{animated:y,heartBeat:y},...j&&{animated:!0,"was-just-shoveled":!0},...T&&{"lightning-rod-damaged":E>=.5&&E<.8,"lightning-rod-critical":E>=.8}}),style:{backgroundImage:I?`url(${h})`:void 0},src:pixel_default,alt:L??`Empty plot`,sx:{...squareImgSx,"&.was-just-shoveled":{animationName:`fadeAwayShoveledContent`},"&.lightning-rod-damaged":{filter:`saturate(0.6) brightness(0.85)`},"&.lightning-rod-critical":{filter:`saturate(0.3) brightness(0.7)`},"@keyframes fadeAwayShoveledContent":{from:{opacity:1,transform:`translate3d(0, 0, 0) scale(1)`},to:{opacity:0,visibility:`hidden`,transform:`translate3d(0, -100%, 0) scale(0.75)`}}}})});return a?(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,placement:`top`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[L?(0,import_jsx_runtime.jsx)(Typography,{children:L}):null,S&&(0,import_jsx_runtime.jsx)(Typography,{children:x?`Days of watering to mature: ${x}`:`Ready to harvest!`}),T&&b?.lightningStrikeCapacity&&(0,import_jsx_runtime.jsxs)(Typography,{children:[`Lightning strikes sustained:`,` `,a?.lightningStrikesSustained??0,` /`,` `,b.lightningStrikeCapacity]}),T&&e===CLEANUP$2&&(0,import_jsx_runtime.jsx)(Typography,{children:D&&O?`Destroy and recoup ${k} ${pluralize(`unit`,k)} of ${O.name}`:`Will be destroyed`})]}),children:R}):R};function Consumer$13(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Plot,{...t,...n,...e})})}var GridContext=import_react$24.createContext();init_generateUtilityClasses(),init_generateUtilityClass();function getGridUtilityClass(e){return generateUtilityClass(`MuiGrid`,e)}var SPACINGS=[0,1,2,3,4,5,6,7,8,9,10],DIRECTIONS=[`column-reverse`,`column`,`row-reverse`,`row`],WRAPS=[`nowrap`,`wrap-reverse`,`wrap`],GRID_SIZES=[`auto`,!0,1,2,3,4,5,6,7,8,9,10,11,12],gridClasses=generateUtilityClasses(`MuiGrid`,[`root`,`container`,`item`,`zeroMinWidth`,...SPACINGS.map(e=>`spacing-xs-${e}`),...DIRECTIONS.map(e=>`direction-xs-${e}`),...WRAPS.map(e=>`wrap-xs-${e}`),...GRID_SIZES.map(e=>`grid-xs-${e}`),...GRID_SIZES.map(e=>`grid-sm-${e}`),...GRID_SIZES.map(e=>`grid-md-${e}`),...GRID_SIZES.map(e=>`grid-lg-${e}`),...GRID_SIZES.map(e=>`grid-xl-${e}`)]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_breakpoints(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded=[`className`,`columns`,`columnSpacing`,`component`,`container`,`direction`,`item`,`rowSpacing`,`spacing`,`wrap`,`zeroMinWidth`];function getOffset(e){let t=parseFloat(e);return`${t}${String(e).replace(String(t),``)||`px`}`}function generateGrid({theme:e,ownerState:t}){let n;return e.breakpoints.keys.reduce((a,o)=>{let s={};if(t[o]&&(n=t[o]),!n)return a;if(n===!0)s={flexBasis:0,flexGrow:1,maxWidth:`100%`};else if(n===`auto`)s={flexBasis:`auto`,flexGrow:0,flexShrink:0,maxWidth:`none`,width:`auto`};else{let l=resolveBreakpointValues({values:t.columns,breakpoints:e.breakpoints.values}),u=typeof l==`object`?l[o]:l;if(u==null)return a;let d=`${Math.round(n/u*1e8)/1e6}%`,f={};if(t.container&&t.item&&t.columnSpacing!==0){let n=e.spacing(t.columnSpacing);if(n!==`0px`){let e=`calc(${d} + ${getOffset(n)})`;f={flexBasis:e,maxWidth:e}}}s=_extends$3({flexBasis:d,flexGrow:0,maxWidth:d},f)}return e.breakpoints.values[o]===0?Object.assign(a,s):a[e.breakpoints.up(o)]=s,a},{})}function generateDirection({theme:e,ownerState:t}){let n=resolveBreakpointValues({values:t.direction,breakpoints:e.breakpoints.values});return handleBreakpoints({theme:e},n,e=>{let t={flexDirection:e};return e.indexOf(`column`)===0&&(t[`& > .${gridClasses.item}`]={maxWidth:`none`}),t})}function extractZeroValueBreakpointKeys({breakpoints:e,values:t}){let n=``;Object.keys(t).forEach(e=>{n===``&&t[e]!==0&&(n=e)});let a=Object.keys(e).sort((t,n)=>e[t]-e[n]);return a.slice(0,a.indexOf(n))}function generateRowGap({theme:e,ownerState:t}){let{container:n,rowSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{marginTop:0,[`& > .${gridClasses.item}`]:{paddingTop:0}}:{marginTop:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingTop:getOffset(s)}}})}return o}function generateColumnGap({theme:e,ownerState:t}){let{container:n,columnSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{width:`100%`,marginLeft:0,[`& > .${gridClasses.item}`]:{paddingLeft:0}}:{width:`calc(100% + ${getOffset(s)})`,marginLeft:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingLeft:getOffset(s)}}})}return o}function resolveSpacingStyles(e,t,n={}){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[n[`spacing-xs-${String(e)}`]];let a=[];return t.forEach(t=>{let o=e[t];Number(o)>0&&a.push(n[`spacing-${t}-${String(o)}`])}),a}var GridRoot=styled$1(`div`,{name:`MuiGrid`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{container:a,direction:o,item:s,spacing:l,wrap:u,zeroMinWidth:d,breakpoints:f}=n,m=[];a&&(m=resolveSpacingStyles(l,f,t));let h=[];return f.forEach(e=>{let a=n[e];a&&h.push(t[`grid-${e}-${String(a)}`])}),[t.root,a&&t.container,s&&t.item,d&&t.zeroMinWidth,...m,o!==`row`&&t[`direction-xs-${String(o)}`],u!==`wrap`&&t[`wrap-xs-${String(u)}`],...h]}})(({ownerState:e})=>_extends$3({boxSizing:`border-box`},e.container&&{display:`flex`,flexWrap:`wrap`,width:`100%`},e.item&&{margin:0},e.zeroMinWidth&&{minWidth:0},e.wrap!==`wrap`&&{flexWrap:e.wrap}),generateDirection,generateRowGap,generateColumnGap,generateGrid);function resolveSpacingClasses(e,t){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[`spacing-xs-${String(e)}`];let n=[];return t.forEach(t=>{let a=e[t];if(Number(a)>0){let e=`spacing-${t}-${String(a)}`;n.push(e)}}),n}var useUtilityClasses=e=>{let{classes:t,container:n,direction:a,item:o,spacing:s,wrap:l,zeroMinWidth:u,breakpoints:d}=e,f=[];n&&(f=resolveSpacingClasses(s,d));let m=[];return d.forEach(t=>{let n=e[t];n&&m.push(`grid-${t}-${String(n)}`)}),composeClasses({root:[`root`,n&&`container`,o&&`item`,u&&`zeroMinWidth`,...f,a!==`row`&&`direction-xs-${String(a)}`,l!==`wrap`&&`wrap-xs-${String(l)}`,...m]},getGridUtilityClass,t)},Grid=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiGrid`}),{breakpoints:a}=useTheme$1(),o=extendSxProp(n),{className:s,columns:l,columnSpacing:u,component:d=`div`,container:f=!1,direction:m=`row`,item:h=!1,rowSpacing:v,spacing:y=0,wrap:b=`wrap`,zeroMinWidth:x=!1}=o,S=_objectWithoutPropertiesLoose$3(o,_excluded),C=v||y,T=u||y,E=import_react$24.useContext(GridContext),D=f?l||12:E,O={},k=_extends$3({},S);a.keys.forEach(e=>{S[e]!=null&&(O[e]=S[e],delete k[e])});let j=_extends$3({},o,{columns:D,container:f,direction:m,item:h,rowSpacing:C,columnSpacing:T,wrap:b,zeroMinWidth:x,spacing:y},O,{breakpoints:a.keys}),M=useUtilityClasses(j);return(0,import_jsx_runtime.jsx)(GridContext.Provider,{value:D,children:(0,import_jsx_runtime.jsx)(GridRoot,_extends$3({ownerState:j,className:clsx$1(M.root,s),as:d,ref:t},k))})}),ItemList=({handleItemSelectClick:e,items:t,playerInventoryQuantities:n,selectedItemId:a})=>(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`}},children:sortItems(t).map(t=>(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:t.id,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:t.name}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({"is-selected":t.id===a}),color:`primary`,onClick:()=>e(t),variant:t.id===a?`contained`:`text`,sx:{padding:`0.5em`,minWidth:`3.5em`,margin:`0 0.25em`,"&.MuiButton-containedPrimary":{backgroundColor:`#ffb913`,"&:hover":{backgroundColor:`#e5a000`}},"&.MuiButton-textPrimary:hover":{backgroundColor:`#fff7e4`}},children:[(0,import_jsx_runtime.jsx)(Img,{alt:t.name,className:`square`,src:pixel_default,style:{backgroundImage:`url(${items[t.id]})`},sx:{...squareImgSx,...spriteShadowSx}}),(0,import_jsx_runtime.jsx)(P$1,{className:`quantity`,sx:{backgroundColor:`rgba(0, 0, 0, 0.5)`,borderRadius:`1em`,color:`#fff`,fontSize:`0.75em`,lineHeight:`calc(0.75em - 1px)`,minWidth:`0.5em`,padding:`0.5em`,position:`absolute`,right:`-2px`,top:`-2px`},children:integerString(n[t.id])})]})}))});ItemList.propTypes={handleItemSelectClick:import_prop_types$1.func,items:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};var getTools=memoize((e,t)=>{let n=[];for(let a of Object.values(tools))e[a.type]!==toolLevel.UNAVAILABLE&&(t&&!a.screens.includes(t)||n.push(a));return n.sort((e,t)=>e.order-t.order)}),getToolImage=e=>e.level===toolLevel.DEFAULT?tools$1[e.id]:craftedItems[`${e.id}-${e.level.toLowerCase()}`],Toolbelt=({fieldMode:e,handleFieldModeSelect:t,stageFocus:n,toolLevels:a})=>{let o=getTools(a,n);return(0,import_jsx_runtime.jsx)(Div,{className:`Toolbelt`,children:(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`},"& button":{flexGrow:1,margin:`0 0.5em`}},children:o.map(({alt:n,fieldMode:o,fieldKey:s,hiddenText:l,id:u,levelInfo:d,type:f})=>{let m=o===e;return(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:o,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{component:`div`,children:[(0,import_jsx_runtime.jsx)(`p`,{children:n}),(0,import_jsx_runtime.jsx)(import_react_markdown.default,{className:`markdown`,source:d[a[f]]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`(`,s,`)`]})]}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({selected:m}),color:`primary`,onClick:()=>t(o),variant:`text`,sx:m?{border:`1px solid #000`,backgroundColor:`transparent`,"&:hover":{backgroundColor:`#ffffb3`}}:void 0,children:[(0,import_jsx_runtime.jsx)(Img,{className:`square ${u}`,src:pixel_default,style:{backgroundImage:`url(${getToolImage({level:a[f],id:u})})`},sx:squareImgSx,alt:n}),(0,import_jsx_runtime.jsx)(`span`,{className:`visually_hidden`,children:l})]})})})})})};Toolbelt.propTypes={fieldMode:import_prop_types$1.default.string.isRequired,handleFieldModeSelect:import_prop_types$1.default.func},Toolbelt.defaultProps={handleFieldModeSelect:noop$3,toolLevels:{}};function Consumer$12(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Toolbelt,{...t,...n,...e})})}var QuickSelect=({fieldToolInventory:e,handleItemSelectClick:t,isMenuOpen:n=!0,playerInventoryQuantities:a,plantableCropInventory:o,selectedItemId:s})=>(0,import_jsx_runtime.jsx)(Paper,{className:`QuickSelect`,elevation:10,sx:e=>quickSelectSx(e,n),children:(0,import_jsx_runtime.jsxs)(Grid,{container:!0,alignItems:`center`,wrap:`nowrap`,children:[(0,import_jsx_runtime.jsx)(Consumer$12,{}),o.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:o,playerInventoryQuantities:a,selectedItemId:s})]}),e.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:e,playerInventoryQuantities:a,selectedItemId:s})]})]})});QuickSelect.propTypes={fieldToolInventory:import_prop_types$1.array.isRequired,handleItemSelectClick:import_prop_types$1.func,isMenuOpen:import_prop_types$1.bool,plantableCropInventory:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};function Consumer$11(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(QuickSelect,{...t,...n,...e})})}var colorRedDanger=`rgba(255, 0, 0, 0.5)`,colorBlueWater=`rgba(125, 245, 255, 0.6)`,colorBrownFertilize=`rgba(125, 56, 0, 0.75)`,colorGreenOk$1=`rgba(0, 255, 0, 0.5)`,colorYellow=`rgba(255, 255, 0, 0.75)`,lightningRodImagesByItemId={[basicLightningRod.id]:lightning_rod_basic_default,[superiorLightningRod.id]:lightning_rod_superior_default,[ultimateLightningRod.id]:lightning_rod_ultimate_default},obscuringPortraitUiVerticalOffset=215,obscuringLandscapeUiVerticalOffset=395,{CLEANUP:CLEANUP$1,FERTILIZE,HARVEST:HARVEST$1,MINE:MINE$1,OBSERVE,PLANT:PLANT$1,SET_LIGHTNING_ROD,SET_SCARECROW,SET_SPRINKLER,WATER:WATER$1}=fieldMode,zoomKeyMap={zoomIn:[`=`,`plus`],zoomOut:`-`},fieldKeyMap={selectWateringCan:tools.wateringCan.fieldKey,selectScythe:tools.scythe.fieldKey,selectHoe:tools.hoe.fieldKey};tools.shovel&&(fieldKeyMap.selectShovel=tools.shovel.fieldKey);var isInHoverRange=({experience:e,fieldMode:t,hoveredPlotRangeSize:n,hoveredPlot:{x:a,y:o},x:s,y:l})=>{if(a==null||o==null||t===OBSERVE)return!1;let u=n;switch(t){case SET_SPRINKLER:u=getLevelEntitlements(levelAchieved(e)).sprinklerRange;break;case SET_SCARECROW:case SET_LIGHTNING_ROD:u=2**53-1;break;default:}let d=2*u,f=a-u,m=o-u,h=f+d,v=m+d;return s>=f&&s<=h&&l>=m&&l<=v},MemoPlot=(0,import_react$24.memo)(e=>{let{hoveredPlot:t,plotContent:n,setHoveredPlot:a,x:o,y:s}=e;return(0,import_jsx_runtime.jsx)(Consumer$13,{hoveredPlot:t,isInHoverRange:isInHoverRange(e),plotContent:n,setHoveredPlot:a,x:o,y:s})},(e,t)=>isInHoverRange(e)===isInHoverRange(t)&&e.plotContent===t.plotContent&&e.hoveredPlotRangeSize===t.hoveredPlotRangeSize),FieldContentWrapper=({fieldContent:e,previousScale:t,resetTransform:n,scale:a,zoomIn:o,zoomOut:s})=>((0,import_react$24.useEffect)(()=>{a===1&&t!==1&&n()},[a,t,n]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:zoomKeyMap,handlers:{zoomIn:o,zoomOut:s}}),(0,import_jsx_runtime.jsx)(TransformComponent,{children:e}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-in-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom In`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom In`,color:`primary`,onClick:o,children:(0,import_jsx_runtime.jsx)(import_ZoomIn.default,{})})})}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-out-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom Out`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom Out`,color:`primary`,onClick:s,children:(0,import_jsx_runtime.jsx)(import_ZoomOut.default,{})})})})]}));FieldContentWrapper.propTypes={fieldContent:import_prop_types$1.element.isRequired};var FieldContent=({columns:e=0,experience:t,field:n,fieldMode:a,handleCombineEnabledChange:o,hoveredPlot:s,hoveredPlotRangeSize:l,isCombineEnabled:u,purchasedCombine:d,rows:f=0,setHoveredPlot:m})=>(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`row-wrapper`,onMouseLeave:()=>m({x:null,y:null}),children:nullArray(f).map((o,u)=>(0,import_jsx_runtime.jsx)(`div`,{className:`row`,children:nullArray(e).map((e,o)=>{let d=n[u][o];return(0,import_jsx_runtime.jsx)(MemoPlot,{experience:t,fieldMode:a,hoveredPlot:s,hoveredPlotRangeSize:l,plotContent:d,setHoveredPlot:m,x:o,y:u},o)})},u))}),d?(0,import_jsx_runtime.jsx)(FormControl,{variant:`standard`,component:`fieldset`,children:(0,import_jsx_runtime.jsx)(FormGroup,{children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:u,onChange:o,name:`is-combine-enabled`}),label:`Automatically harvest crops at the start of every day`})})}):null]});FieldContent.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,hoveredPlot:import_prop_types$1.object.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,purchasedCombine:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired,setHoveredPlot:import_prop_types$1.func.isRequired};var adjustableRangeFieldModes=new Set([CLEANUP$1,FERTILIZE,HARVEST$1,MINE$1,PLANT$1,WATER$1]),RangeSliderValueLabelComponent=({children:e,open:t,value:n})=>(0,import_jsx_runtime.jsx)(Tooltip,{open:t,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{children:[`Range: `,n,` x `,n]}),children:e}),Field=e=>{let{field:t,fieldMode:n,handleFieldActionRangeChange:a,hoveredPlotRangeSize:o,inventory:s,inventoryLimit:l,isMenuOpen:u=!0,purchasedField:d,selectedItemId:f}=e,m=lightningRodImagesByItemId[f]??`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIdJREFUSIntlUEOwCAIBNd+Ex+CL6i/ppfSaKOi1UMP7pHAzoYYAX4i+Tp49Jh7ohpELHgNYCUWABKYEZh7+vPhwCyvdOKJJDEu9RTlGhAAwBnjUyzUavMmAJpMTVW3uWk8omw1o/vueUVuJnEPYEobsAEbsAELAXo20TifRY38kqnp0nswpQtltzTIu+xVhgAAAABJRU5ErkJggg==`,[h,v]=(0,import_react$24.useState)({x:null,y:null}),[y,b]=(0,import_react$24.useState)(1),[x,S]=(0,import_react$24.useState)(o);(0,import_react$24.useEffect)(()=>{S(o)},[o]);let C=e=>{S(e),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:fieldKeyMap}),(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Field`,{"cleanup-mode":n===CLEANUP$1,"fertilize-mode":n===FERTILIZE,"harvest-mode":n===HARVEST$1,"mine-mode":n===MINE$1,"is-inventory-full":!doesInventorySpaceRemain({inventory:s,inventoryLimit:l}),"plant-mode":n===PLANT$1,"set-lightning-rod-mode":n===SET_LIGHTNING_ROD,"set-scarecrow-mode":n===SET_SCARECROW,"set-sprinkler-mode":n===SET_SPRINKLER,"water-mode":n===WATER$1}),"data-purchased-field":d,"data-testid":`field`,sx:e=>({margin:`0 auto`,"@media (orientation: portrait)":{marginBottom:`10.5em`,[`@media (min-width: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (6/10) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (8/12) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (10/16) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (12/18) - ${obscuringPortraitUiVerticalOffset}px)`}}},"@media (orientation: landscape)":{margin:`5em auto`,[`@media (min-height: ${breakpoints.largePhone}px)`]:{marginTop:`auto`},[`@media (min-height: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (10/6) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (12/8) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (16/10) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (18/12) - ${obscuringLandscapeUiVerticalOffset}px)`}}},"& .row":{display:`flex`,flexDirection:`row`,width:`100%`,"@media (orientation: landscape)":{flexDirection:`column-reverse`}},"& .react-transform-component":{overflow:`visible`,width:`auto`},"& .react-transform-element":{display:`block`,height:`auto`,width:`auto`,"& .row-wrapper":{backgroundImage:`url(${dirt_default})`,border:`solid 1px #000`,backgroundRepeat:`repeat`,backgroundSize:`calc(100% * (1 / 6) * 1.5)`,imageRendering:`pixelated`,display:`flex`,flexDirection:`column`,"@media (orientation: landscape)":{flexDirection:`row`,marginRight:layout.fieldSpaceForRightSideControls}}},'&[data-purchased-field="1"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 8) * 1.5)`},'&[data-purchased-field="2"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 10) * 1.5)`},'&[data-purchased-field="3"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 12) * 1.5)`},"& .slider-wrapper":{alignItems:`center`,background:`rgba(128, 128, 128, 0.5)`,borderRadius:`2em`,bottom:`7.5em`,display:`flex`,left:u?`calc(50vw + ${layout.sidebarWidth} / 2)`:`50%`,padding:`0 1em`,position:`fixed`,transform:`translateX(-50%)`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:`250px`,"@media (orientation: portrait)":{bottom:`13.5em`,display:u?`none`:void 0}},"& .zoom-controls":{position:`fixed`,display:`flex`,flexDirection:`column`,bottom:`1em`,"@media (orientation: portrait)":{display:u?`none`:void 0},"&.zoom-in-wrapper":{right:`0.5em`,"@media (orientation: portrait)":{right:`0.25em`},"@media (orientation: landscape)":{bottom:`5.5em`}},"&.zoom-out-wrapper":{"@media (orientation: portrait)":{left:`0.5em`},"@media (orientation: landscape)":{right:`0.5em`}},[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.25em`},"& button":{margin:`0.5em`}},"& .MuiFormControl-root":{alignItems:`center`,display:`flex`,padding:`1em 0 0`},"&.water-mode .Plot.crop:hover":{backgroundColor:colorBlueWater,cursor:`pointer`},"&.water-mode .Plot.is-in-hover-range":{backgroundColor:colorBlueWater},"&.fertilize-mode .Plot.can-be-fertilized":{backgroundColor:colorBrownFertilize,"&:hover":{cursor:`pointer`}},"&.harvest-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk$1,"&:hover":{cursor:`pointer`}},"&.mine-mode .Plot.can-be-mined":{backgroundColor:colorGreenOk$1,"&:hover":{cursor:`pointer`,borderColor:colorYellow},"&.is-in-hover-range":{borderColor:colorYellow}},"&.cleanup-mode .Plot.crop":{backgroundColor:colorYellow,cursor:`pointer`},"&.harvest-mode.is-inventory-full .Plot.crop.can-be-harvested, &.cleanup-mode.is-inventory-full .Plot.is-replantable":{backgroundColor:colorRedDanger,cursor:`not-allowed`},"&.cleanup-mode .Plot.is-replantable":{backgroundColor:colorGreenOk$1,cursor:`pointer`},"&.cleanup-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk$1,cursor:`auto`},"&.set-sprinkler-mode:hover .Plot:hover, &.set-scarecrow-mode:hover .Plot:hover, &.set-lightning-rod-mode:hover .Plot:hover":{"&.is-empty img":{cursor:`pointer`,opacity:.5},"&:not(.is-empty)":{backgroundColor:colorRedDanger,backgroundImage:`none`,cursor:`not-allowed`}},"&.set-sprinkler-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${sprinkler_default})`},"&.set-scarecrow-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${scarecrow_default})`},"&.set-lightning-rod-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${m})`}}),children:[(0,import_jsx_runtime.jsx)(TransformWrapper,{options:{limitToBounds:!1},reset:{animationTime:0},pan:{disabled:y<=1},zoomIn:{animationTime:0},zoomOut:{animationTime:0},onZoomChange:({scale:e})=>{e>=1&&b(e)},wheel:{disabled:!0},doubleClick:{disabled:!0},children:t=>(0,import_jsx_runtime.jsx)(FieldContentWrapper,{...t,fieldContent:(0,import_jsx_runtime.jsx)(FieldContent,{...e,hoveredPlot:h,setHoveredPlot:v})})}),adjustableRangeFieldModes.has(n)&&(0,import_jsx_runtime.jsx)(`div`,{className:`slider-wrapper`,children:(0,import_jsx_runtime.jsx)(Slider,{marks:!0,max:t.length-1,min:0,onChange:(e,t)=>C(t),step:1,value:x,valueLabelDisplay:`auto`,valueLabelFormat:e=>`${e*2+1}`,components:{ValueLabel:RangeSliderValueLabelComponent}})}),(0,import_jsx_runtime.jsx)(Consumer$11,{})]})]})};Field.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,handleFieldActionRangeChange:import_prop_types$1.func.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,isMenuOpen:import_prop_types$1.bool,purchasedCombine:import_prop_types$1.number.isRequired,purchasedField:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired,selectedItemId:import_prop_types$1.string.isRequired};function Consumer$10(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Field,{...t,...n,...e})})}var forest_plot_default_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAASxJREFUWIXtlrENg0AMRQ1KC6JhFUZIF9GnzgQZhAmo6REdI7BKmigZICmQE+TznX1AkUj+JXecH98+GwCTyWQy/bYS7cbr+fTaGqzpBjHeQQtzOW7mAYD5o0JgIjEH00851NVjNVY7zmE5MC8QpghhJAhuvZ9yAADve+2YOFBOyigISnKEW1/jYkphyiJzYPYQurVUWWTOZUnpJumruINDz0Pncs8++cPixVrYWrgxWtaS1yGE2qpYRz9ATTckeB0pXGww3xn9lIs3z3EoJnBsSuvqIb7j9KH9urKugdJe5DjEpY46pK2tNSkPduo9nPJ18Nv9CcCMj+Bw1Vgu7VmufZ1/egdscLhiFy2LjA0a06tCA1UNRMFQFJDWHCfNv5AaSALUBjOZTKZ/0Bv5OKQqSRXtTgAAAABJRU5ErkJggg==`,getFruitGrowingPhase=e=>{let{itemId:t,daysSinceLastHarvest:n=0}=e,{fruitTimeline:a=[]}=itemsMap[t]??{};return getGrowingPhaseForTimeline(a,n)},{SEED:SEED$1,GROWN:GROWN$2}=cropLifeStage,getForestFruitImage=e=>{let t=getTreeLifeStage(e);if(t!==GROWN$2)return null;let n=getFruitLifeStage(e,t);return n===SEED$1?null:items[n===GROWN$2?`${e.itemId}-fruit-grown`:`${e.itemId}-fruit-growing-${getFruitGrowingPhase(e)}`]??null},getTreeGrowingPhase=e=>{let{itemId:t,daysOld:n=0,daysGrown:a=n}=e,{treeTimeline:o=[]}=itemsMap[t]??{};return getGrowingPhaseForTimeline(o,a)},{SEED,GROWING,GROWN:GROWN$1,DEAD:DEAD$1}=treeLifeStage,getForestPlotImage=e=>{if(!e)return null;if(isPlantedTree(e)){let t;switch(getTreeLifeStage(e)){case DEAD$1:t=`${e.itemId}-tree-dead`;break;case GROWN$1:t=`${e.itemId}-tree-grown`;break;case GROWING:t=`${e.itemId}-tree-growing-${getTreeGrowingPhase(e)}`;break;case SEED:default:t=`${e.itemId}-tree-sapling-planted`}return items[t]??null}return items[e.forageableId]??null},{GROWN}=cropLifeStage,{DEAD}=treeLifeStage,{CHOP,HARVEST_FRUIT}=fieldMode,{NONE,STANDARD,RAINBOW}=fertilizerType,getForestPlotBackgroundImage=e=>{let t=e===STANDARD?plotStates[`mulched-plot`]:e===RAINBOW?plotStates[`rainbow-mulched-plot`]:null;return[...t?[`url(${t})`]:[],`url(${forest_plot_default_default})`].join(`, `)},colorGenericHighlight=`rgba(255, 255, 255, 0.8)`,colorGreenOk=`rgba(0, 255, 0, 0.5)`,colorYellowCaution=`rgba(255, 220, 0, 0.5)`,getTreeTooltipText=(e,t,n,a,o)=>{if(e===DEAD)return`Dead`;let s=e===GROWN?t===GROWN?`Ready to pick! (${a} ${o??`fruit`})`:`Fruiting...`:`Growing...`;return!n||n===NONE?s:`${s} (${n===RAINBOW?`Rainbow Mulched`:`Mulched`})`},formatWoodRange=([e,t])=>e===t?`${e}`:`${e}-${t}`,getChopActionText=e=>e?`Pick and Chop (destroy)`:`Chop (destroy)`,getChopYieldText=(e,t)=>{if(!e)return``;let n=(itemsMap.wood?.name??`Wood`).toLowerCase(),a=`${formatWoodRange(e)} ${n}`;return t?`${a}, 1 ${t}`:a},ForestPlot=({fieldMode:e,plotContent:t,handleForestPlotClick:n,toolLevels:a,x:o,y:s})=>{let l=isPlantedTree(t),u=l?getTreeLifeStage(t):null,d=l?getFruitLifeStage(t,u??void 0):null,f=d===GROWN,m=l&&e===CHOP,h=f&&e===HARVEST_FRUIT,v=l?itemsMap[t.itemId]:null,y=l?getForestPlotImage(t):null,b=l?getForestFruitImage(t):null,x=l?t.fertilizerType:void 0,S=PICKER_POLE_LEVEL_TO_FRUIT_YIELD[a?.[toolType.PICKER_POLE]]??1,C=m?getChopWoodYieldRange(a?.[toolType.AXE],u===GROWN||u===DEAD):null,T=e=>{e.stopPropagation(),n(o,s)},E=(0,import_jsx_runtime.jsx)(Div,{className:(0,import_classnames.default)(`ForestPlot`,{"is-empty":!t,"can-be-harvested":h,"can-be-chopped":m}),style:{gridColumn:o+1,gridRow:s+1},onClick:()=>n(o,s),sx:{backgroundImage:getForestPlotBackgroundImage(x),backgroundRepeat:`no-repeat`,backgroundSize:`cover`,border:`solid 1px #000`,height:`auto`,imageRendering:`pixelated`,overflow:`visible`,position:`relative`,width:`100%`,aspectRatio:`1`,transform:`translateX(calc(${s%2==0?`-50%`:`50%`} ${s%2==0?`+`:`-`} ${16/2}px))`,"&:hover":{backgroundColor:colorGenericHighlight,cursor:`pointer`},"&.can-be-harvested":{backgroundColor:colorGreenOk,"&:hover":{cursor:`pointer`}},"&.can-be-chopped":{backgroundColor:colorYellowCaution,"&:hover":{cursor:`pointer`}}},children:l&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Div,{"aria-hidden":!0,className:`ForestTreeSprite`,onClick:T,style:{backgroundImage:y?`url(${y})`:void 0},sx:{backgroundPosition:`bottom center`,backgroundRepeat:`no-repeat`,backgroundSize:`contain`,bottom:`50%`,cursor:`pointer`,imageRendering:`pixelated`,left:0,position:`absolute`,width:`100%`,aspectRatio:`1 / 2`}}),b&&(0,import_jsx_runtime.jsx)(Div,{"aria-hidden":!0,className:(0,import_classnames.default)(`ForestTreeSprite`,{...f&&{animated:!0,heartBeat:!0}}),onClick:T,style:{backgroundImage:`url(${b})`},sx:{backgroundPosition:`bottom center`,backgroundRepeat:`no-repeat`,backgroundSize:`contain`,bottom:`50%`,cursor:`pointer`,imageRendering:`pixelated`,left:0,position:`absolute`,width:`100%`,aspectRatio:`1 / 2`}})]})});return t?(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,placement:`top`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[v?(0,import_jsx_runtime.jsxs)(Typography,{children:[v.name,` Tree`]}):null,l&&(0,import_jsx_runtime.jsxs)(Typography,{children:[t.daysOld,` `,t.daysOld===1?`day`:`days`,` old`]}),l&&u&&d&&(m?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Typography,{children:getChopActionText(f)}),(0,import_jsx_runtime.jsx)(Typography,{children:getChopYieldText(C,f?v?.name??null:null)})]}):(0,import_jsx_runtime.jsx)(Typography,{children:getTreeTooltipText(u,d,x,S,v?.name??null)}))]}),children:E}):E};function Consumer$9(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(ForestPlot,{...t,...n,...e})})}var ForestQuickSelect=({mulchInventory:e,handleForestItemSelectClick:t,handleItemSelectClick:n,isMenuOpen:a=!0,playerInventoryQuantities:o,plantableTreeInventory:s,selectedForestItemId:l,selectedItemId:u})=>(0,import_jsx_runtime.jsx)(Paper,{className:`QuickSelect`,elevation:10,sx:e=>quickSelectSx(e,a),children:(0,import_jsx_runtime.jsxs)(Grid,{container:!0,alignItems:`center`,wrap:`nowrap`,children:[(0,import_jsx_runtime.jsx)(Consumer$12,{}),s.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:s,playerInventoryQuantities:o,selectedItemId:l})]}),e.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:n,items:e,playerInventoryQuantities:o,selectedItemId:u})]})]})});ForestQuickSelect.propTypes={mulchInventory:import_prop_types$1.array.isRequired,handleForestItemSelectClick:import_prop_types$1.func,handleItemSelectClick:import_prop_types$1.func,isMenuOpen:import_prop_types$1.bool,plantableTreeInventory:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedForestItemId:import_prop_types$1.string.isRequired,selectedItemId:import_prop_types$1.string.isRequired};function Consumer$8(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(ForestQuickSelect,{...t,...n,...e})})}var Forest=()=>{let{gameState:{forest:e}}=(0,import_react$24.useContext)(FarmhandContext),t=e[0]?.length??0,n=e.length,a=1,o=395,s=`48px`,l=`max(${s}, min(160px, calc((100vh - 395px) / ${n+1}), calc(100% / ${2*Math.max(t,1)})))`,u=`calc(1 * ${l})`,d=90;return(0,import_jsx_runtime.jsxs)(Div,{className:`Forest`,sx:{display:`flex`,height:`100%`,flexDirection:`column`,justifyContent:`center`,margin:`0 auto`,paddingTop:u,"@media (orientation: portrait)":{marginBottom:`10.5em`}},children:[(0,import_jsx_runtime.jsx)(Div,{className:`forest-plots`,sx:{display:`grid`,rowGap:`2%`,columnGap:`calc(${l} - 32px)`,justifyContent:`center`,width:`100%`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{width:`calc(100% - ${layout.fieldSpaceForRightSideControls})`},gridTemplateColumns:`repeat(${t}, minmax(${s}, ${l}))`,paddingLeft:`calc(${l} / 2)`,paddingRight:`calc(${l} / 2)`,transform:`translateY(calc(${u} / -2))`,"@media (orientation: portrait)":{transform:`translateY(calc(${u} / -2 - 90px))`}},children:e.map((e,t)=>e.map((e,n)=>(0,import_jsx_runtime.jsx)(Consumer$9,{plotContent:e,x:n,y:t},`${n},${t}`)))}),(0,import_jsx_runtime.jsx)(Consumer$8,{})]})},isDecember=()=>new Date().getMonth()===11,tslib_es6_exports=__exportAll({__addDisposableResource:()=>__addDisposableResource,__assign:()=>__assign,__asyncDelegator:()=>__asyncDelegator,__asyncGenerator:()=>__asyncGenerator,__asyncValues:()=>__asyncValues,__await:()=>__await,__awaiter:()=>__awaiter,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldIn:()=>__classPrivateFieldIn,__classPrivateFieldSet:()=>__classPrivateFieldSet,__createBinding:()=>__createBinding,__decorate:()=>__decorate,__disposeResources:()=>__disposeResources,__esDecorate:()=>__esDecorate,__exportStar:()=>__exportStar,__extends:()=>__extends,__generator:()=>__generator,__importDefault:()=>__importDefault,__importStar:()=>__importStar,__makeTemplateObject:()=>__makeTemplateObject,__metadata:()=>__metadata,__param:()=>__param,__propKey:()=>__propKey,__read:()=>__read,__rest:()=>__rest,__rewriteRelativeImportExtension:()=>__rewriteRelativeImportExtension,__runInitializers:()=>__runInitializers,__setFunctionName:()=>__setFunctionName,__spread:()=>__spread,__spreadArray:()=>__spreadArray,__spreadArrays:()=>__spreadArrays,__values:()=>__values,default:()=>tslib_es6_default});function __extends(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);extendStatics(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function __rest(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}function __decorate(e,t,n,a){var o=arguments.length,s=o<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,n):a,l;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)s=Reflect.decorate(e,t,n,a);else for(var u=e.length-1;u>=0;u--)(l=e[u])&&(s=(o<3?l(s):o>3?l(t,n,s):l(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function __param(e,t){return function(n,a){t(n,a,e)}}function __esDecorate(e,t,n,a,o,s){function l(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var u=a.kind,d=u===`getter`?`get`:u===`setter`?`set`:`value`,f=!t&&e?a.static?e:e.prototype:null,m=t||(f?Object.getOwnPropertyDescriptor(f,a.name):{}),h,v=!1,y=n.length-1;y>=0;y--){var b={};for(var x in a)b[x]=x===`access`?{}:a[x];for(var x in a.access)b.access[x]=a.access[x];b.addInitializer=function(e){if(v)throw TypeError(`Cannot add initializers after decoration has completed`);s.push(l(e||null))};var S=(0,n[y])(u===`accessor`?{get:m.get,set:m.set}:m[d],b);if(u===`accessor`){if(S===void 0)continue;if(typeof S!=`object`||!S)throw TypeError(`Object expected`);(h=l(S.get))&&(m.get=h),(h=l(S.set))&&(m.set=h),(h=l(S.init))&&o.unshift(h)}else(h=l(S))&&(u===`field`?o.unshift(h):m[d]=h)}f&&Object.defineProperty(f,a.name,m),v=!0}function __runInitializers(e,t,n){for(var a=arguments.length>2,o=0;o<t.length;o++)n=a?t[o].call(e,n):t[o].call(e);return a?n:void 0}function __propKey(e){return typeof e==`symbol`?e:`${e}`}function __setFunctionName(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,"name",{configurable:!0,value:n?`${n} ${t}`:t})}function __metadata(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function __awaiter(e,t,n,a){function o(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,s){function l(e){try{d(a.next(e))}catch(e){s(e)}}function u(e){try{d(a.throw(e))}catch(e){s(e)}}function d(e){e.done?n(e.value):o(e.value).then(l,u)}d((a=a.apply(e,t||[])).next())})}function __generator(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,o,s,l=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return l.next=u(0),l.throw=u(1),l.return=u(2),typeof Symbol==`function`&&(l[Symbol.iterator]=function(){return this}),l;function u(e){return function(t){return d([e,t])}}function d(u){if(a)throw TypeError(`Generator is already executing.`);for(;l&&(l=0,u[0]&&(n=0)),n;)try{if(a=1,o&&(s=u[0]&2?o.return:u[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,u[1])).done)return s;switch(o=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,o=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if((s=n.trys,!(s=s.length>0&&s[s.length-1]))&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(e){u=[6,e],o=0}finally{a=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function __exportStar(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&__createBinding(t,e,n)}function __values(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],a=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&a>=e.length&&(e=void 0),{value:e&&e[a++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function __read(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var a=n.call(e),o,s=[],l;try{for(;(t===void 0||t-->0)&&!(o=a.next()).done;)s.push(o.value)}catch(e){l={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(l)throw l.error}}return s}function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}function __spreadArrays(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var a=Array(e),o=0,t=0;t<n;t++)for(var s=arguments[t],l=0,u=s.length;l<u;l++,o++)a[o]=s[l];return a}function __spreadArray(e,t,n){if(n||arguments.length===2)for(var a=0,o=t.length,s;a<o;a++)(s||!(a in t))&&(s||=Array.prototype.slice.call(t,0,a),s[a]=t[a]);return e.concat(s||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var a=n.apply(e,t||[]),o,s=[];return o=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),u(`next`),u(`throw`),u(`return`,l),o[Symbol.asyncIterator]=function(){return this},o;function l(e){return function(t){return Promise.resolve(t).then(e,h)}}function u(e,t){a[e]&&(o[e]=function(t){return new Promise(function(n,a){s.push([e,t,n,a])>1||d(e,t)})},t&&(o[e]=t(o[e])))}function d(e,t){try{f(a[e](t))}catch(e){v(s[0][3],e)}}function f(e){e.value instanceof __await?Promise.resolve(e.value.v).then(m,h):v(s[0][2],e)}function m(e){d(`next`,e)}function h(e){d(`throw`,e)}function v(e,t){e(t),s.shift(),s.length&&d(s[0][0],s[0][1])}}function __asyncDelegator(e){var t,n;return t={},a(`next`),a(`throw`,function(e){throw e}),a(`return`),t[Symbol.iterator]=function(){return this},t;function a(a,o){t[a]=e[a]?function(t){return(n=!n)?{value:__await(e[a](t)),done:!1}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values==`function`?__values(e):e[Symbol.iterator](),n={},a(`next`),a(`throw`),a(`return`),n[Symbol.asyncIterator]=function(){return this},n);function a(t){n[t]=e[t]&&function(n){return new Promise(function(a,s){n=e[t](n),o(a,s,n.done,n.value)})}}function o(e,t,n,a){Promise.resolve(a).then(function(t){e({value:t,done:n})},t)}}function __makeTemplateObject(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function __importStar(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=ownKeys(e),a=0;a<n.length;a++)n[a]!=="default"&&__createBinding(t,e,n[a]);return __setModuleDefault(t,e),t}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,n,a){if(n===`a`&&!a)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!a:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?a:n===`a`?a.call(e):a?a.value:t.get(e)}function __classPrivateFieldSet(e,t,n,a,o){if(a===`m`)throw TypeError(`Private method is not writable`);if(a===`a`&&!o)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!o:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return a===`a`?o.call(e,n):o?o.value=n:t.set(e,n),n}function __classPrivateFieldIn(e,t){if(t===null||typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Cannot use 'in' operator on non-object`);return typeof e==`function`?t===e:e.has(t)}function __addDisposableResource(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var a,o;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);a=t[Symbol.asyncDispose]}if(a===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);a=t[Symbol.dispose],n&&(o=a)}if(typeof a!=`function`)throw TypeError(`Object not disposable.`);o&&(a=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:a,async:n})}else n&&e.stack.push({async:!0});return t}function __disposeResources(e){function t(t){e.error=e.hasError?new _SuppressedError(t,e.error,`An error was suppressed during disposal.`):t,e.hasError=!0}var n,a=0;function o(){for(;n=e.stack.pop();)try{if(!n.async&&a===1)return a=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var s=n.dispose.call(n.value);if(n.async)return a|=2,Promise.resolve(s).then(o,function(e){return t(e),o()})}else a|=1}catch(e){t(e)}if(a===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return o()}function __rewriteRelativeImportExtension(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,a,o,s){return n?t?`.jsx`:`.js`:a&&(!o||!s)?e:a+o+`.`+s.toLowerCase()+`js`}):e}var extendStatics,__assign,__createBinding,__setModuleDefault,ownKeys,_SuppressedError,tslib_es6_default,init_tslib_es6=__esmMin((()=>{extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},extendStatics(e,t)},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)},__createBinding=Object.create?(function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(`get`in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}):(function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),__setModuleDefault=Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t},ownKeys=function(e){return ownKeys=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},ownKeys(e)},_SuppressedError=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var a=Error(n);return a.name=`SuppressedError`,a.error=e,a.suppressed=t,a},tslib_es6_default={__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__createBinding,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension}})),require_useEffectOnce=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=require_react();e.default=function(e){t.useEffect(e,[])}})),require_useUnmount=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useEffectOnce());e.default=function(e){var t=n.useRef(e);t.current=e,a.default(function(){return function(){return t.current()}})}})),require_useRafState=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useUnmount());e.default=function(e){var t=n.useRef(0),o=n.useState(e),s=o[0],l=o[1],u=n.useCallback(function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame(function(){l(e)})},[]);return a.default(function(){cancelAnimationFrame(t.current)}),[s,u]}})),require_util=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isNavigator=e.isBrowser=e.off=e.on=e.noop=void 0,e.noop=function(){};function t(e){var t=[...arguments].slice(1);e&&e.addEventListener&&e.addEventListener.apply(e,t)}e.on=t;function n(e){var t=[...arguments].slice(1);e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}e.off=n,e.isBrowser=typeof window<`u`,e.isNavigator=typeof navigator<`u`})),require_useWindowSize=__commonJSMin((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useRafState()),o=require_util();e.default=function(e){var t=e===void 0?{}:e,s=t.initialWidth,l=s===void 0?1/0:s,u=t.initialHeight,d=u===void 0?1/0:u,f=t.onChange,m=a.default({width:o.isBrowser?window.innerWidth:l,height:o.isBrowser?window.innerHeight:d}),h=m[0],v=m[1];return n.useEffect(function(){if(o.isBrowser){var e=function(){var e=window.innerWidth,t=window.innerHeight;v({width:e,height:t}),f&&f(e,t)};return o.on(window,`resize`,e),function(){o.off(window,`resize`,e)}}},[]),h}})),require_react_confetti_min=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a(require_react()):typeof define==`function`&&define.amd?define([`react`],a):typeof e==`object`?e.ReactConfetti=a(require_react()):n.ReactConfetti=a(n.React)})(typeof self<`u`?self:e,(function(e){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t||4&t&&typeof e==`object`&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&typeof e!=`string`)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=2)}([function(t,n){t.exports=e},function(e,t,n){var a={linear:function(e,t,n,a){return(n-t)*e/a+t},easeInQuad:function(e,t,n,a){return(n-t)*(e/=a)*e+t},easeOutQuad:function(e,t,n,a){return-(n-t)*(e/=a)*(e-2)+t},easeInOutQuad:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e+t:-o/2*(--e*(e-2)-1)+t},easeInCubic:function(e,t,n,a){return(n-t)*(e/=a)*e*e+t},easeOutCubic:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e+1)+t},easeInOutCubic:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t},easeInQuart:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e+t},easeOutQuart:function(e,t,n,a){return-(n-t)*((e=e/a-1)*e*e*e-1)+t},easeInOutQuart:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e+t:-o/2*((e-=2)*e*e*e-2)+t},easeInQuint:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e*e+t},easeOutQuint:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e*e*e+1)+t},easeInOutQuint:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e*e+t:o/2*((e-=2)*e*e*e*e+2)+t},easeInSine:function(e,t,n,a){var o=n-t;return-o*Math.cos(e/a*(Math.PI/2))+o+t},easeOutSine:function(e,t,n,a){return(n-t)*Math.sin(e/a*(Math.PI/2))+t},easeInOutSine:function(e,t,n,a){return-(n-t)/2*(Math.cos(Math.PI*e/a)-1)+t},easeInExpo:function(e,t,n,a){return e==0?t:(n-t)*2**(10*(e/a-1))+t},easeOutExpo:function(e,t,n,a){var o=n-t;return e==a?t+o:o*(1-2**(-10*e/a))+t},easeInOutExpo:function(e,t,n,a){var o=n-t;return e===0?t:e===a?t+o:(e/=a/2)<1?o/2*2**(10*(e-1))+t:o/2*(2-2**(-10*--e))+t},easeInCirc:function(e,t,n,a){return-(n-t)*(Math.sqrt(1-(e/=a)*e)-1)+t},easeOutCirc:function(e,t,n,a){return(n-t)*Math.sqrt(1-(e=e/a-1)*e)+t},easeInOutCirc:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?-o/2*(Math.sqrt(1-e*e)-1)+t:o/2*(Math.sqrt(1-(e-=2)*e)+1)+t},easeInElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),-o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)+t)},easeOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),o*2**(-10*e)*Math.sin((e*a-l)*(2*Math.PI)/s)+u+t)},easeInOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a/2)==2?t+u:((s=0)||(s=.3*1.5*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),e<1?o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*-.5+t:o*2**(-10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*.5+u+t)},easeInBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*(e/=a)*e*((o+1)*e-o)+t},easeOutBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*((e=e/a-1)*e*((o+1)*e+o)+1)+t},easeInOutBack:function(e,t,n,a,o){var s=n-t;return o===void 0&&(o=1.70158),(e/=a/2)<1?s/2*(e*e*((1+(o*=1.525))*e-o))+t:s/2*((e-=2)*e*((1+(o*=1.525))*e+o)+2)+t},easeInBounce:function(e,t,n,o){var s=n-t;return s-a.easeOutBounce(o-e,0,s,o)+t},easeOutBounce:function(e,t,n,a){var o=n-t;return(e/=a)<1/2.75?o*(7.5625*e*e)+t:e<2/2.75?o*(7.5625*(e-=1.5/2.75)*e+.75)+t:e<2.5/2.75?o*(7.5625*(e-=2.25/2.75)*e+.9375)+t:o*(7.5625*(e-=2.625/2.75)*e+.984375)+t},easeInOutBounce:function(e,t,n,o){var s=n-t;return e<o/2?.5*a.easeInBounce(2*e,0,s,o)+t:.5*a.easeOutBounce(2*e-o,0,s,o)+.5*s+t}};e.exports=a},function(e,t,n){e.exports=n(3)},function(e,t,n){n.r(t),n.d(t,`ReactConfetti`,(function(){return q}));var a,o,s=n(0),l=n.n(s),u=n(1),d=n.n(u);function f(e,t){return e+Math.random()*(t-e)}function m(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}(function(e){e[e.Circle=0]=`Circle`,e[e.Square=1]=`Square`,e[e.Strip=2]=`Strip`})(a||={}),function(e){e[e.Positive=1]=`Positive`,e[e.Negative=-1]=`Negative`}(o||={});var v=function(){function e(t,n,a,s){(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),h(this,`context`,void 0),h(this,`radius`,void 0),h(this,`x`,void 0),h(this,`y`,void 0),h(this,`w`,void 0),h(this,`h`,void 0),h(this,`vx`,void 0),h(this,`vy`,void 0),h(this,`shape`,void 0),h(this,`angle`,void 0),h(this,`angularSpin`,void 0),h(this,`color`,void 0),h(this,`rotateY`,void 0),h(this,`rotationDirection`,void 0),h(this,`getOptions`,void 0),this.getOptions=n;var l,u,d=this.getOptions(),m=d.colors,v=d.initialVelocityX,y=d.initialVelocityY;this.context=t,this.x=a,this.y=s,this.w=f(5,20),this.h=f(5,20),this.radius=f(5,10),this.vx=typeof v==`number`?f(-v,v):f(v.min,v.max),this.vy=typeof y==`number`?f(-y,0):f(y.min,y.max),this.shape=(l=0,u=2,Math.floor(l+Math.random()*(u-l+1))),this.angle=f(0,360)*Math.PI/180,this.angularSpin=f(-.2,.2),this.color=m[Math.floor(Math.random()*m.length)],this.rotateY=f(0,1),this.rotationDirection=f(0,1)?o.Positive:o.Negative}var t,n,s;return t=e,(n=[{key:`update`,value:function(){var e=this.getOptions(),t=e.gravity,n=e.wind,s=e.friction,l=e.opacity,u=e.drawShape;this.x+=this.vx,this.y+=this.vy,this.vy+=t,this.vx+=n,this.vx*=s,this.vy*=s,this.rotateY>=1&&this.rotationDirection===o.Positive?this.rotationDirection=o.Negative:this.rotateY<=-1&&this.rotationDirection===o.Negative&&(this.rotationDirection=o.Positive);var d=.1*this.rotationDirection;if(this.rotateY+=d,this.angle+=this.angularSpin,this.context.save(),this.context.translate(this.x,this.y),this.context.rotate(this.angle),this.context.scale(1,this.rotateY),this.context.rotate(this.angle),this.context.beginPath(),this.context.fillStyle=this.color,this.context.strokeStyle=this.color,this.context.globalAlpha=l,this.context.lineCap=`round`,this.context.lineWidth=2,u&&typeof u==`function`)u.call(this,this.context);else switch(this.shape){case a.Circle:this.context.beginPath(),this.context.arc(0,0,this.radius,0,2*Math.PI),this.context.fill();break;case a.Square:this.context.fillRect(-this.w/2,-this.h/2,this.w,this.h);break;case a.Strip:this.context.fillRect(-this.w/6,-this.h/2,this.w/3,this.h)}this.context.closePath(),this.context.restore()}}])&&m(t.prototype,n),s&&m(t,s),e}();function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),y(this,`canvas`,void 0),y(this,`context`,void 0),y(this,`getOptions`,void 0),y(this,`x`,0),y(this,`y`,0),y(this,`w`,0),y(this,`h`,0),y(this,`lastNumberOfPieces`,0),y(this,`tweenInitTime`,Date.now()),y(this,`particles`,[]),y(this,`particlesGenerated`,0),y(this,`removeParticleAt`,(function(e){a.particles.splice(e,1)})),y(this,`getParticle`,(function(){var e=f(a.x,a.w+a.x),t=f(a.y,a.h+a.y);return new v(a.context,a.getOptions,e,t)})),y(this,`animate`,(function(){var e=a.canvas,t=a.context,n=a.particlesGenerated,o=a.lastNumberOfPieces,s=a.getOptions(),l=s.run,u=s.recycle,d=s.numberOfPieces,f=s.debug,m=s.tweenFunction,h=s.tweenDuration;if(!l)return!1;var v=a.particles.length,y=u?v:n,b=Date.now();if(y<d){o!==d&&(a.tweenInitTime=b,a.lastNumberOfPieces=d);for(var x=a.tweenInitTime,S=m(b-x>h?h:Math.max(0,b-x),y,d,h),C=Math.round(S-y),T=0;T<C;T++)a.particles.push(a.getParticle());a.particlesGenerated+=C}return f&&(t.font=`12px sans-serif`,t.fillStyle=`#333`,t.textAlign=`right`,t.fillText(`Particles: ${v}`,e.width-10,e.height-20)),a.particles.forEach((function(t,n){t.update(),(t.y>e.height||t.y<-100||t.x>e.width+100||t.x<-100)&&(u&&y<=d?a.particles[n]=a.getParticle():a.removeParticleAt(n))})),v>0||y<d})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.getOptions=n};function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?x(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function C(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E={width:typeof window<`u`?window.innerWidth:300,height:typeof window<`u`?window.innerHeight:200,numberOfPieces:200,friction:.99,wind:0,gravity:.1,initialVelocityX:4,initialVelocityY:10,colors:[`#f44336`,`#e91e63`,`#9c27b0`,`#673ab7`,`#3f51b5`,`#2196f3`,`#03a9f4`,`#00bcd4`,`#009688`,`#4CAF50`,`#8BC34A`,`#CDDC39`,`#FFEB3B`,`#FFC107`,`#FF9800`,`#FF5722`,`#795548`],opacity:1,debug:!1,tweenFunction:d.a.easeInOutQuad,tweenDuration:5e3,recycle:!0,run:!0},D=function(){function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),T(this,`canvas`,void 0),T(this,`context`,void 0),T(this,`_options`,void 0),T(this,`generator`,void 0),T(this,`rafId`,void 0),T(this,`setOptionsWithDefaults`,(function(e){a._options=S(S(S({},{confettiSource:{x:0,y:0,w:a.canvas.width,h:0}}),E),e),Object.assign(a,e.confettiSource)})),T(this,`update`,(function(){var e=a.options,t=e.run,n=e.onConfettiComplete,o=a.canvas,s=a.context;t&&(s.fillStyle=`white`,s.clearRect(0,0,o.width,o.height)),a.generator.animate()?a.rafId=requestAnimationFrame(a.update):(n&&typeof n==`function`&&a.generator.particlesGenerated>0&&n.call(a,a),a._options.run=!1)})),T(this,`reset`,(function(){a.generator&&a.generator.particlesGenerated>0&&(a.generator.particlesGenerated=0,a.generator.particles=[],a.generator.lastNumberOfPieces=0)})),T(this,`stop`,(function(){a.options={run:!1},a.rafId&&=(cancelAnimationFrame(a.rafId),void 0)})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.generator=new b(this.canvas,(function(){return a.options})),this.options=n,this.update()}var t,n,a;return t=e,(n=[{key:`options`,get:function(){return this._options},set:function(e){var t=this._options&&this._options.run,n=this._options&&this._options.recycle;this.setOptionsWithDefaults(e),this.generator&&(Object.assign(this.generator,this.options.confettiSource),typeof e.recycle==`boolean`&&e.recycle&&!1===n&&(this.generator.lastNumberOfPieces=this.generator.particles.length)),typeof e.run==`boolean`&&e.run&&!1===t&&this.update()}}])&&C(t.prototype,n),a&&C(t,a),e}();function O(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if(typeof Symbol<`u`&&Symbol.iterator in Object(e))return Array.from(e)}(e)||I(e)||function(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
756
756
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function k(e){return(k=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e})(e)}function j(){return(j=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?M(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(typeof Symbol>`u`||!(Symbol.iterator in Object(e)))){var n=[],a=!0,o=!1,s=void 0;try{for(var l,u=e[Symbol.iterator]();!(a=(l=u.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){o=!0,s=e}finally{try{a||u.return==null||u.return()}finally{if(o)throw s}}return n}}(e,t)||I(e,t)||function(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
757
757
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function I(e,t){if(e){if(typeof e==`string`)return L(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}function L(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function R(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function z(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function V(e){var t=function(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch{return!1}}();return function(){var n,a=W(e);if(t){var o=W(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return H(this,n)}}function H(e,t){return!t||k(t)!==`object`&&typeof t!=`function`?U(e):t}function U(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function W(e){return(W=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ee=l.a.createRef(),te=function(e){(function(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)})(s,e);var t,n,a,o=V(s);function s(e){var t;R(this,s);var n=[...arguments].slice(1);return G(U(t=o.call.apply(o,[this,e].concat(n))),`canvas`,l.a.createRef()),G(U(t),`confetti`,void 0),t.canvas=e.canvasRef||ee,t}return t=s,(n=[{key:`componentDidMount`,value:function(){if(this.canvas.current){var e=K(this.props)[0];this.confetti=new D(this.canvas.current,e)}}},{key:`componentDidUpdate`,value:function(){var e=K(this.props)[0];this.confetti&&(this.confetti.options=e)}},{key:`componentWillUnmount`,value:function(){this.confetti&&this.confetti.stop(),this.confetti=void 0}},{key:`render`,value:function(){var e=F(K(this.props),2),t=e[0],n=e[1],a=N({zIndex:2,position:`absolute`,pointerEvents:`none`,top:0,left:0,bottom:0,right:0},n.style);return l.a.createElement(`canvas`,j({width:t.width,height:t.height,ref:this.canvas},n,{style:a}))}}])&&z(t.prototype,n),a&&z(t,a),s}(s.Component);function K(e){var t={},n={},a=[].concat(O(Object.keys(E)),[`confettiSource`,`drawShape`,`onConfettiComplete`]),o=[`canvasRef`];for(var s in e){var l=e[s];a.includes(s)?t[s]=l:o.includes(s)?o[s]=l:n[s]=l}return[t,n,{}]}G(te,`defaultProps`,N({},E)),G(te,`displayName`,`ReactConfetti`);var q=l.a.forwardRef((function(e,t){return l.a.createElement(te,j({canvasRef:t},e))}));t.default=q}]).default}))})),import_useWindowSize=__toESM(require_useWindowSize()),import_react_confetti_min=__toESM(require_react_confetti_min()),randomInt=(e,t)=>Math.floor(e+random$1()*(t-e+1)),drawSnowflake=function(e){let t=this.numPoints||randomInt(3,4)*2;this.numPoints=t;let n=this.radius*.2,a=this.radius*.8;e.beginPath(),e.moveTo(0,0-a);for(let o=1;o<t*2;o++){let s=o%2==0?a:n,l=s*Math.sin(o*Math.PI/t),u=-1*s*Math.cos(o*Math.PI/t);e.lineTo(l,u)}e.fill(),e.stroke(),e.closePath()},SnowBackground=()=>{let{width:e,height:t}=(0,import_useWindowSize.default)();return(0,import_jsx_runtime.jsx)(import_react_confetti_min.default,{style:{position:`fixed`},width:e,height:t,drawShape:drawSnowflake,colors:[`#FFFFFF`,`#CBDDF8`],gravity:.03,numberOfPieces:10,wind:.01})},onboardingAchievements=[achievementsMap[`plant-crop`],achievementsMap[`water-crop`],achievementsMap[`harvest-crop`],achievementsMap[`purchase-cow-pen`]],getRemainingOnboardingAchievements=memoize(e=>onboardingAchievements.filter(t=>t&&!e[t.id])),isInstallable=[`production`,`development`].includes(`production`)&&!import_window.default.matchMedia(`(display-mode: standalone)`).matches&&[`https://jeremyckahn.github.io`,`https://www.farmhand.life`,`http://localhost:3000`].includes(import_window.default.location.origin),Home=({completedAchievements:e,handleViewChangeButtonClick:t,remainingOnboardingAchievements:n=getRemainingOnboardingAchievements(e)})=>(0,import_jsx_runtime.jsxs)(Div,{className:`Home`,sx:{margin:`0 auto`,maxWidth:650,"& h1":{fontSize:`3em`,marginBottom:`1em`,textAlign:`center`},"& h1.holiday-greeting":{lineHeight:`1.25em`,color:`#fffafa`},"& p":{fontSize:`1.2em`,lineHeight:`1.3em`,marginBottom:`1em`},"& a":{fontWeight:`bold`},"& .MuiButton-containedPrimary":{display:`block`,margin:`0 auto`}},children:[isDecember()?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(SnowBackground,{}),(0,import_jsx_runtime.jsxs)(`h1`,{className:`holiday-greeting`,children:[`Happy holidays!`,` `,(0,import_jsx_runtime.jsx)(`span`,{role:`img`,"aria-label":`Snowman`,children:`⛄️`})]})]}):(0,import_jsx_runtime.jsx)(`h1`,{children:`Welcome!`}),(0,import_jsx_runtime.jsxs)(Accordion,{children:[(0,import_jsx_runtime.jsx)(AccordionSummary,{expandIcon:(0,import_jsx_runtime.jsx)(import_ExpandMore.default,{}),children:(0,import_jsx_runtime.jsx)(`h2`,{children:`Click to read a note from the developer`})}),(0,import_jsx_runtime.jsx)(AccordionDetails,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`
|
|
758
758
|
Hi, you're playing **Farmhand**! This is an open source game project created by [Jeremy Kahn](https://github.com/jeremyckahn). The project has evolved over time and is now developed with the support of [a community of contributors](https://github.com/jeremyckahn/farmhand/blob/develop/CONTRIBUTORS.md).
|
|
@@ -833,12 +833,12 @@ If you're playing on a mobile device, all you need to do is [add it to your home
|
|
|
833
833
|
|
|
834
834
|
* Press "Shift + ?" to see all of the keyboard shortcuts available to you.
|
|
835
835
|
|
|
836
|
-
`})})})]});Home.propTypes={completedAchievements:import_prop_types$1.object.isRequired,handleViewChangeButtonClick:import_prop_types$1.func.isRequired};function Consumer$7(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Home,{...t,...n,...e})})}var randomPosition=()=>10+random$1()*80,Cow=class e extends import_react$24.Component{state={cowImage:pixel_default,isTransitioning:!1,moveDirection:RIGHT,rotate:0,showHugAnimation:!1,x:randomPosition(),y:randomPosition()};repositionTimeoutId=null;animateHugTimeoutId=null;tweenable=new import_shifty.Tweenable;isComponentMounted=!1;static flipAnimationDuration=1e3;static transitionAnimationDuration=3e3;static hugAnimationDuration=750;get waitVariance(){return 2e3*this.props.cowInventory.length}componentDidUpdate(t){this.props.isSelected&&!t.isSelected&&this.repositionTimeoutId!==null&&clearTimeout(this.repositionTimeoutId),!this.props.isSelected&&t.isSelected&&this.scheduleMove(),this.props.cow.happinessBoostsToday>t.cow.happinessBoostsToday&&!this.state.showHugAnimation&&(this.setState({showHugAnimation:!0}),this.animateHugTimeoutId=setTimeout(()=>{this.isComponentMounted&&this.setState({showHugAnimation:!1})},e.hugAnimationDuration))}move=async()=>{let t=randomPosition(),{moveDirection:n,x:a,y:o}=this.state,s=t<this.state.x?LEFT:RIGHT;if(this.isComponentMounted&&this.setState({moveDirection:s}),n!==s){let t=({rotate:e})=>{this.isComponentMounted&&this.setState({rotate:e})};try{let n=e.flipAnimationDuration,a=`swingTo`;s===`left`?await this.tweenable.tween({from:{rotate:0},to:{rotate:180},easing:a,duration:n,render:t}):await this.tweenable.tween({from:{rotate:180},to:{rotate:0},easing:a,duration:n,render:t})}catch{return}}this.isComponentMounted&&this.setState({isTransitioning:!0});try{await this.tweenable.tween({from:{x:a,y:o},to:{x:t,y:randomPosition()},duration:e.transitionAnimationDuration,render:({x:e,y:t})=>{this.isComponentMounted&&this.setState({x:e,y:t})},easing:`linear`})}catch{return}this.isComponentMounted&&this.setState({isTransitioning:!1}),this.scheduleMove()};repositionTimeoutHandler=()=>{this.repositionTimeoutId=null,this.move()};scheduleMove=()=>{this.props.isSelected||(this.repositionTimeoutId=setTimeout(this.repositionTimeoutHandler,random$1()*this.waitVariance))};componentDidMount(){this.isComponentMounted=!0,this.scheduleMove(),(async()=>{let e=await getCowImage(this.props.cow);this.isComponentMounted&&this.setState({cowImage:e})})()}componentWillUnmount(){[this.repositionTimeoutId,this.animateHugTimeoutId].forEach(e=>typeof e==`number`&&clearTimeout(e)),this.isComponentMounted=!1,this.tweenable.cancel()}render(){let{props:{allowCustomPeerCowNames:e,cow:t,handleCowClick:n,playerId:a,isSelected:o},state:{cowImage:s,isTransitioning:l,rotate:u,showHugAnimation:d,x:f,y:m}}=this,h=getCowDisplayName(t,a,e);return(0,import_jsx_runtime.jsxs)(`div`,{className:(0,import_classnames.default)(`cow`,{"is-transitioning":l,"is-selected":o,"is-loaded":s!==pixel_default}),onClick:()=>n(t),style:{left:`${f}%`,top:`${m}%`},children:[o&&(0,import_jsx_runtime.jsxs)(`p`,{className:`visually_hidden`,children:[h,` is selected`]}),(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:h}),open:o,PopperProps:{disablePortal:!0},children:(0,import_jsx_runtime.jsxs)(`div`,{style:{transform:`rotateY(${u}deg)`},children:[(0,import_jsx_runtime.jsx)(`img`,{src:s,alt:h}),(0,import_jsx_runtime.jsx)(FontAwesomeIcon,{className:(0,import_classnames.default)(`animation`,{"is-animating":d}),icon:faHeart$1})]})}),(0,import_jsx_runtime.jsx)(`ol`,{className:`happiness-boosts-today`,children:Array(this.props.cow.happinessBoostsToday).fill(void 0).map((e,t)=>(0,import_jsx_runtime.jsx)(`li`,{key:t,children:(0,import_jsx_runtime.jsx)(FontAwesomeIcon,{icon:faHeart$1})}))})]})}},initialSpawnIntervalMs=3e3,finalSpawnIntervalMs=200,spawnIntervalDecrementAmountMs=100,tumbleweedSize=48,Tumbleweed=({onAnimationComplete:e})=>{let[t]=(0,import_react$24.useState)(randomNumberService.generateRandomNumber());return(0,import_jsx_runtime.jsx)(Box,{className:`Tumbleweed`,onAnimationEnd:e,sx:{position:`absolute`,left:-48,top:`${scaleNumber(t,0,1,0,100)}%`,width:`100%`},children:(0,import_jsx_runtime.jsx)(Box,{className:`bounce-container`,sx:{height:tumbleweedSize,width:tumbleweedSize},children:(0,import_jsx_runtime.jsx)(Box,{component:`img`,src:items.tumbleweed,sx:{height:tumbleweedSize,width:tumbleweedSize}})})})},useConcurrentTimeout=()=>{let e=(0,import_react$24.useRef)(new Set),t=(0,import_react$24.useCallback)((t,n)=>{let a=setTimeout(()=>{t(),e.current.delete(a)},n);e.current.add(a)},[]),n=(0,import_react$24.useCallback)(()=>{e.current.forEach(e=>clearTimeout(e)),e.current.clear()},[]);return(0,import_react$24.useEffect)(()=>{let t=e.current;return()=>{t.forEach(e=>clearTimeout(e)),t.clear()}},[]),{schedule:t,cancelAll:n}},Tumbleweeds=({doSpawn:e})=>{let[t,n]=(0,import_react$24.useState)([]),[a,o]=(0,import_react$24.useState)(initialSpawnIntervalMs),[s,l]=(0,import_react$24.useState)(0),[u,d]=(0,import_react$24.useState)(0),{schedule:f,cancelAll:m}=useConcurrentTimeout();(0,import_react$24.useEffect)(()=>{if(!e)return;let t=Math.max(0,a-(Date.now()-s)),n=setTimeout(()=>{d(e=>e+1)},t);return()=>clearTimeout(n)},[e,s,a]);let h=(0,import_react$24.useCallback)(()=>{n(e=>[...e,v4()])},[]),v=(0,import_react$24.useCallback)(()=>{let e=scaleNumber(randomNumberService.generateRandomNumber(),0,1,0,a);f(h,e)},[f,a,h]);(0,import_react$24.useEffect)(()=>{if(!e){o(initialSpawnIntervalMs),m();return}if(a<=finalSpawnIntervalMs)return;let t=Date.now();t-s<a||(v(),l(t),o(e=>e-spawnIntervalDecrementAmountMs))},[m,e,s,v,a,u]);let y=(0,import_react$24.useCallback)(t=>{n(e=>e.filter(e=>e!==t)),e&&v()},[e,v]);return(0,import_jsx_runtime.jsx)(Box,{className:`Tumbleweeds`,sx:{position:`absolute`,top:0,bottom:0,left:0,right:0},children:t.map(e=>(0,import_jsx_runtime.jsx)(Tumbleweed,{onAnimationComplete:()=>y(e)},e))})},CowPen=({allowCustomPeerCowNames:e,cowInventory:t,handleCowPenUnmount:n,handleCowClick:a,playerId:o,selectedCowId:s})=>((0,import_react$24.useEffect)(()=>()=>{n()},[n]),(0,import_jsx_runtime.jsxs)(Div,{className:`CowPen fill`,sx:e=>({...fillSx,overflow:`hidden`,"& .cow":{opacity:0,position:`absolute`,zIndex:20,transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),"&:hover":{cursor:`pointer`},"&::before":{background:`hsla(0, 0%, 30%, 0.5)`,borderRadius:`50%`,bottom:`5px`,content:`""`,height:`16px`,left:`16px`,position:`absolute`,width:`75px`,zIndex:-1},"&.is-loaded":{opacity:1},"&.is-selected":{zIndex:40,"& img":{filter:`drop-shadow(0 0 5px #fff)`}},"& img":{width:`100px`,transition:e.transitions.create(`filter`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut})},"& .fa-heart":{color:colors.heart,"&.animation":{opacity:0,position:`absolute`,right:`20px`,top:`10px`,transform:`translateY(0px) scale(1)`,"&.is-animating":{animationName:`hug-indicator`,animationDuration:`750ms`,animationFillMode:`forwards`,animationTimingFunction:`ease-out`,animationIterationCount:1}}}},"& .is-transitioning img":{animationName:`cow-bounce`,animationDuration:`500ms`,animationFillMode:`forwards`,animationTimingFunction:`linear`,animationIterationCount:`infinite`},"& .happiness-boosts-today":{bottom:`-12px`,display:`flex`,justifyContent:`space-evenly`,left:`10%`,position:`absolute`,width:`80%`,zIndex:-1},"& .Tumbleweeds .Tumbleweed":{animationName:`move-across-screen`,animationDuration:`5000ms`,animationFillMode:`forwards`,animationTimingFunction:`linear`,animationIterationCount:1,"& .bounce-container":{animationName:`tumbleweed-bounce`,animationDuration:`1000ms`,animationFillMode:`forwards`,animationTimingFunction:`linear`,animationIterationCount:`infinite`},"&::before":{background:`hsla(0, 0%, 30%, 0.5)`,borderRadius:`50%`,bottom:`-5px`,content:`""`,height:`16px`,left:`1px`,position:`absolute`,width:`48px`,zIndex:-1}},"@keyframes cow-bounce":{"0%, 100%":{transform:`translate(0px, 0px)`},"20%, 80%":{transform:`translate(0px, -32px)`},"40%, 60%":{transform:`translate(0px, -48px)`}},"@keyframes tumbleweed-bounce":{"0%, 100%":{transform:`translate(0px, 0px)`},"20%, 80%":{transform:`translate(0px, -24px)`},"40%, 60%":{transform:`translate(0px, -32px)`}},"@keyframes hug-indicator":{"0%":{opacity:0,transform:`translateY(0px) scale(1)`},"50%":{opacity:1,transform:`translateY(-80px) scale(2)`},"100%":{opacity:0,transform:`translateY(-80px) scale(2)`}},"@keyframes move-across-screen":{"0%":{transform:`translateX(calc(0% - 48px))`},"100%":{transform:`translateX(calc(100% + 48px))`}}}),children:[(0,import_jsx_runtime.jsx)(Tumbleweeds,{doSpawn:t.length===0}),t.map(n=>(0,import_jsx_runtime.jsx)(Cow,{allowCustomPeerCowNames:e,cow:n,cowInventory:t,key:n.id,handleCowClick:a,playerId:o,isSelected:s===n.id}))]}));CowPen.propTypes={allowCustomPeerCowNames:import_prop_types$1.bool.isRequired,cowInventory:import_prop_types$1.array.isRequired,handleCowClick:import_prop_types$1.func.isRequired,handleCowPenUnmount:import_prop_types$1.func.isRequired,playerId:import_prop_types$1.string.isRequired,selectedCowId:import_prop_types$1.string.isRequired};function Consumer$6(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(CowPen,{...t,...n,...e})})}function TierPurchase({description:e,onBuyClick:t,maxedOutPlaceholder:n,money:a,purchasedTier:o,renderTierLabel:s,tiers:l,title:u}){let[d,f]=(0,import_react$24.useState)(o),m=[...l.entries()],h=Number(d),v=e=>e<=o,y=v(m.slice(-1)[0][0]);if(v(Number(d))){let e=h+1,t=l.get(e);t&&a>=t.price&&f(`${e}`)}return(0,import_jsx_runtime.jsxs)(Card,{className:`TierPurchase`,children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:u}),e&&(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(Typography,{children:e})}),y&&n?(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(Typography,{children:(0,import_jsx_runtime.jsx)(`strong`,{children:n})})}):(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{color:`primary`,disabled:!(()=>{let e=l.get(h);return!!e&&!v(h)&&a>=e.price})(),onClick:()=>{(l.get(h)?.price??1/0)<=a&&t(h)},variant:`contained`,children:`Buy`}),(0,import_jsx_runtime.jsx)(Select,{variant:`standard`,sx:{flexGrow:1,m:0,ml:`1rem`,maxWidth:300},onChange:({target:{value:e}})=>{f(e)},value:Number(d)>0?d:``,children:m.map(([e,t])=>(0,import_jsx_runtime.jsx)(MenuItem,{value:e,disabled:a<t.price||v(e),children:s(t)},e))})]})]})}TierPurchase.propTypes={description:import_prop_types$1.string,onBuyClick:import_prop_types$1.func.isRequired,maxedOutPlaceholder:import_prop_types$1.node,money:import_prop_types$1.number.isRequired,purchasedTier:import_prop_types$1.number.isRequired,renderTierLabel:import_prop_types$1.func.isRequired,tiers:(0,import_prop_types$1.instanceOf)(Map),title:import_prop_types$1.string.isRequired};function Consumer$5(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(TierPurchase,{...t,...n,...e})})}var TAB_QUERY_PARAM_NAME=`tab`,getTabIndexFromHash=e=>{let t=getHashQueryParams().get(TAB_QUERY_PARAM_NAME),n=e.indexOf(t??``);return n===-1?0:n},useTabQueryParam=e=>{let[t,n]=(0,import_react$24.useState)(()=>getTabIndexFromHash(e));return(0,import_react$24.useEffect)(()=>{n(getTabIndexFromHash(e))},[e.join(`|`)]),[t,t=>{n(t);let a=e[t];a&&setHashQueryParam(TAB_QUERY_PARAM_NAME,a)}]},TabPanel$2=e=>{let{children:t,value:n,index:a,...o}=e;return(0,import_jsx_runtime.jsx)(`section`,{role:`tabpanel`,hidden:n!==a,id:`shop-tabpanel-${a}`,"aria-labelledby":`shop-tab-${a}`,...o,children:n===a?t:null})};TabPanel$2.propTypes={children:import_prop_types$1.node,index:import_prop_types$1.number.isRequired,value:import_prop_types$1.number.isRequired};var a11yProps$2=e=>({id:`shop-tab-${e}`,"aria-controls":`shop-tabpanel-${e}`}),getShopCategory=e=>e.type===itemType.CROP?`seeds`:e.type===itemType.TREE&&e.isPlantableTree?`saplings`:`fieldTools`,categorizeShopInventory=memoize(e=>e.reduce((e,t)=>(e[getShopCategory(t)].push(t),e),{seeds:[],saplings:[],fieldTools:[]})),Shop=({handleCombinePurchase:e,handleComposterPurchase:t,handleCowPenPurchase:n,handleCellarPurchase:a,handleFieldPurchase:o,handleForestPurchase:s,handleSmelterPurchase:l,handleStorageExpansionPurchase:u,handleWoodChipperPurchase:d,inventoryLimit:f,levelEntitlements:m,money:h,purchasedCombine:v,purchasedComposter:y,purchasedCowPen:b,purchasedCellar:x,purchasedField:S,purchasedForest:C,purchasedSmelter:T,purchasedWoodChipper:E,shopInventory:D,toolLevels:O,valueAdjustments:k,storageUpgradeCost:j=getCostOfNextStorageExpansion(f)})=>{let{seeds:M,saplings:N,fieldTools:F}=categorizeShopInventory(D),I=m.stageFocusType[stageFocusType.FOREST],L=I&&N.length>0,R=L?2:1,z=L?3:2,[B,V]=useTabQueryParam([`Seeds`,L?`Saplings`:``,`Supplies`,`Upgrades`].filter(Boolean));return(0,import_jsx_runtime.jsxs)(Div,{className:`Shop`,sx:centerTabsSx,children:[(0,import_jsx_runtime.jsxs)(Tabs,{value:B,onChange:(e,t)=>V(t),"aria-label":`Shop tabs`,children:[(0,import_jsx_runtime.jsx)(Tab,{label:`Seeds`,...a11yProps$2(0)}),L?(0,import_jsx_runtime.jsx)(Tab,{label:`Saplings`,...a11yProps$2(1)}):null,(0,import_jsx_runtime.jsx)(Tab,{label:`Supplies`,...a11yProps$2(R)}),(0,import_jsx_runtime.jsx)(Tab,{label:`Upgrades`,...a11yProps$2(z)})]}),(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:0,children:(0,import_jsx_runtime.jsx)(Consumer$27,{items:M,isPurchaseView:!0,placeholder:`Search seeds...`})}),L?(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:1,children:(0,import_jsx_runtime.jsx)(Consumer$27,{items:N,isPurchaseView:!0,placeholder:`Search saplings...`})}):null,(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:R,children:(0,import_jsx_runtime.jsx)(Consumer$27,{items:F,isPurchaseView:!0,placeholder:`Search supplies...`})}),(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:z,children:(0,import_jsx_runtime.jsxs)(`ul`,{className:`card-list`,children:[f>-1&&(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsxs)(Card,{children:[(0,import_jsx_runtime.jsx)(CardHeader,{avatar:(0,import_jsx_runtime.jsx)(`img`,{src:items[`inventory-box`],alt:`Inventory box`}),title:`Storage Unit`,subheader:(0,import_jsx_runtime.jsxs)(`div`,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Price: `,moneyString(j)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Current inventory space:`,` `,integerString(f)]})]})}),(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsxs)(Typography,{children:[`Purchase a Storage Unit to increase your inventory capacity for `,100,` more items.`]})}),(0,import_jsx_runtime.jsx)(CardActions,{children:(0,import_jsx_runtime.jsx)(Button,{disabled:h<j,color:`primary`,onClick:u,variant:`contained`,children:`Buy`})})]})}),(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:o,maxedOutPlaceholder:`You've purchased the largest field available!`,purchasedTier:S,renderTierLabel:({columns:e,price:t,rows:n})=>`${dollarString(t)}: ${e} x ${n}`,tiers:PURCHASEABLE_FIELD_SIZES,title:`Expand field`})}),(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:n,maxedOutPlaceholder:`You've purchased the largest cow pen available!`,purchasedTier:b,renderTierLabel:({cows:e,price:t})=>`${dollarString(t)}: ${e} cow pen`,tiers:PURCHASEABLE_COW_PENS,title:`Buy cow pen`})}),(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:a,maxedOutPlaceholder:`You've purchased the largest cellar available!`,purchasedTier:x,renderTierLabel:({space:e,price:t})=>`${dollarString(t)}: Space for ${e} kegs`,tiers:PURCHASEABLE_CELLARS,title:`Buy cellar`})}),I?(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:s,maxedOutPlaceholder:`You've purchased the largest forest available!`,purchasedTier:C,renderTierLabel:({columns:e,price:t,rows:n})=>`${dollarString(t)}: ${e} x ${n}`,tiers:PURCHASABLE_FOREST_SIZES,title:`Expand forest`})}):null,(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a combine to automatically harvest your mature crops at the start of every day.`,onBuyClick:e,maxedOutPlaceholder:`You've purchased the best combine harvester available!`,purchasedTier:v,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} combine harvester`,tiers:PURCHASEABLE_COMBINES,title:`Buy combine harvester`})}),O[toolType.SHOVEL]?(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a Smelter to convert ore into ingots and other useful items.`,onBuyClick:l,maxedOutPlaceholder:`You've already purchased the smelter!`,purchasedTier:T,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} Smelter`,tiers:PURCHASEABLE_SMELTERS,title:`Buy smelter`})}):null,(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a Composter to turn weeds into fertilizer.`,onBuyClick:t,maxedOutPlaceholder:`You've already purchased the composter!`,purchasedTier:y,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} Composter`,tiers:PURCHASEABLE_COMPOSTERS,title:`Buy composter`})}),I?(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a Wood Chipper to turn wood into wood chips for making mulch.`,onBuyClick:d,maxedOutPlaceholder:`You've already purchased the wood chipper!`,purchasedTier:E,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} Wood Chipper`,tiers:PURCHASEABLE_WOOD_CHIPPERS,title:`Buy wood chipper`})}):null]})})]})};Shop.propTypes={handleCombinePurchase:import_prop_types$1.func.isRequired,handleCowPenPurchase:import_prop_types$1.func.isRequired,handleCellarPurchase:import_prop_types$1.func.isRequired,handleFieldPurchase:import_prop_types$1.func.isRequired,handleStorageExpansionPurchase:import_prop_types$1.func.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,money:import_prop_types$1.number.isRequired,purchasedCowPen:import_prop_types$1.number.isRequired,purchasedCellar:import_prop_types$1.number.isRequired,purchasedField:import_prop_types$1.number.isRequired,purchasedSmelter:import_prop_types$1.number.isRequired,purchasedWoodChipper:import_prop_types$1.number.isRequired,purchasedCombine:import_prop_types$1.number.isRequired,shopInventory:import_prop_types$1.array.isRequired,toolLevels:import_prop_types$1.object.isRequired,valueAdjustments:import_prop_types$1.object.isRequired};function Consumer$4(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Shop,{...t,...n,...e})})}var TabPanel$1=e=>{let{children:t,value:n,index:a,...o}=e;return(0,import_jsx_runtime.jsx)(`section`,{role:`tabpanel`,hidden:n!==a,id:`workshop-tabpanel-${a}`,"aria-labelledby":`workshop-tab-${a}`,...o,children:n===a?t:null})};TabPanel$1.propTypes={children:import_prop_types$1.node,index:import_prop_types$1.number.isRequired,value:import_prop_types$1.number.isRequired};var a11yProps$1=e=>({id:`workshop-tab-${e}`,"aria-controls":`workshop-tabpanel-${e}`});function IngredientsList({playerInventoryQuantities:e,recipe:{ingredients:t,name:n}}){return(0,import_jsx_runtime.jsxs)(`ul`,{className:`card-list`,title:`Ingredients for ${n}`,children:[(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(`h4`,{children:`Ingredients required:`})}),Object.keys(t).map(n=>(0,import_jsx_runtime.jsx)(`li`,{key:n,"data-testid":`ingredient`,children:(0,import_jsx_runtime.jsx)(P$1,{className:(0,import_classnames.default)((e[n]||0)>=t[n]?`in-stock`:`out-of-stock`),sx:{color:(e[n]||0)>=t[n]?void 0:colors.error},children:INGREDIENTS_LIST_ITEM`${t[n]}${itemsMap[n].name}${integerString(e[n]||0)}
|
|
836
|
+
`})})})]});Home.propTypes={completedAchievements:import_prop_types$1.object.isRequired,handleViewChangeButtonClick:import_prop_types$1.func.isRequired};function Consumer$7(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Home,{...t,...n,...e})})}var randomPosition=()=>10+random$1()*80,flipAnimationDuration=1e3,transitionAnimationDuration=3e3,hugAnimationDuration=750,Cow=({allowCustomPeerCowNames:e,cow:t,cowInventory:n,handleCowClick:a,playerId:o,isSelected:s})=>{let[l,u]=(0,import_react$24.useState)(pixel_default),[d,f]=(0,import_react$24.useState)(!1),[m,h]=(0,import_react$24.useState)(RIGHT),[v,y]=(0,import_react$24.useState)(0),[b,x]=(0,import_react$24.useState)(!1),[S,C]=(0,import_react$24.useState)(()=>({x:randomPosition(),y:randomPosition()})),[T]=(0,import_react$24.useState)(()=>new import_shifty.Tweenable),[E,D]=(0,import_react$24.useState)(t.happinessBoostsToday),O=useIsMounted(),{x:k,y:j}=S,M=(0,import_react$24.useCallback)(async(e,t)=>{let n=randomPosition(),a=n<e.x?LEFT:RIGHT;if(h(a),t!==a){let e=e=>{typeof e.rotate==`number`&&y(e.rotate)};try{let t=flipAnimationDuration,n=`swingTo`;a===`left`?await T.tween({from:{rotate:0},to:{rotate:180},easing:n,duration:t,render:e}):await T.tween({from:{rotate:180},to:{rotate:0},easing:n,duration:t,render:e})}catch{return}}f(!0);try{let t=randomPosition();await T.tween({from:{x:e.x,y:e.y},to:{x:n,y:t},duration:transitionAnimationDuration,render:e=>{typeof e.x==`number`&&typeof e.y==`number`&&C({x:e.x,y:e.y})},easing:`linear`})}catch{return}f(!1)},[T]);(0,import_react$24.useEffect)(()=>{(async()=>{let e=await getCowImage(t);O()!==!1&&u(e)})()},[]),(0,import_react$24.useEffect)(()=>()=>{T.cancel()},[T]),(0,import_react$24.useEffect)(()=>{if(s||d)return;let e=2e3*n.length,t=setTimeout(()=>{M(S,m)},random$1()*e);return()=>{clearTimeout(t)}},[s,d,n.length,M]),(0,import_react$24.useEffect)(()=>{let e=t.happinessBoostsToday>E;D(t.happinessBoostsToday),e&&!b&&x(!0)},[t.happinessBoostsToday,E,b]),(0,import_react$24.useEffect)(()=>{if(!b)return;let e=setTimeout(()=>{x(!1)},hugAnimationDuration);return()=>{clearTimeout(e)}},[b]);let N=getCowDisplayName(t,o,e);return(0,import_jsx_runtime.jsxs)(`div`,{className:(0,import_classnames.default)(`cow`,{"is-transitioning":d,"is-selected":s,"is-loaded":l!==pixel_default}),onClick:()=>a(t),style:{left:`${k}%`,top:`${j}%`},children:[s&&(0,import_jsx_runtime.jsxs)(`p`,{className:`visually_hidden`,children:[N,` is selected`]}),(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:N}),open:s,PopperProps:{disablePortal:!0},children:(0,import_jsx_runtime.jsxs)(`div`,{style:{transform:`rotateY(${v}deg)`},children:[(0,import_jsx_runtime.jsx)(`img`,{src:l,alt:N}),(0,import_jsx_runtime.jsx)(FontAwesomeIcon,{className:(0,import_classnames.default)(`animation`,{"is-animating":b}),icon:faHeart$1})]})}),(0,import_jsx_runtime.jsx)(`ol`,{className:`happiness-boosts-today`,children:Array(t.happinessBoostsToday).fill(void 0).map((e,t)=>(0,import_jsx_runtime.jsx)(`li`,{key:t,children:(0,import_jsx_runtime.jsx)(FontAwesomeIcon,{icon:faHeart$1})}))})]})},initialSpawnIntervalMs=3e3,finalSpawnIntervalMs=200,spawnIntervalDecrementAmountMs=100,tumbleweedSize=48,Tumbleweed=({onAnimationComplete:e})=>{let[t]=(0,import_react$24.useState)(randomNumberService.generateRandomNumber());return(0,import_jsx_runtime.jsx)(Box,{className:`Tumbleweed`,onAnimationEnd:e,sx:{position:`absolute`,left:-48,top:`${scaleNumber(t,0,1,0,100)}%`,width:`100%`},children:(0,import_jsx_runtime.jsx)(Box,{className:`bounce-container`,sx:{height:tumbleweedSize,width:tumbleweedSize},children:(0,import_jsx_runtime.jsx)(Box,{component:`img`,src:items.tumbleweed,sx:{height:tumbleweedSize,width:tumbleweedSize}})})})},useConcurrentTimeout=()=>{let e=(0,import_react$24.useRef)(new Set),t=(0,import_react$24.useCallback)((t,n)=>{let a=setTimeout(()=>{t(),e.current.delete(a)},n);e.current.add(a)},[]),n=(0,import_react$24.useCallback)(()=>{e.current.forEach(e=>clearTimeout(e)),e.current.clear()},[]);return(0,import_react$24.useEffect)(()=>{let t=e.current;return()=>{t.forEach(e=>clearTimeout(e)),t.clear()}},[]),{schedule:t,cancelAll:n}},Tumbleweeds=({doSpawn:e})=>{let[t,n]=(0,import_react$24.useState)([]),[a,o]=(0,import_react$24.useState)(initialSpawnIntervalMs),[s,l]=(0,import_react$24.useState)(0),[u,d]=(0,import_react$24.useState)(0),{schedule:f,cancelAll:m}=useConcurrentTimeout();(0,import_react$24.useEffect)(()=>{if(!e)return;let t=Math.max(0,a-(Date.now()-s)),n=setTimeout(()=>{d(e=>e+1)},t);return()=>clearTimeout(n)},[e,s,a]);let h=(0,import_react$24.useCallback)(()=>{n(e=>[...e,v4()])},[]),v=(0,import_react$24.useCallback)(()=>{let e=scaleNumber(randomNumberService.generateRandomNumber(),0,1,0,a);f(h,e)},[f,a,h]);(0,import_react$24.useEffect)(()=>{if(!e){o(initialSpawnIntervalMs),m();return}if(a<=finalSpawnIntervalMs)return;let t=Date.now();t-s<a||(v(),l(t),o(e=>e-spawnIntervalDecrementAmountMs))},[m,e,s,v,a,u]);let y=(0,import_react$24.useCallback)(t=>{n(e=>e.filter(e=>e!==t)),e&&v()},[e,v]);return(0,import_jsx_runtime.jsx)(Box,{className:`Tumbleweeds`,sx:{position:`absolute`,top:0,bottom:0,left:0,right:0},children:t.map(e=>(0,import_jsx_runtime.jsx)(Tumbleweed,{onAnimationComplete:()=>y(e)},e))})},CowPen=({allowCustomPeerCowNames:e,cowInventory:t,handleCowPenUnmount:n,handleCowClick:a,playerId:o,selectedCowId:s})=>((0,import_react$24.useEffect)(()=>()=>{n()},[n]),(0,import_jsx_runtime.jsxs)(Div,{className:`CowPen fill`,sx:e=>({...fillSx,overflow:`hidden`,"& .cow":{opacity:0,position:`absolute`,zIndex:20,transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),"&:hover":{cursor:`pointer`},"&::before":{background:`hsla(0, 0%, 30%, 0.5)`,borderRadius:`50%`,bottom:`5px`,content:`""`,height:`16px`,left:`16px`,position:`absolute`,width:`75px`,zIndex:-1},"&.is-loaded":{opacity:1},"&.is-selected":{zIndex:40,"& img":{filter:`drop-shadow(0 0 5px #fff)`}},"& img":{width:`100px`,transition:e.transitions.create(`filter`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut})},"& .fa-heart":{color:colors.heart,"&.animation":{opacity:0,position:`absolute`,right:`20px`,top:`10px`,transform:`translateY(0px) scale(1)`,"&.is-animating":{animationName:`hug-indicator`,animationDuration:`750ms`,animationFillMode:`forwards`,animationTimingFunction:`ease-out`,animationIterationCount:1}}}},"& .is-transitioning img":{animationName:`cow-bounce`,animationDuration:`500ms`,animationFillMode:`forwards`,animationTimingFunction:`linear`,animationIterationCount:`infinite`},"& .happiness-boosts-today":{bottom:`-12px`,display:`flex`,justifyContent:`space-evenly`,left:`10%`,position:`absolute`,width:`80%`,zIndex:-1},"& .Tumbleweeds .Tumbleweed":{animationName:`move-across-screen`,animationDuration:`5000ms`,animationFillMode:`forwards`,animationTimingFunction:`linear`,animationIterationCount:1,"& .bounce-container":{animationName:`tumbleweed-bounce`,animationDuration:`1000ms`,animationFillMode:`forwards`,animationTimingFunction:`linear`,animationIterationCount:`infinite`},"&::before":{background:`hsla(0, 0%, 30%, 0.5)`,borderRadius:`50%`,bottom:`-5px`,content:`""`,height:`16px`,left:`1px`,position:`absolute`,width:`48px`,zIndex:-1}},"@keyframes cow-bounce":{"0%, 100%":{transform:`translate(0px, 0px)`},"20%, 80%":{transform:`translate(0px, -32px)`},"40%, 60%":{transform:`translate(0px, -48px)`}},"@keyframes tumbleweed-bounce":{"0%, 100%":{transform:`translate(0px, 0px)`},"20%, 80%":{transform:`translate(0px, -24px)`},"40%, 60%":{transform:`translate(0px, -32px)`}},"@keyframes hug-indicator":{"0%":{opacity:0,transform:`translateY(0px) scale(1)`},"50%":{opacity:1,transform:`translateY(-80px) scale(2)`},"100%":{opacity:0,transform:`translateY(-80px) scale(2)`}},"@keyframes move-across-screen":{"0%":{transform:`translateX(calc(0% - 48px))`},"100%":{transform:`translateX(calc(100% + 48px))`}}}),children:[(0,import_jsx_runtime.jsx)(Tumbleweeds,{doSpawn:t.length===0}),t.map(n=>(0,import_jsx_runtime.jsx)(Cow,{allowCustomPeerCowNames:e,cow:n,cowInventory:t,key:n.id,handleCowClick:a,playerId:o,isSelected:s===n.id}))]}));CowPen.propTypes={allowCustomPeerCowNames:import_prop_types$1.bool.isRequired,cowInventory:import_prop_types$1.array.isRequired,handleCowClick:import_prop_types$1.func.isRequired,handleCowPenUnmount:import_prop_types$1.func.isRequired,playerId:import_prop_types$1.string.isRequired,selectedCowId:import_prop_types$1.string.isRequired};function Consumer$6(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(CowPen,{...t,...n,...e})})}function TierPurchase({description:e,onBuyClick:t,maxedOutPlaceholder:n,money:a,purchasedTier:o,renderTierLabel:s,tiers:l,title:u}){let[d,f]=(0,import_react$24.useState)(o),m=[...l.entries()],h=Number(d),v=e=>e<=o,y=v(m.slice(-1)[0][0]);if(v(Number(d))){let e=h+1,t=l.get(e);t&&a>=t.price&&f(`${e}`)}return(0,import_jsx_runtime.jsxs)(Card,{className:`TierPurchase`,children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:u}),e&&(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(Typography,{children:e})}),y&&n?(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(Typography,{children:(0,import_jsx_runtime.jsx)(`strong`,{children:n})})}):(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{color:`primary`,disabled:!(()=>{let e=l.get(h);return!!e&&!v(h)&&a>=e.price})(),onClick:()=>{(l.get(h)?.price??1/0)<=a&&t(h)},variant:`contained`,children:`Buy`}),(0,import_jsx_runtime.jsx)(Select,{variant:`standard`,sx:{flexGrow:1,m:0,ml:`1rem`,maxWidth:300},onChange:({target:{value:e}})=>{f(e)},value:Number(d)>0?d:``,children:m.map(([e,t])=>(0,import_jsx_runtime.jsx)(MenuItem,{value:e,disabled:a<t.price||v(e),children:s(t)},e))})]})]})}TierPurchase.propTypes={description:import_prop_types$1.string,onBuyClick:import_prop_types$1.func.isRequired,maxedOutPlaceholder:import_prop_types$1.node,money:import_prop_types$1.number.isRequired,purchasedTier:import_prop_types$1.number.isRequired,renderTierLabel:import_prop_types$1.func.isRequired,tiers:(0,import_prop_types$1.instanceOf)(Map),title:import_prop_types$1.string.isRequired};function Consumer$5(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(TierPurchase,{...t,...n,...e})})}var TAB_QUERY_PARAM_NAME=`tab`,getTabIndexFromHash=e=>{let t=getHashQueryParams().get(TAB_QUERY_PARAM_NAME),n=e.indexOf(t??``);return n===-1?0:n},useTabQueryParam=e=>{let[t,n]=(0,import_react$24.useState)(()=>getTabIndexFromHash(e));return(0,import_react$24.useEffect)(()=>{n(getTabIndexFromHash(e))},[e.join(`|`)]),[t,t=>{n(t);let a=e[t];a&&setHashQueryParam(TAB_QUERY_PARAM_NAME,a)}]},TabPanel$2=e=>{let{children:t,value:n,index:a,...o}=e;return(0,import_jsx_runtime.jsx)(`section`,{role:`tabpanel`,hidden:n!==a,id:`shop-tabpanel-${a}`,"aria-labelledby":`shop-tab-${a}`,...o,children:n===a?t:null})};TabPanel$2.propTypes={children:import_prop_types$1.node,index:import_prop_types$1.number.isRequired,value:import_prop_types$1.number.isRequired};var a11yProps$2=e=>({id:`shop-tab-${e}`,"aria-controls":`shop-tabpanel-${e}`}),getShopCategory=e=>e.type===itemType.CROP?`seeds`:e.type===itemType.TREE&&e.isPlantableTree?`saplings`:`fieldTools`,categorizeShopInventory=memoize(e=>e.reduce((e,t)=>(e[getShopCategory(t)].push(t),e),{seeds:[],saplings:[],fieldTools:[]})),Shop=({handleCombinePurchase:e,handleComposterPurchase:t,handleCowPenPurchase:n,handleCellarPurchase:a,handleFieldPurchase:o,handleForestPurchase:s,handleSmelterPurchase:l,handleStorageExpansionPurchase:u,handleWoodChipperPurchase:d,inventoryLimit:f,levelEntitlements:m,money:h,purchasedCombine:v,purchasedComposter:y,purchasedCowPen:b,purchasedCellar:x,purchasedField:S,purchasedForest:C,purchasedSmelter:T,purchasedWoodChipper:E,shopInventory:D,toolLevels:O,valueAdjustments:k,storageUpgradeCost:j=getCostOfNextStorageExpansion(f)})=>{let{seeds:M,saplings:N,fieldTools:F}=categorizeShopInventory(D),I=m.stageFocusType[stageFocusType.FOREST],L=I&&N.length>0,R=L?2:1,z=L?3:2,[B,V]=useTabQueryParam([`Seeds`,L?`Saplings`:``,`Supplies`,`Upgrades`].filter(Boolean));return(0,import_jsx_runtime.jsxs)(Div,{className:`Shop`,sx:centerTabsSx,children:[(0,import_jsx_runtime.jsxs)(Tabs,{value:B,onChange:(e,t)=>V(t),"aria-label":`Shop tabs`,children:[(0,import_jsx_runtime.jsx)(Tab,{label:`Seeds`,...a11yProps$2(0)}),L?(0,import_jsx_runtime.jsx)(Tab,{label:`Saplings`,...a11yProps$2(1)}):null,(0,import_jsx_runtime.jsx)(Tab,{label:`Supplies`,...a11yProps$2(R)}),(0,import_jsx_runtime.jsx)(Tab,{label:`Upgrades`,...a11yProps$2(z)})]}),(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:0,children:(0,import_jsx_runtime.jsx)(Consumer$27,{items:M,isPurchaseView:!0,placeholder:`Search seeds...`})}),L?(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:1,children:(0,import_jsx_runtime.jsx)(Consumer$27,{items:N,isPurchaseView:!0,placeholder:`Search saplings...`})}):null,(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:R,children:(0,import_jsx_runtime.jsx)(Consumer$27,{items:F,isPurchaseView:!0,placeholder:`Search supplies...`})}),(0,import_jsx_runtime.jsx)(TabPanel$2,{value:B,index:z,children:(0,import_jsx_runtime.jsxs)(`ul`,{className:`card-list`,children:[f>-1&&(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsxs)(Card,{children:[(0,import_jsx_runtime.jsx)(CardHeader,{avatar:(0,import_jsx_runtime.jsx)(`img`,{src:items[`inventory-box`],alt:`Inventory box`}),title:`Storage Unit`,subheader:(0,import_jsx_runtime.jsxs)(`div`,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Price: `,moneyString(j)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Current inventory space:`,` `,integerString(f)]})]})}),(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsxs)(Typography,{children:[`Purchase a Storage Unit to increase your inventory capacity for `,100,` more items.`]})}),(0,import_jsx_runtime.jsx)(CardActions,{children:(0,import_jsx_runtime.jsx)(Button,{disabled:h<j,color:`primary`,onClick:u,variant:`contained`,children:`Buy`})})]})}),(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:o,maxedOutPlaceholder:`You've purchased the largest field available!`,purchasedTier:S,renderTierLabel:({columns:e,price:t,rows:n})=>`${dollarString(t)}: ${e} x ${n}`,tiers:PURCHASEABLE_FIELD_SIZES,title:`Expand field`})}),(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:n,maxedOutPlaceholder:`You've purchased the largest cow pen available!`,purchasedTier:b,renderTierLabel:({cows:e,price:t})=>`${dollarString(t)}: ${e} cow pen`,tiers:PURCHASEABLE_COW_PENS,title:`Buy cow pen`})}),(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:a,maxedOutPlaceholder:`You've purchased the largest cellar available!`,purchasedTier:x,renderTierLabel:({space:e,price:t})=>`${dollarString(t)}: Space for ${e} kegs`,tiers:PURCHASEABLE_CELLARS,title:`Buy cellar`})}),I?(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{onBuyClick:s,maxedOutPlaceholder:`You've purchased the largest forest available!`,purchasedTier:C,renderTierLabel:({columns:e,price:t,rows:n})=>`${dollarString(t)}: ${e} x ${n}`,tiers:PURCHASABLE_FOREST_SIZES,title:`Expand forest`})}):null,(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a combine to automatically harvest your mature crops at the start of every day.`,onBuyClick:e,maxedOutPlaceholder:`You've purchased the best combine harvester available!`,purchasedTier:v,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} combine harvester`,tiers:PURCHASEABLE_COMBINES,title:`Buy combine harvester`})}),O[toolType.SHOVEL]?(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a Smelter to convert ore into ingots and other useful items.`,onBuyClick:l,maxedOutPlaceholder:`You've already purchased the smelter!`,purchasedTier:T,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} Smelter`,tiers:PURCHASEABLE_SMELTERS,title:`Buy smelter`})}):null,(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a Composter to turn weeds into fertilizer.`,onBuyClick:t,maxedOutPlaceholder:`You've already purchased the composter!`,purchasedTier:y,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} Composter`,tiers:PURCHASEABLE_COMPOSTERS,title:`Buy composter`})}),I?(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$5,{description:`You can purchase a Wood Chipper to turn wood into wood chips for making mulch.`,onBuyClick:d,maxedOutPlaceholder:`You've already purchased the wood chipper!`,purchasedTier:E,renderTierLabel:({type:e,price:t})=>`${dollarString(t)}: ${e} Wood Chipper`,tiers:PURCHASEABLE_WOOD_CHIPPERS,title:`Buy wood chipper`})}):null]})})]})};Shop.propTypes={handleCombinePurchase:import_prop_types$1.func.isRequired,handleCowPenPurchase:import_prop_types$1.func.isRequired,handleCellarPurchase:import_prop_types$1.func.isRequired,handleFieldPurchase:import_prop_types$1.func.isRequired,handleStorageExpansionPurchase:import_prop_types$1.func.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,money:import_prop_types$1.number.isRequired,purchasedCowPen:import_prop_types$1.number.isRequired,purchasedCellar:import_prop_types$1.number.isRequired,purchasedField:import_prop_types$1.number.isRequired,purchasedSmelter:import_prop_types$1.number.isRequired,purchasedWoodChipper:import_prop_types$1.number.isRequired,purchasedCombine:import_prop_types$1.number.isRequired,shopInventory:import_prop_types$1.array.isRequired,toolLevels:import_prop_types$1.object.isRequired,valueAdjustments:import_prop_types$1.object.isRequired};function Consumer$4(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Shop,{...t,...n,...e})})}var TabPanel$1=e=>{let{children:t,value:n,index:a,...o}=e;return(0,import_jsx_runtime.jsx)(`section`,{role:`tabpanel`,hidden:n!==a,id:`workshop-tabpanel-${a}`,"aria-labelledby":`workshop-tab-${a}`,...o,children:n===a?t:null})};TabPanel$1.propTypes={children:import_prop_types$1.node,index:import_prop_types$1.number.isRequired,value:import_prop_types$1.number.isRequired};var a11yProps$1=e=>({id:`workshop-tab-${e}`,"aria-controls":`workshop-tabpanel-${e}`});function IngredientsList({playerInventoryQuantities:e,recipe:{ingredients:t,name:n}}){return(0,import_jsx_runtime.jsxs)(`ul`,{className:`card-list`,title:`Ingredients for ${n}`,children:[(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(`h4`,{children:`Ingredients required:`})}),Object.keys(t).map(n=>(0,import_jsx_runtime.jsx)(`li`,{key:n,"data-testid":`ingredient`,children:(0,import_jsx_runtime.jsx)(P$1,{className:(0,import_classnames.default)((e[n]||0)>=t[n]?`in-stock`:`out-of-stock`),sx:{color:(e[n]||0)>=t[n]?void 0:colors.error},children:INGREDIENTS_LIST_ITEM`${t[n]}${itemsMap[n].name}${integerString(e[n]||0)}
|
|
837
837
|
`})}))]})}IngredientsList.propTypes={playerInventoryQuantities:import_prop_types$1.object.isRequired,recipe:(0,import_prop_types$1.shape)({ingredients:import_prop_types$1.object.isRequired,name:import_prop_types$1.string.isRequired}).isRequired};function totalIngredientsInRecipe(e,t=1){return t*Object.values(e.ingredients).reduce((e,t)=>e+t,0)}function UpgradePurchase({handleUpgradeTool:e,inventory:t,inventoryLimit:n,playerInventoryQuantities:a,upgrade:o}){let{id:s,name:l,description:u}=o,d=totalIngredientsInRecipe(o),f=canMakeRecipe(o,t,1)&&doesInventorySpaceRemain({inventory:t,inventoryLimit:(n===-1?1/0:n)+d});return(0,import_jsx_runtime.jsxs)(Card,{className:(0,import_classnames.default)(`Recipe`,{"can-be-made":f}),children:[(0,import_jsx_runtime.jsx)(CardHeader,{avatar:(0,import_jsx_runtime.jsx)(`img`,{src:craftedItems[s],alt:l}),title:l,subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`p`,{children:u}),(0,import_jsx_runtime.jsx)(IngredientsList,{playerInventoryQuantities:a,recipe:o})]})}),(0,import_jsx_runtime.jsx)(CardActions,{children:(0,import_jsx_runtime.jsx)(Button,{color:`primary`,onClick:()=>e(o),variant:`contained`,disabled:!f,children:`Upgrade Tool`})})]})}UpgradePurchase.propTypes={handleUpgradeTool:import_prop_types$1.func.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,toolLevels:import_prop_types$1.object,upgrade:import_prop_types$1.object};function Consumer$3(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(UpgradePurchase,{...t,...n,...e})})}var Recipe=({handleMakeRecipeClick:e,inventory:t,inventoryLimit:n,playerInventoryQuantities:a,recipe:o})=>{let{id:s,name:l,description:u=``}=o,[d,f]=(0,import_react$24.useState)(1);(0,import_react$24.useEffect)(()=>{f(Math.min(maxYieldOfRecipe(o,t),Math.max(1,d)))},[t,o,d]);let m=d*totalIngredientsInRecipe(o),h=d>0&&canMakeRecipe(o,t,d)&&doesInventorySpaceRemain({inventory:t,inventoryLimit:(n===-1?1/0:n)+m}),v=()=>{h&&e(o,d)},y=maxYieldOfRecipe(o,t);return(0,import_jsx_runtime.jsxs)(Card,{className:(0,import_classnames.default)(`Recipe`,{"can-be-made":h}),sx:{position:`relative`,cursor:h?`pointer`:void 0,"& img":{width:`3em`},"& ul.card-list li":{margin:0,"& p":{margin:0}}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{avatar:(0,import_jsx_runtime.jsx)(`img`,{src:craftedItems[s],alt:l}),title:l,subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Sell price: `,dollarString(itemsMap[s].value)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In Inventory: `,integerString(a[s])]}),(0,import_jsx_runtime.jsx)(IngredientsList,{playerInventoryQuantities:a,recipe:o})]})}),u&&(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(Typography,{children:u})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`make-recipe`,color:`primary`,disabled:!h||!d,onClick:v,variant:`contained`,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:v,handleUpdateNumber:f,maxQuantity:y,setQuantity:f,value:d})]})]})};Recipe.propTypes={handleMakeRecipeClick:import_prop_types$1.func.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,recipe:import_prop_types$1.object.isRequired};function Consumer$2(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Recipe,{...t,...n,...e})})}function RecipeList({allRecipes:e,learnedRecipes:t}){let[n,a]=(0,import_react$24.useState)(``),o=n?t.filter(t=>e[t]?.name?.toLowerCase().includes(n.toLowerCase())):t,s=o.length,l=Object.keys(e).length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Learned Recipes (`,s,` / `,l,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search recipes...`,onSearch:a}),o.length>0&&(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:o.map(t=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$2,{recipe:e[t]})},t))})]})}RecipeList.propTypes={allRecipes:import_prop_types$1.default.object.isRequired,learnedRecipes:import_prop_types$1.default.array.isRequired};function getUpgradesAvailable({learnedForgeRecipes:e,toolLevels:t}){let n=[],a=upgrades;for(let o of Object.keys(a)){let s=a[o][t[o]];if(s&&!s.isMaxLevel&&s.nextLevel){let t=a[o][s.nextLevel];if(!t)continue;let l=!0;if(t.ingredients)for(let n of Object.keys(t.ingredients))l&&=!!(!recipesMap[n]||e.includes(n));l&&n.push(t)}}return n}function ForgeTabPanel({currentTab:e,index:t,learnedForgeRecipes:n,toolLevels:a}){let o=getUpgradesAvailable({toolLevels:a,learnedForgeRecipes:n});return(0,import_jsx_runtime.jsxs)(TabPanel$1,{value:e,index:t,children:[(0,import_jsx_runtime.jsx)(RecipeList,{learnedRecipes:n,allRecipes:recipeCategories[recipeType.FORGE]}),o.length?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsxs)(`ul`,{className:`card-list`,children:[(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(`h4`,{children:`Tool Upgrades`})}),o.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Consumer$3,{upgrade:e})},e.id))]})]}):null,(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Forge recipes are learned by selling resources mined from the field.`})})})})})]})}ForgeTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired,learnedForgeRecipes:import_prop_types$1.array.isRequired,toolLevels:import_prop_types$1.object.isRequired};function KitchenTabPanel({currentTab:e,index:t,learnedKitchenRecipes:n}){return(0,import_jsx_runtime.jsxs)(TabPanel$1,{value:e,index:t,children:[(0,import_jsx_runtime.jsx)(RecipeList,{learnedRecipes:n,allRecipes:recipeCategories[recipeType.KITCHEN]}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Kitchen recipes are learned by selling crops and animal products. Sell as much as you can of a wide variety of items!`})})})})})]})}KitchenTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired,learnedKitchenRecipes:import_prop_types$1.array.isRequired};function RecyclingTabPanel({currentTab:e,index:t,learnedRecipes:n}){return(0,import_jsx_runtime.jsxs)(TabPanel$1,{value:e,index:t,children:[(0,import_jsx_runtime.jsx)(RecipeList,{learnedRecipes:n,allRecipes:recipeCategories[recipeType.RECYCLING]}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Recyling recipes are learned by selling items foraged from the field.`})})})})})]})}RecyclingTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired,learnedRecipes:import_prop_types$1.array.isRequired};function WoodChipperTabPanel({currentTab:e,index:t,learnedRecipes:n}){return(0,import_jsx_runtime.jsxs)(TabPanel$1,{value:e,index:t,children:[(0,import_jsx_runtime.jsx)(RecipeList,{learnedRecipes:n,allRecipes:recipeCategories[recipeType.WOOD_CHIPPER]}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Wood Chipper recipes are learned by selling wood chopped from trees.`})})})})})]})}WoodChipperTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired,learnedRecipes:import_prop_types$1.array.isRequired};var Workshop=({learnedRecipes:e,purchasedComposter:t,purchasedSmelter:n,purchasedWoodChipper:a,toolLevels:o})=>{let s=Object.keys(e).filter(e=>recipesMap[e].recipeType===recipeType.KITCHEN),l=Object.keys(e).filter(e=>recipesMap[e].recipeType===recipeType.FORGE),u=Object.keys(e).filter(e=>recipesMap[e].recipeType===recipeType.RECYCLING),d=Object.keys(e).filter(e=>recipesMap[e].recipeType===recipeType.WOOD_CHIPPER),f=n,m=f?2:1,h=m+ +!!t,[v,y]=useTabQueryParam([`Kitchen`,f?`Forge`:``,t?`Recycling`:``,a?`Wood Chipper`:``].filter(Boolean));return(0,import_jsx_runtime.jsxs)(Div,{className:`Workshop`,sx:centerTabsSx,children:[(0,import_jsx_runtime.jsxs)(Tabs,{value:v,onChange:(e,t)=>y(t),"aria-label":`Workshop tabs`,children:[(0,import_jsx_runtime.jsx)(Tab,{label:`Kitchen`,...a11yProps$1(0)}),f?(0,import_jsx_runtime.jsx)(Tab,{label:`Forge`,...a11yProps$1(1)}):null,t?(0,import_jsx_runtime.jsx)(Tab,{label:`Recycling`,...a11yProps$1(m)}):null,a?(0,import_jsx_runtime.jsx)(Tab,{label:`Wood Chipper`,...a11yProps$1(h)}):null]}),(0,import_jsx_runtime.jsx)(KitchenTabPanel,{currentTab:v,index:0,learnedKitchenRecipes:s}),f?(0,import_jsx_runtime.jsx)(ForgeTabPanel,{currentTab:v,index:1,learnedForgeRecipes:l,toolLevels:o}):null,t?(0,import_jsx_runtime.jsx)(RecyclingTabPanel,{currentTab:v,index:m,learnedRecipes:u}):null,a?(0,import_jsx_runtime.jsx)(WoodChipperTabPanel,{currentTab:v,index:h,learnedRecipes:d}):null]})};Workshop.propTypes={learnedRecipes:import_prop_types$1.object.isRequired,purchasedComposter:import_prop_types$1.number,purchasedSmelter:import_prop_types$1.number,purchasedWoodChipper:import_prop_types$1.number,toolLevels:import_prop_types$1.object.isRequired};function Consumer$1(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Workshop,{...t,...n,...e})})}var TabPanel=e=>{let{children:t,value:n,index:a,...o}=e;return(0,import_jsx_runtime.jsx)(`section`,{role:`tabpanel`,hidden:n!==a,id:`cellar-tabpanel-${a}`,"aria-labelledby":`cellar-tab-${a}`,...o,children:n===a?t:null})};TabPanel.propTypes={children:import_prop_types$1.node,index:import_prop_types$1.number.isRequired,value:import_prop_types$1.number.isRequired};var a11yProps=e=>({id:`cellar-tab-${e}`,"aria-controls":`cellar-tabpanel-${e}`});function Keg({keg:e}){let{handlers:{handleSellKegClick:t,handleThrowAwayKegClick:n},gameState:{completedAchievements:a}}=(0,import_react$24.useContext)(FarmhandContext),o=itemsMap[e.itemId],s=items[o.id],l=getKegDisplayName(o),u=()=>{t(e)},d=()=>{n(e)},f=e.daysUntilMature<=0,m=getKegValue(e)*getSalePriceMultiplier(a);wineService.isWineRecipe(o)&&(s=wines[o.variety]);let h=getKegSpoilageRate(e),v=Number((h*100).toPrecision(2));return(0,import_jsx_runtime.jsxs)(Card,{className:`Keg`,sx:{position:`relative`,"& .MuiCardHeader-avatar img":{width:`3em`,filter:`drop-shadow(1px 1px 2px rgba(255, 0, 131, 0.63))`}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:l,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:s,alt:l}),subheader:(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:f?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days since ready: `,Math.abs(e.daysUntilMature)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Current value:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:m,formatter:moneyString})]}),cellarService.doesKegSpoil(e)&&(0,import_jsx_runtime.jsxs)(`p`,{children:[`Potential for spoilage: `,v,`%`]})]}):(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days until ready: `,e.daysUntilMature]})})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`sell-keg`,color:`error`,onClick:u,variant:`contained`,disabled:!f,children:`Sell`}),f?null:(0,import_jsx_runtime.jsx)(Button,{className:`throw-away-keg`,color:`error`,onClick:d,variant:`contained`,children:`Throw away`})]})]})}Keg.propTypes={keg:import_prop_types$1.object.isRequired};var CellarInventoryTabPanel=({index:e,currentTab:t})=>{let[n,a]=(0,import_react$24.useState)(``),{gameState:{cellarInventory:o,purchasedCellar:s}}=(0,import_react$24.useContext)(FarmhandContext),l=n.toLowerCase().split(` `).filter(e=>e.length>0),u=o.filter(e=>{let t=itemsMap[e.itemId].name.toLowerCase(),n=`${FERMENTED_CROP_NAME}${t}`;return l.every(e=>n.includes(e)||t.includes(e))}),d=PURCHASEABLE_CELLARS.get(s);if(d===void 0)throw TypeError(`Invalid purchasedCellar value: ${s}`);return(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Capacity: `,integerString(o.length),` /`,` `,integerString(d.space)]}),o.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search kegs...`,onSearch:a}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:u.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Keg,{keg:e})},e.id))}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`This is your inventory of Cellar kegs.
|
|
838
838
|
|
|
839
839
|
Keg contents take time to reach maturity before they can be sold. After they reach maturity, keg contents become higher in quality over time and their value grows.
|
|
840
840
|
|
|
841
841
|
Kegs that contain fermented crops compound in value at a rate of ${KEG_INTEREST_RATE}% a day but have an increasing chance of spoiling.
|
|
842
842
|
|
|
843
|
-
Kegs that contain wine compound in value at a rate of ${WINE_INTEREST_RATE}% for up to ${integerString(100)} days and never spoil.`})})})})})]})};CellarInventoryTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};function getCropsAvailableToFerment(e){return Object.keys(e.items).reduce((e,t)=>{let n=getFinalCropItemFromSeedItem(itemsMap[t]);return n&&Number.isFinite(n.daysToFerment)&&e.push(n),e},[])}var FermentationRecipe=({item:e})=>{let{gameState:{inventory:t,cellarInventory:n,purchasedCellar:a},handlers:{handleMakeFermentationRecipeClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=getInventoryQuantityMap(t),d=FERMENTED_CROP_NAME`${e}`,{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0};(0,import_react$24.useEffect)(()=>{l(Math.min(getMaxYieldOfFermentationRecipe(e,t,n,f),Math.max(1,s)))},[n,f,t,e,s]);let m=s>0&&cellarService.doesCellarSpaceRemain(n,a),h=()=>{m&&o(e,s)},v=getMaxYieldOfFermentationRecipe(e,t,n,f),y=cellarService.getItemInstancesInCellar(n,e);return(0,import_jsx_runtime.jsxs)(Card,{className:`FermentationRecipe`,sx:{position:`relative`,"& .MuiCardHeader-avatar img":{width:`3em`,filter:`drop-shadow(1px 1px 2px rgba(255, 0, 131, 0.63))`}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:d,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:items[e.id],alt:d}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to ferment: `,e.daysToFerment]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,itemsMap[e.id].name,` in inventory:`,` `,integerString(u[e.id]??0)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of`,` `,itemsMap.salt.name,` `,`required: `,getSaltRequirementsForFermentationRecipe(e),` `,`(available:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:u[itemsMap.salt.id]??0,formatter:integerString}),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(y??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`make-recipe`,color:`primary`,disabled:!m||!s,onClick:h,variant:`contained`,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:h,handleUpdateNumber:l,maxQuantity:v,setQuantity:l,value:s})]})]})};FermentationRecipe.propTypes={item:import_prop_types$1.object.isRequired};var totalFermentableItems=Object.keys(fermentableItemsMap).length,FermentationRecipeList=()=>{let{gameState:{levelEntitlements:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getCropsAvailableToFerment(e),[n,a]=(0,import_react$24.useState)(``),o=n.toLowerCase().split(` `).filter(e=>e.length>0),s=t.filter(e=>{let t=e,n=`${FERMENTED_CROP_NAME}${t.name}`.toLowerCase();return o.every(e=>n.includes(e)||t.name.toLowerCase().includes(e))}),l=s.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Fermentation Recipes (`,l,` /`,` `,totalFermentableItems,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search fermentation recipes...`,onSearch:a}),s.length>0&&(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:s.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(FermentationRecipe,{item:e})},e.id))})]})};FermentationRecipeList.propTypes={};var FermentationTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(FermentationRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Some items can be fermented and become much more valuable over time.`})})})})})]});FermentationTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var getGrapesSold=e=>Object.entries(e).reduce((e,[t,n])=>{let a=itemsMap[t];return(n||0)>0&&isGrape(a)&&e.push(a),e},[]);function getWineVarietiesAvailableToMake(e){return getGrapesSold(e).map(({variety:e})=>e)}var WineRecipe=({wineVariety:e})=>{let{gameState:{cellarInventory:t,inventory:n,purchasedCellar:a},handlers:{handleMakeWineClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=grapeVarietyNameMap[e],d=grapeVarietyToGrapeItemMap[e],{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0},m=getInventoryQuantityMap(n);if((0,import_react$24.useEffect)(()=>{d&&l(Math.min(wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),Math.max(1,s)))},[t,f,d,n,s,e]),!d)return null;let h=itemsMap[d.wineId];if(!h)return null;let v=m[d.id]??0,y=m[yeast.id]??0,b=s>0&&v>=50&&cellarService.doesCellarSpaceRemain(t,a),x=!b||!s,S=cellarService.getItemInstancesInCellar(t,h),C=wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),T=()=>{b&&o(d,s)};return(0,import_jsx_runtime.jsxs)(Card,{className:`WineRecipe`,sx:{position:`relative`},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:u,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:wines[e],alt:u}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to mature:`,` `,integerString(wineService.getDaysToMature(e))]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,d.name,` required:`,` `,integerString(50),` (available:`,` `,integerString(v),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,yeast.name,` required:`,` `,integerString(getYeastRequiredForWine(e)*s),` `,`(available: `,integerString(y),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(S??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{color:`primary`,variant:`contained`,disabled:x,onClick:T,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:T,handleUpdateNumber:l,maxQuantity:C,setQuantity:l,value:s})]})]})};WineRecipe.propTypes={wineVariety:(0,import_prop_types$1.oneOf)(Object.keys(grapeVariety))};var totalGrapeVarieties=Object.keys(grapeVariety).length,WineRecipeList=()=>{let{gameState:{itemsSold:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getWineVarietiesAvailableToMake(e),[n,a]=(0,import_react$24.useState)(``),o=t.filter(e=>e.toLowerCase().includes(n.toLowerCase())),s=o.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Wine Recipes (`,s,` /`,` `,totalGrapeVarieties,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search wine varieties...`,onSearch:a}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:o.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(WineRecipe,{wineVariety:e})},e))})]})},WinemakingTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(WineRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Grapes can be made into wine. Wine becomes very valuable in time and never spoils.`})})})})})]});WinemakingTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var CELLAR_TAB_LABELS=[`Cellar Inventory`,`Fermentation`,`Winemaking`],Cellar=()=>{let[e,t]=useTabQueryParam(CELLAR_TAB_LABELS);return(0,import_jsx_runtime.jsxs)(Div,{className:`Cellar`,sx:centerTabsSx,children:[(0,import_jsx_runtime.jsx)(Tabs,{value:e,onChange:(e,n)=>t(n),"aria-label":`Cellar tabs`,children:CELLAR_TAB_LABELS.map((e,t)=>(0,import_jsx_runtime.jsx)(Tab,{label:e,...a11yProps(t)},e))}),(0,import_jsx_runtime.jsx)(CellarInventoryTabPanel,{index:0,currentTab:e}),(0,import_jsx_runtime.jsx)(FermentationTabPanel,{index:1,currentTab:e}),(0,import_jsx_runtime.jsx)(WinemakingTabPanel,{index:2,currentTab:e})]})};Cellar.propTypes={};var brown_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAk0lEQVRoge2UoRGAMBAECZYS8HRDw5QSnxKig88gfgaxl59befPi12wZzz22idr6dp3HPEvu5UtgJXb6gb9YgCaPQG3980B9d4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNDkFVAoT2V0hGgvQ5BFQLExkd4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNMsLvBG5ypkvoIETAAAAAElFTkSuQmCC`,floorboard_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAAwCAYAAAD+WvNWAAAAAXNSR0IArs4c6QAAAUxJREFUeJzt3TFuwkAQheEFjSUQoo1EKJIid8oFuFMuwEVyjYgCCrBEayEiuQgtASNBXvDMmv8rt9nR7pPG24x7X/PZT0LryqpKk/HYuwxZ37sA5I0AQWJlVXnX8LC6cPY2rL9/LeyLQTpdAy6hhUFCgCAhQJDYvhicLTatAU3OPqIRW7RHDi0MEgIECQGCpPEjGrFFujObTl68a8CRdblKOd0JLQwSAgQJAYKEAEFCgCCxdbnyrgEncroTexoVrW643dWp7T1xP7QwSAgQJAQIEgIECQGCxLa7uvVNPfbEfdjb67N3DY0Wy02KWlvu/vNsaWGQECBICBAkBAiS3ufHOwOm8GdhX2FeeP3dhhYGCQGChABBQoAgIUCQ2GK58a4hHM7kelfPB4o2lwYx0MIgIUCQECBICBAkNw2YijTYCDFYF345lKOu/O7pAEBLR2y+MLyqAAAAAElFTkSuQmCC`,jack_o_lantern_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAA4UlEQVRYR+2VMQ6DMAxFYe4R2LsxdOopuHBv0KkDW/ceoTOVK/0qhICd8K0wNBNyIv3nH5PfTrdhaiqu9vAAz9f768+5O7n4tOmAt7h0tAAIRde+mVbMACCoCTCv4wcQio+Pe9NfrjOOuMaCWACIEBYgUjU3AM1+7LsCVL0CdBjaLrV4JugOiEjVvwCdhxDoMlWzzop27vhZoHWwd//vgLsDWqK6AmjiyTjeO1S5cU51oOQhowGUxjkdIDfO6QDWGcIz7wKQE+cuAOKCNc5pAKVxTgWIISxxTgewDiHOVQf4AHx92LXFZzetAAAAAElFTkSuQmCC`,winter_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAQdJREFUeJztmcERgyAUBZ9pIjVRUa5UldT0K/BITnhKZpgYXYG3Bei6oyCwxFrKPb9EEznpTI/ISZK06PEsp931YkROcweQpBstQNMcoH4zo9EUoD78iBGaAtTR+Qqzxb/xIEgL0DgALUDTTYCjZiAPgrQAjQPQAjQOcNSFe1k3eBagBWgcgBagcYBeRuujmP4NWGIt2zQ44pbXN7aDkaucDFH4E/Cf4OQ4AC1A4wC0AI0D0AI0DkAL0DgALUDjALQAze4AkVM3hyCfmP4N8H4ALUDjALQAjQPQAjQOQAvQOAAtQDNEgD3rkSECSL+fbHstQAvQOAAtQOMAtACNA9ACFWJjNXLSG2nxQbKUEorlAAAAAElFTkSuQmCC`,yellow_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAx0lEQVRoQ+2WwQ3AIAwDYRVW6dx9dg1GKf1WlEcTAUks94maBHzGIt/taqn7aj1TKUe/nDyu59EBPjt3vMADWMMhATcEPCbMnySkhdxYyHoj2vm0kFa5WXVDApESiRaaZQVtHxLQKjerDodApOR5v5FwCMzy5O4+JLBb8X4eJoFIiYRJwNrXkvkkIFFrxb84BCIlD99CK7ys7YlzB7QKWNdhEoiUSJgErH0tmU8CErVW/ItDIFLy8C20wsvanjh3QKuAdV14Ag9MlnJUFzG78wAAAABJRU5ErkJgggAA`,lavender_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAyUlEQVRoQ+2WwRGAIAwEQw0WYf/l+LQAPzaAXwd5mAyQ5OZ8MiaB2+OGcp+1SvNdh8i2t6siEddL7wDfrcdd4QG82ZBAGAIRE+ZPEtJCYSzkvRHrfFrIqtyoui6BTIlEC42ygrUPCViVG1WHQyBT8rzfSDgERnlydR8SWK14Ow+TQKZEwiTg7WvNfBLQqDXjXxwCmZKHb6EZXrb2xLkDVgW86zAJZEokTALevtbMJwGNWjP+xSGQKXn4FprhZWtPnDtgVcC7Lj2BB3XCNohEy6k2AAAAAElFTkSuQmCC`,grass_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABp0lEQVRoQ92Y63HDMAyD5RE6QMfLCp2qi2SODtARkmt7yTmuJIAEeHbiv+LrIyjZ8vJxbpe28/P91drbe66IZQ2gBMql//Ni8o5sZAAm+RqOtd/aUQCzLo4CsAXdYrP2rN2DAhkAZXQcvjSAI1lFjBIAVn4H0K4ADtASALaz7EkzO8V+ARydYItWD4ptrVMAJ5gz1roJ0xFyJnXGogGiclcVOasjvYl7xT4VgGPTOmKkFXAkd8S4AyD50fqoGNZvZjdbex0Ah5xsDFYVJp60B7KFZP16d4pdAJjOsu8gCaCXRO1uFE6+E28TPj1AtIOqinCEqjuqfpIcEiCiIgRAwaoVmt3GftZKAdxwvXjL6bNdsv8lj6BOKYB6wqAGWUaISYLmOBrDcqVUkiLfyN75t4lZZ9YOFauO2SEBItDyMcp+NTJFZVSlATLBoz6Za2UpANN11mb0zUQDsIlYu6g6o81uAcgUk/HpQewG4Hq50b9V2NHI2ClqHAIgA33zgSOkdMcxJij/6wMo8lb5rlWBCkSLQJKjeIy/BIASoHUHgHQfUAtEANH1K9JWO4Tg58LYAAAAAElFTkSuQmCC`,forest_floor_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAWRJREFUaIHlWTkSgzAMNH6AO16V/78inT+QVDREYB2rg8mWjBHs6rBkb+M1Pu2Euc823uP8uCQ69RD583OfMFsUSAJIcMXQEjUTQCms9bqZQHauqAl4xzYXagIZylOi/RCIUlbzHUq0HwJRyqK+415GD3h5NoyAl2dVBO7URCjNsXGs2ahe6ElwD6GVmlaPpfdC1twISWLPvaV7u7g57y0d7WK02it78BBCq72yF7aRecF9oJGGlHQ9SUBiBJ1D0vXuQ/0K0I0sY8qCbmR3xiQNViTYScxRKmPMLFlGJZ6En0pEtx7wUwmvMLoShl2Fss+BroRhVyGOsqWrEAfWMqzBf55KVEIZApD7gcxKA7kfoIxkl88Velv8pFaZKOK9OVWIqMbOlMQaldFtuYmARmVUW36QZBOolswHyWUSn1+oBrck1kDj5TI7cVMKyb6lfMxQb5m0rtZIiEFO5tAfk8wJ0jD6AhfOowgv6la0AAAAAElFTkSuQmCC`,Stage=({field:e,isMenuOpen:t=!0,stageFocus:n,useAlternateEndDayButtonPosition:a=!1,viewTitle:o})=>{let s=(0,import_react$24.useRef)(null);(0,import_react$24.useEffect)(()=>{if(s.current){let e=s.current,{style:t}=e;e.scrollTop=0,t.overflow=`hidden`,setTimeout(()=>t.overflow=``,0)}},[n]);let l={[stageFocusType.HOME]:isOctober()?jack_o_lantern_bg_default:isDecember()?winter_bg_default:brown_dot_bg_default,[stageFocusType.SHOP]:yellow_dot_bg_default,[stageFocusType.WORKSHOP]:lavender_dot_bg_default,[stageFocusType.CELLAR]:floorboard_default,[stageFocusType.FIELD]:grass_default,[stageFocusType.COW_PEN]:grass_default,[stageFocusType.FOREST]:forest_floor_default}[n];return(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Stage`,{"is-october":isOctober(),"is-december":isDecember()}),"data-stage-focus":n,role:`main`,ref:s,sx:e=>({backgroundSize:`96px`,flex:2,imageRendering:`pixelated`,marginLeft:0,overflow:`auto`,padding:`1.5em 1.5em 0`,position:`relative`,transition:e.transitions.create(`margin-left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),...l?{backgroundImage:`url(${l})`}:{},...[stageFocusType.FIELD,stageFocusType.COW_PEN,stageFocusType.FOREST].includes(n)?{backgroundSize:`30%`,[`@media (min-width: ${breakpoints.md}px)`]:{backgroundSize:`10%`}}:{},...n===stageFocusType.CELLAR?{backgroundSize:`288px 96px`}:{},"& h3":{textAlign:`center`},"& h2":{fontSize:`1.2em`},"& .view-title":{fontSize:`2.5em`,marginBottom:`0.6em`,textAlign:`center`,[`@media (min-width: ${breakpoints.largePhone}px)`]:{display:`none`}},"& section":{padding:`0.5em 0`,[`@media (max-width: ${breakpoints.sm}px)`]:{fontSize:`1em`}},...a?{paddingTop:`4em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{paddingTop:`4.5em`}}:{},...t?{transitionProperty:`padding, margin-left`,[`@media (max-width: ${breakpoints.sm}px)`]:{padding:0},"& > *":{opacity:1,transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),[`@media (max-width: ${breakpoints.sm}px)`]:{opacity:0}}}:{marginLeft:`-${layout.sidebarWidth}`,transition:e.transitions.create(`margin-left`,{duration:e.transitions.duration.leavingScreen,easing:e.transitions.easing.sharp}),[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`-${layout.narrowSidebarWidth}px`}}}),children:[(0,import_jsx_runtime.jsx)(`h2`,{className:`view-title`,children:o}),n===stageFocusType.HOME&&(0,import_jsx_runtime.jsx)(Consumer$7,{}),n===stageFocusType.FIELD&&(0,import_jsx_runtime.jsx)(Consumer$10,{columns:e[0].length,rows:e.length}),n===stageFocusType.FOREST&&(0,import_jsx_runtime.jsx)(Forest,{}),n===stageFocusType.SHOP&&(0,import_jsx_runtime.jsx)(Consumer$4,{}),n===stageFocusType.COW_PEN&&(0,import_jsx_runtime.jsx)(Consumer$6,{}),n===stageFocusType.WORKSHOP&&(0,import_jsx_runtime.jsx)(Consumer$1,{}),n===stageFocusType.CELLAR&&(0,import_jsx_runtime.jsx)(Cellar,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]})};Stage.propTypes={field:(0,import_prop_types$1.arrayOf)(import_prop_types$1.array).isRequired,isMenuOpen:import_prop_types$1.bool,stageFocus:import_prop_types$1.string.isRequired,useAlternateEndDayButtonPosition:import_prop_types$1.bool,viewTitle:import_prop_types$1.string.isRequired};function Consumer(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Stage,{...t,...n,...e})})}var scriptRel=`modulepreload`,assetsURL=function(e,t){return new URL(e,t).href},seen={},__vitePreload=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),o=document.querySelector(`meta[property=csp-nonce]`),s=o?.nonce||o?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}a=l(t.map(t=>{if(t=assetsURL(t,n),t=u(t),t in seen)return;seen[t]=!0;let a=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let o=e[n];if(o.href===t&&(!a||o.rel===`stylesheet`))return}let o=document.createElement(`link`);if(o.rel=a?`stylesheet`:scriptRel,a||(o.as=`script`),o.crossOrigin=``,o.href=t,s&&o.setAttribute(`nonce`,s),document.head.appendChild(o),a)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function o(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return a.then(t=>{for(let e of t||[])e.status===`rejected`&&o(e.reason);return e().catch(o)})},autoUpdateMode=`false`,selfDestroying=`false`,auto=autoUpdateMode===`true`,autoDestroy=selfDestroying===`true`;function registerSW(e={}){let{immediate:t=!1,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,d,f,m,h=async(e=!0)=>{await f,auto||m?.()};async function v(){if(`serviceWorker`in navigator){if(d=await __vitePreload(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Bd17z0YL.js`);return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e(`./service-worker.js`,{scope:`./`,type:`classic`})).catch(e=>{u?.(e)}),!d)return;if(m=()=>{d?.messageSkipWaiting()},!autoDestroy)if(auto)d.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&(n?n():window.location.reload())}),d.addEventListener(`installed`,e=>{e.isUpdate||o?.()});else{let e=!1,t=()=>{e=!0,d?.addEventListener(`controlling`,e=>{e.isUpdate&&(n?n():window.location.reload())}),a?.()};d.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&o?.():n.isExternal?t():!e&&o?.():n.isUpdate||o?.()}),d.addEventListener(`waiting`,t)}d.register({immediate:t}).then(e=>{l?l(`./service-worker.js`,e):s?.(e)}).catch(e=>{u?.(e)})}}return f=v(),h}function useRegisterSW(e={}){let{immediate:t=!0,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,[d,f]=(0,import_react$24.useState)(!1),[m,h]=(0,import_react$24.useState)(!1),[v]=(0,import_react$24.useState)(()=>registerSW({immediate:t,onNeedReload:n,onOfflineReady(){h(!0),o?.()},onNeedRefresh(){f(!0),a?.()},onRegistered:s,onRegisteredSW:l,onRegisterError:u}));return{needRefresh:[d,f],offlineReady:[m,h],updateServiceWorker:v}}var UpdateNotifier=()=>{let{handlers:{handleGameUpdateAvailable:e}}=(0,import_react$24.useContext)(FarmhandContext),{needRefresh:[t],updateServiceWorker:n}=useRegisterSW();return(0,import_react$24.useEffect)(()=>{t&&(e(n),window.addEventListener(`beforeunload`,()=>{n(!0)}))},[t,e,n]),null},commonFetchConfig={mode:`cors`,cache:`no-cache`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},redirect:`follow`,referrerPolicy:`no-referrer`};async function getData(e=``,t={}){let n=new URLSearchParams;return Object.keys(t).forEach(e=>n.append(encodeURIComponent(e),encodeURIComponent(t[e]))),(await fetch(`${e}?${n}`,{...commonFetchConfig,method:`GET`})).json()}async function postData(e=``,t={}){return(await fetch(e,{...commonFetchConfig,method:`POST`,body:JSON.stringify(t)})).json()}var createNewField=()=>Array(10).fill(void 0).map(()=>[,,,,,,].fill(null)),createNewForest=()=>[,].fill(void 0).map(()=>[,,,,].fill(null)),doesMenuObstructStage=()=>window.innerWidth<BREAKPOINTS.MD,getAvailableShopInventory=memoize(e=>inventory.filter(({id:t})=>!(unlockableItems.hasOwnProperty(t)&&!e.items.hasOwnProperty(t)))),getPeerMetadata=e=>{let t=PEER_METADATA_STATE_KEYS.reduce((t,n)=>(t[n]=e[n],t),{});return Object.assign(t,{cowOfferedForTrade:e.cowInventory.find(({id:t})=>t===e.cowIdOfferedForTrade)}),t},getViewList=({isForestUnlocked:e,purchasedCellar:t,purchasedCowPen:n,showHomeScreen:a})=>{let{CELLAR:o,COW_PEN:s,HOME:l,WORKSHOP:u,FOREST:d}=stageFocusType,f=[...STANDARD_VIEW_LIST];return a&&f.unshift(l),e&&f.push(d),n&&f.push(s),f.push(u),t&&f.push(o),f},getValidatedStageFocusFromHash=e=>{let t=getHashQueryParams().get(VIEW_QUERY_PARAM_NAME);if(!t)return;let n=getLevelEntitlements(levelAchieved(e.experience)).stageFocusType[stageFocusType.FOREST];return getViewList({isForestUnlocked:n,purchasedCellar:e.purchasedCellar,purchasedCowPen:e.purchasedCowPen,showHomeScreen:e.showHomeScreen}).find(e=>e===t)},sleep=e=>new Promise(t=>setTimeout(t,e)),{PLANT}=fieldMode,{MULCH}=itemType,FarmhandService=class{static computePlayerInventory=memoize((e,t)=>e.map(({quantity:e,id:n})=>({quantity:e,...itemsMap[n],value:getItemCurrentValue(itemsMap[n],t)})));static getFieldToolInventory=memoize(e=>e.filter(({id:e})=>{let t=itemsMap[e];return typeof t.enablesFieldMode==`string`&&t.enablesFieldMode!==PLANT&&t.type!==MULCH}).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getPlantableCropInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e].isPlantableCrop).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getMulchInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e]?.type===MULCH).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getPlantableTreeInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e]?.isPlantableTree).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static applyPriceEvents=(e,t,n)=>{let a={...e};return Object.keys(t).forEach(e=>{a[e]=.5}),Object.keys(n).forEach(e=>{a[e]=1.5}),a}},itemIds=Object.keys(itemsMap),getInventoryQuantities=e=>{let t={};for(let e of itemIds)t[e]=0;for(let{id:n,quantity:a}of e)t[n]=a;return t},useFarmhandNavigation=(e,t)=>({openDialogView:(0,import_react$24.useCallback)(t=>{e(e=>({...e,currentDialogView:t,isDialogViewOpen:!0}))},[e]),closeDialogView:(0,import_react$24.useCallback)(()=>{e(e=>({...e,isDialogViewOpen:!1}))},[e]),focusNextView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus);return{...e,stageFocus:t[(n+1)%t.length]}})},[e,t]),focusPreviousView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus),a=n===0?t.length-1:(n-1)%t.length;return{...e,stageFocus:t[a]}})},[e,t])}),{floor,random,sin}=Math,libName=`Trystero`,alloc=(e,t)=>Array(e).fill(void 0).map(t),charSet=`0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz`,genId=e=>alloc(e,()=>charSet[floor(random()*62)]??``).join(``),selfId=genId(20),all=Promise.all.bind(Promise),isBrowser=typeof window<`u`,{entries,fromEntries,keys,values}=Object,noOp=()=>{},candidateType=`candidate`,resetTimer=e=>(e!==null&&clearTimeout(e),null),mkErr=e=>Error(`${libName}: ${e}`),toErrorMessage=(e,t)=>e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:toJson(e??t),toError=(e,t)=>e instanceof Error?e:mkErr(toErrorMessage(e,t)),encoder=new TextEncoder,decoder=new TextDecoder,encodeBytes=e=>encoder.encode(e),decodeBytes=e=>decoder.decode(e),toHex=e=>e.reduce((e,t)=>e+t.toString(16).padStart(2,`0`),``),topicPath=(...e)=>e.join(`@`),shuffle=(e,t)=>{let n=[...e],a=()=>{let e=sin(t++)*1e4;return e-floor(e)},o=n.length;for(;o;){let e=floor(a()*o--),t=n[o];n[o]=n[e],n[e]=t}return n},getRelays=(e,t,n,a=!1)=>e.relayConfig?.urls||(a?shuffle(t,strToNum(e.appId)):t).slice(0,e.relayConfig?.redundancy??n),toJson=JSON.stringify,fromJson=e=>{try{return JSON.parse(e)}catch{throw mkErr(`failed to parse JSON: ${e}`)}},strToNum=(e,t=2**53-1)=>e.split(``).reduce((e,t)=>e+t.charCodeAt(0),0)%t,defaultRetryMs=3333,socketRetryPeriods={},reconnectionLockingPromise=null,resolver=null,pauseRelayReconnection=()=>{reconnectionLockingPromise||=new Promise(e=>{resolver=e}).finally(()=>{resolver=null,reconnectionLockingPromise=null})},resumeRelayReconnection=()=>{resolver?.()},makeSocket=(e,t)=>{let n={},a=()=>{let o=new WebSocket(e);o.onclose=()=>{if(reconnectionLockingPromise){reconnectionLockingPromise.then(a);return}socketRetryPeriods[e]??=defaultRetryMs,setTimeout(a,socketRetryPeriods[e]),socketRetryPeriods[e]*=2},o.onmessage=e=>t(String(e.data)),n.socket=o,n.url=o.url,n.ready=new Promise(t=>o.onopen=()=>{t(n),socketRetryPeriods[e]=defaultRetryMs}),n.send=e=>{o.readyState===1&&o.send(e)}};return a(),n},createRelayManager=e=>{let t={},n=new WeakMap,a=e=>{let t=n.get(e);if(!t)throw mkErr(`relay bookkeeping missing registration for relay client`);return t};return{register:(e,a)=>(t[e]=a,n.set(a,e),a),keyOf:a,scoped:()=>{let e={},t=t=>e[t]??={};return{forKey:t,forRelay:e=>t(a(e))}},getSockets:()=>fromEntries(entries(t).flatMap(([t,n])=>{let a=e(n);return a?[[t,a]]:[]}))}},watchOnline=()=>{if(isBrowser){let e=new AbortController;return addEventListener(`online`,resumeRelayReconnection,{signal:e.signal}),addEventListener(`offline`,pauseRelayReconnection,{signal:e.signal}),()=>e.abort()}return noOp},algo=`AES-GCM`,strToSha1={},pack=e=>btoa(String.fromCharCode.apply(null,Array.from(new Uint8Array(e)))),unpack=e=>{let t=atob(e);return new Uint8Array(t.length).map((e,n)=>t.charCodeAt(n)).buffer},hashWith=async(e,t)=>new Uint8Array(await crypto.subtle.digest(e,encodeBytes(t))),sha1=async e=>strToSha1[e]??=Array.from(await hashWith(`SHA-1`,e)).map(e=>e.toString(36)).join(``),genKey=async(e,t,n)=>crypto.subtle.importKey(`raw`,await crypto.subtle.digest({name:`SHA-256`},encodeBytes(`${e}:${t}:${n}`)),{name:algo},!1,[`encrypt`,`decrypt`]),deriveRoomNamespace=async(e,t)=>toHex(await hashWith(`SHA-256`,`${libName}:${e}:${t}`)),joinChar=`$`,ivJoinChar=`,`,encrypt=async(e,t)=>{let n=crypto.getRandomValues(new Uint8Array(16));return n.join(ivJoinChar)+joinChar+pack(await crypto.subtle.encrypt({name:algo,iv:n},await e,encodeBytes(t)))},decrypt=async(e,t)=>{let[n,a]=t.split(joinChar);return decodeBytes(await crypto.subtle.decrypt({name:algo,iv:new Uint8Array(n?.split(ivJoinChar).map(Number)??[])},await e,unpack(a??``)))},offerTtl=57333,offerLeaseTtlMs=18e4,poolSize=20,OfferPool=class{pool=[];pooled=new Set;leased=new Map;recycling=new Set;cleanupTimer=null;active=!1;constructor(e){this.makeOffer=e}get isActive(){return this.active}warmup(){this.pool=[],this.pooled.clear(),alloc(poolSize,this.makeOffer).forEach(e=>this.push(e)),this.active=!0,this.cleanupTimer=setInterval(()=>{this.pool=this.pool.filter(e=>e.isDead?(this.pooled.delete(e),!1):!0)},offerTtl)}push(e){e.isDead||this.pooled.has(e)||this.leased.has(e)||(this.pool.push(e),this.pooled.add(e))}shift(e){let t=[];for(;t.length<e&&this.pool.length>0;){let e=this.pool.shift();if(!e)break;this.pooled.delete(e),t.push(e)}return t}claimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e))}recycle(e){if(!(e.isDead||this.recycling.has(e))){if(e.connection.remoteDescription){e.destroy();return}if(!this.active){e.destroy();return}this.recycling.add(e),e.setHandlers({connect:noOp,close:noOp,error:noOp}),e.getOffer(!0).then(t=>{if(!t||t.type!==`offer`||e.isDead||!this.active){e.destroy();return}this.push(e)}).catch(()=>e.destroy()).finally(()=>this.recycling.delete(e))}}reclaimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e),this.recycle(e))}lease(e){this.claimLeased(e),this.leased.set(e,setTimeout(()=>{this.leased.delete(e),this.recycle(e)},offerLeaseTtlMs))}checkout(e,t,n){let a=this.shift(e),o=Math.max(0,e-a.length);o>0&&a.push(...alloc(o,this.makeOffer));let s=async(e,a=!1)=>{try{let a=await n(e);return t?(this.lease(e),{peer:e,offer:a,claim:()=>this.claimLeased(e),reclaim:()=>this.reclaimLeased(e)}):{peer:e,offer:a}}catch(t){if(this.claimLeased(e),this.pooled.delete(e),e.destroy(),!a)return s(this.makeOffer(),!0);throw t}};return all(a.map(e=>s(e)))}getOffers(e,t){return this.checkout(e,!0,t)}destroy(){this.active=!1,this.cleanupTimer&&=(clearInterval(this.cleanupTimer),null),this.pool.forEach(e=>e.destroy()),this.pool=[],this.pooled.clear(),this.leased.forEach((e,t)=>{resetTimer(e),t.destroy()}),this.leased.clear(),this.recycling.forEach(e=>e.destroy()),this.recycling.clear()}},overlapRoomPasswordErr=mkErr(`incorrect password for overlapping room`),createPasswordHandshake=(e,t,n)=>{let a=a=>hashWith(`SHA-256`,`${a}:${e}:${t}:${n}`).then(toHex),o=async(t,n,o)=>{if(!e)return;if(o){let e=genId(36);await t({__trystero_pw:`challenge`,c:e});let{data:o}=await n();if(!o||typeof o!=`object`||o.__trystero_pw!==`response`||typeof o.h!=`string`)throw overlapRoomPasswordErr;let s=await a(e);if(o.h!==s)throw overlapRoomPasswordErr;return}let{data:s}=await n();if(!s||typeof s!=`object`||s.__trystero_pw!==`challenge`||typeof s.c!=`string`)throw overlapRoomPasswordErr;await t({__trystero_pw:`response`,h:await a(s.c)})};return{run:o,compose:t=>e||t?async(e,n,a,s)=>{await o(n,a,s),await t?.(e,n,a,s)}:void 0}},iceTimeout=15e3,disconnectedCloseDelayMs=5e3,iceStateEvent=`icegatheringstatechange`,offerType=`offer`,answerType=`answer`,outOfRangePattern=/out of range/i,rewriteMdnsCandidatesToLoopback=e=>e.replace(/ (\S+\.local) (\d+) typ host/g,` 127.0.0.1 $2 typ host`),peer_default=(e,{trickleIce:t,rtcConfig:n,rtcPolyfill:a,turnConfig:o,_test_only_mdnsHostFallbackToLoopback:s})=>{let l=new(a??RTCPeerConnection)({iceServers:defaultIceServers.concat(o??[]),...n}),u={},d=[],f=[],m=t!==!1,h=[],v=[],y=!1,b=!1,x=null,S=null,C=!1,T=()=>S=resetTimer(S),E=()=>{C||(C=!0,T(),u.close?.())},D=e=>{u.signal?u.signal(e):d.push(e)},O=e=>{let t=u.signal;u.signal=n=>{t?.(n),e(n)},d.length>0&&d.splice(0).forEach(e=>u.signal?.(e))},k=e=>s?rewriteMdnsCandidatesToLoopback(e):e,j=e=>{if(!s||typeof e.candidate!=`string`)return e;let t=rewriteMdnsCandidatesToLoopback(e.candidate);return t===e.candidate?e:{...e,candidate:t}},M=e=>({type:e.localDescription?.type??offerType,sdp:k(e.localDescription?.sdp??``)}),N=()=>{let e=l.remoteDescription?.sdp;return e?e.match(/a=ice-ufrag:([^\s]+)/)?.[1]??null:null},F=()=>(l.remoteDescription?.sdp?.match(/^m=/gm)??[]).length,I=e=>{if(!l.remoteDescription)return!1;let t=F();if(typeof e.sdpMLineIndex==`number`&&t>0&&e.sdpMLineIndex>=t)return!1;let n=N();return!(n&&e.usernameFragment&&e.usernameFragment!==n)},L=async e=>{try{return await l.addIceCandidate(e),!0}catch(t){if(t instanceof Error&&outOfRangePattern.test(t.message)&&typeof e.sdpMLineIndex==`number`)return!1;throw t}},R=async()=>{if(!l.remoteDescription||h.length===0)return;let e=h.splice(0),t=[];for(let n of e){if(!I(n)){t.push(n);continue}await L(n)||t.push(n)}t.length>0&&h.push(...t)},z=async e=>{if(I(e)){await L(e)||h.push(e);return}h.push(e)},B=e=>{e.binaryType=`arraybuffer`,e.bufferedAmountLowThreshold=65535,e.onmessage=e=>{let t=e.data;u.data?u.data(t):f.push(t)},e.onopen=()=>u.connect?.(),e.onclose=E,e.onerror=({error:e})=>u.error?.(toError(e,`data channel error`))},V=async e=>{let t=null;try{await Promise.race([new Promise(t=>{let n=()=>{e.iceGatheringState===`complete`&&(e.removeEventListener(iceStateEvent,n),t())};e.addEventListener(iceStateEvent,n),n()}),new Promise(e=>{t=setTimeout(e,iceTimeout)})])}finally{resetTimer(t)}return M(e)},H=async()=>{let e=m?M(l):await V(l);return D(e),e};e?(x=l.createDataChannel(`data`),B(x)):l.ondatachannel=({channel:e})=>{x=e,B(e)};let U=async(e=!1)=>{if(l.connectionState!==`closed`)try{return y=!0,e&&(l.signalingState!==`stable`&&l.signalingState!==`closed`&&l.localDescription?.type===offerType&&await l.setLocalDescription({type:`rollback`}),typeof l.restartIce==`function`&&l.restartIce()),await l.setLocalDescription(e?await l.createOffer({iceRestart:!0}):void 0),await H()}catch(e){u.error?.(toError(e,`failed to create local offer`))}finally{y=!1}};l.onnegotiationneeded=async()=>U(!1),l.onicecandidate=({candidate:e})=>{if(!m||!e)return;let t=j(typeof e.toJSON==`function`?e.toJSON():{candidate:e.candidate,sdpMid:e.sdpMid,sdpMLineIndex:e.sdpMLineIndex,usernameFragment:e.usernameFragment});D({type:candidateType,sdp:JSON.stringify(t)})},l.onconnectionstatechange=()=>{if(l.connectionState===`connected`||l.connectionState===`connecting`){T();return}if(l.connectionState===`disconnected`){S||=setTimeout(()=>{S=null,l.connectionState===`disconnected`&&E()},disconnectedCloseDelayMs);return}(l.connectionState===`failed`||l.connectionState===`closed`)&&E()},l.ontrack=e=>{let t=e.streams[0];if(t){if(!u.track&&!u.stream){v.push({track:e.track,stream:t});return}u.track?.(e.track,t),u.stream?.(t)}},l.onremovestream=e=>u.stream?.(e.stream);let W=e?new Promise(e=>O(t=>{t.type===offerType&&e(t)})):Promise.resolve();return e&&queueMicrotask(()=>{!y&&l.signalingState===`stable`&&!l.localDescription&&l.connectionState!==`closed`&&l.onnegotiationneeded?.(new Event(`negotiationneeded`))}),{created:Date.now(),connection:l,get channel(){return x},get isDead(){return l.connectionState===`closed`},getOffer:async(t=!1)=>{if(e)return t?U(!0):l.localDescription?.type===offerType?m?M(l):V(l):W},async signal(t){if(t.type===`candidate`){try{let e=JSON.parse(t.sdp);e&&typeof e==`object`&&await z(j(e))}catch(e){u.error?.(toError(e,`failed to parse remote candidate`))}return}if(!(x?.readyState===`open`&&!t.sdp?.includes(`a=rtpmap`)))try{let n={...t,sdp:k(t.sdp)};if(t.type===offerType){if(y||l.signalingState!==`stable`&&!b){if(e)return;await all([l.setLocalDescription({type:`rollback`}),l.setRemoteDescription(n)])}else await l.setRemoteDescription(n);return await R(),await l.setLocalDescription(),await H()}if(t.type===answerType){b=!0;try{await l.setRemoteDescription(n),await R()}finally{b=!1}}}catch(e){u.error?.(toError(e,`failed to apply remote signal`))}},sendData:e=>x?.send(e),destroy:()=>{T(),x?.close(),l.close(),y=!1,b=!1,E()},setHandlers:e=>{let{signal:t,...n}=e;Object.assign(u,n),u.data&&f.length>0&&f.splice(0).forEach(e=>u.data?.(e)),t&&O(t),(u.track||u.stream)&&v.length>0&&v.splice(0).forEach(({track:e,stream:t})=>{u.track?.(e,t),u.stream?.(t)})},offerPromise:W,addStream:e=>e.getTracks().forEach(t=>l.addTrack(t,e)),removeStream:e=>l.getSenders().filter(t=>t.track&&e.getTracks().includes(t.track)).forEach(e=>l.removeTrack(e)),addTrack:(e,t)=>l.addTrack(e,t),removeTrack:e=>{let t=l.getSenders().find(t=>t.track===e);t&&l.removeTrack(t)},replaceTrack:(e,t)=>{let n=l.getSenders().find(t=>t.track===e);if(n)return n.replaceTrack(t)}}},defaultIceServers=[...alloc(3,(e,t)=>`stun:stun${t||``}.l.google.com:19302`),`stun:stun.cloudflare.com:3478`].map(e=>({urls:e})),TypedArray=Object.getPrototypeOf(Uint8Array),typeByteLimit=32,typeIndex=0,nonceIndex=32,tagIndex=34,progressIndex=35,payloadIndex=36,chunkSize=16*2**10-payloadIndex,oneByteMax=255,twoByteMax=65535,buffLowEvent=`bufferedamountlow`,channelCloseEvent=`close`,channelErrorEvent=`error`,unloadEvent=`beforeunload`,defaultHandshakeTimeoutMs=1e4,backpressureWaitTimeoutMs=1e4,internalNs=e=>`@_`+e,beforeUnloadRoomCleanups=new Set,cleanupActiveRoomsOnBeforeUnload=()=>beforeUnloadRoomCleanups.forEach(e=>e()),registerBeforeUnloadCleanup=e=>(beforeUnloadRoomCleanups.add(e),beforeUnloadRoomCleanups.size===1&&addEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload),()=>{beforeUnloadRoomCleanups.delete(e),beforeUnloadRoomCleanups.size||removeEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload)}),toByteArray=e=>e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),toHandshakeErrorMessage=e=>{let t=toErrorMessage(e,`unknown error`);return t.startsWith(`handshake `)?t:`handshake failed: ${t}`},waitForBufferedAmountLow=(e,t=backpressureWaitTimeoutMs)=>e.readyState!==`open`||e.bufferedAmount<=e.bufferedAmountLowThreshold?Promise.resolve(e.readyState===`open`):new Promise(n=>{let a=!1,o=null,s=t=>{a||(a=!0,e.removeEventListener(buffLowEvent,l),e.removeEventListener(channelCloseEvent,u),e.removeEventListener(channelErrorEvent,u),resetTimer(o),n(t))},l=()=>s(!0),u=()=>s(!1);if(e.addEventListener(buffLowEvent,l),e.addEventListener(channelCloseEvent,u),e.addEventListener(channelErrorEvent,u),o=setTimeout(()=>s(!1),t),e.readyState!==`open`){s(!1);return}e.bufferedAmount<=e.bufferedAmountLowThreshold&&s(!0)}),room_default=(e,t,n,{onPeerHandshake:a,onHandshakeError:o,handshakeTimeoutMs:s=defaultHandshakeTimeoutMs}={})=>{let l={},u={},d={},f={},m={},h={},v={},y={},b={},x={},S=new WeakMap,C=new WeakMap,T={onPeerJoin:noOp,onPeerLeave:noOp,onPeerStream:noOp,onPeerTrack:noOp},E=noOp,D=(e,t,{includePending:n=!1}={})=>(e?Array.isArray(e)?e:[e]:keys(n?l:u)).flatMap(e=>{let a=n?l[e]:u[e];return a?[Promise.resolve(t(e,a))]:(console.warn(`${libName}: no peer with id ${e} found`),[])}),O=(e,t,n,a,o,s={})=>{let l={k:t,...s,...n===void 0?{}:{m:n}};return D(e,async(e,t)=>{await a(l,e),o(t)})},k=e=>t=>{let n=e.get(t);return n||(n=genId(20),e.set(t,n)),n},j=k(S),M=k(C),N=e=>l[e]??null,F=(e,t,n,a)=>{u[e]&&(N(e)?.__trysteroSetRemoteStreamByKey?.(t,n),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(n.id,n),T.onPeerStream(n,e,a))},I=(e,t,n,a,o)=>{u[e]&&(N(e)?.__trysteroSetRemoteTrackByKey?.(t,n,a),typeof a.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(a.id,a),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteTrackById?.(n.id,n,a),T.onPeerTrack(n,a,e,o))},L=(e,t=mkErr(`peer disconnected`))=>{let n=d[e],a=toError(t,`peer disconnected`);n&&(resetTimer(n.handshakeTimer),n.pendingHandshakePayloads.length=0,n.handshakeWaiters.splice(0).forEach(e=>e.reject(a)),delete d[e]),delete l[e],delete u[e],delete h[e],y[e]?.splice(0).forEach(e=>e.reject(a)),delete y[e],delete b[e],delete x[e]},R=(e,n,a)=>{let o=l[e];if(!o||n&&o!==n)return;let s=!!u[e];L(e,a),o.destroy(),s&&T.onPeerLeave(e),t(e)},z=(e,t={})=>{let n=m[e];if(f[e]&&n){let a=f[e].options;if(a.sendToPending!==!!t.sendToPending||a.receiveWhilePending!==!!t.receiveWhilePending)throw mkErr(`action type "${e}" cannot be redefined`);return n}if(!e)throw mkErr(`action type argument is required`);let a=encodeBytes(e);if(a.byteLength>typeByteLimit)throw mkErr(`action type string "${e}" (${a.byteLength}b) exceeds byte limit (${typeByteLimit}). Hint: choose a shorter name.`);let o={sendToPending:!!t.sendToPending,receiveWhilePending:!!t.receiveWhilePending},s=new Uint8Array(typeByteLimit);s.set(a);let d=0;return f[e]={onComplete:noOp,onProgress:noOp,setOnComplete:t=>{f[e].onComplete=t;let n=v[e];n?.length&&(delete v[e],n.forEach(({payload:e,peerId:n,metadata:a})=>t(e,n,a)))},setOnProgress:t=>{f[e].onProgress=t},send:async(e,t,n,a)=>{let f=typeof e;if(f===`undefined`)throw mkErr(`action data cannot be undefined`);let m=f!==`string`,h=e instanceof Blob,v=h||e instanceof ArrayBuffer||e instanceof TypedArray,y=n!==void 0,b=v?toByteArray(h?await e.arrayBuffer():e):encodeBytes(m?toJson(e):e),x=y?encodeBytes(toJson(n)):null,S=Math.ceil(b.byteLength/chunkSize)+ +!!y||1,C=alloc(S,(e,t)=>{let n=t===S-1,a=!!(y&&t===0),o=new Uint8Array(payloadIndex+(a?x?.byteLength??0:n?b.byteLength-chunkSize*(S-(y?2:1)):chunkSize));return o.set(s),o.set([d>>8,d&oneByteMax],nonceIndex),o.set([Number(n)|Number(a)<<1|Number(v)<<2|Number(m)<<3],tagIndex),o.set([Math.round((t+1)/S*oneByteMax)],progressIndex),o.set(y?a?x??new Uint8Array:b.subarray((t-1)*chunkSize,t*chunkSize):b.subarray(t*chunkSize,(t+1)*chunkSize),payloadIndex),o});return d=d+1&twoByteMax,await all(D(t,async(e,t)=>{let{channel:s}=t,d=0;for(;d<S;){let f=C[d];if(!f||s&&s.bufferedAmount>s.bufferedAmountLowThreshold&&!await waitForBufferedAmountLow(s))break;let m=o.sendToPending?l[e]:u[e];if(!m||m!==t)break;t.sendData(f),d++;let h=f[progressIndex]??oneByteMax;a?.(h/oneByteMax,e,n)}},{includePending:o.sendToPending})),[]},options:o},m[e]=[f[e].send,f[e].setOnComplete,f[e].setOnProgress]},B=e=>z(e),V=(e,t)=>{let n=d[e];if(!n)return;let a=new Uint8Array(t),o=decodeBytes(a.subarray(typeIndex,nonceIndex)).replaceAll(`\0`,``),s=f[o];if(!n.isActive&&!s?.options.receiveWhilePending)return;let l=(a[nonceIndex]??0)<<8|(a[33]??0),u=a[tagIndex]??0,m=a[progressIndex]??0,y=a.subarray(payloadIndex),b=!!(u&1),x=!!(u&2),S=!!(u&4),C=!!(u&8);h[e]??={},h[e][o]??={};let T=h[e][o][l]??={chunks:[]};if(x?T.meta=fromJson(decodeBytes(y)):T.chunks.push(y),s?.onProgress(m/oneByteMax,e,T.meta),!b)return;let E=new Uint8Array(T.chunks.reduce((e,t)=>e+t.byteLength,0));if(T.chunks.reduce((e,t)=>(E.set(t,e),e+t.byteLength),0),delete h[e][o][l],S)s?s.onComplete(E,e,T.meta):(v[o]??=[]).push({payload:E,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}});else{let t=decodeBytes(E),n=C?fromJson(t):t;s?s.onComplete(n,e,T.meta):(v[o]??=[]).push({payload:n,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}})}},H=async()=>{await ie(``),await new Promise(e=>setTimeout(e,99)),entries(l).forEach(([e,t])=>{t.destroy(),L(e,mkErr(`room left`))}),E(),n()},[U,W]=z(internalNs(`ping`)),[G,ee]=z(internalNs(`pong`)),[te,K]=z(internalNs(`signal`)),[q,ne]=z(internalNs(`stream`)),[re,J]=z(internalNs(`track`)),[ie,ae]=z(internalNs(`leave`),{sendToPending:!0,receiveWhilePending:!0}),[oe,se]=z(internalNs(`hsdata`),{sendToPending:!0,receiveWhilePending:!0}),[ce,Y]=z(internalNs(`hsready`),{sendToPending:!0,receiveWhilePending:!0}),le=(e,t)=>{let n=d[e];!n||t&&n.peer!==t||n.isActive||!n.didLocalHandshakePass||!n.didReceiveRemoteReady||(n.isActive=!0,u[e]=n.peer,n.handshakeTimer=resetTimer(n.handshakeTimer),T.onPeerJoin(e))},ue=(e,t,n)=>{let a=d[e];if(!a||a.peer!==t)return;let s=toHandshakeErrorMessage(n);o?.(e,s),R(e,t,mkErr(s))},de=(e,t)=>{let n=d[e];!n||n.peer!==t||n.isActive||(n.didLocalHandshakePass=!0,ce(``,e).catch(n=>ue(e,t,mkErr(`failed sending handshake readiness: ${toErrorMessage(n,`unknown send failure`)}`))),le(e,t))},X=(e,t)=>{let n=d[e];if(!n||n.peer!==t)return;n.handshakeTimer=setTimeout(()=>ue(e,t,mkErr(`handshake timed out after ${s}ms`)),s);let o=async(t,n)=>{await oe(t,e,n)},l=()=>new Promise((n,a)=>{let o=d[e];if(!o||o.peer!==t){a(mkErr(`peer disconnected during handshake`));return}let s=o.pendingHandshakePayloads.shift();if(s){n(s);return}o.handshakeWaiters.push({resolve:n,reject:e=>a(e)})}),u=selfId<e;Promise.resolve(a?.(e,o,l,u)).then(()=>de(e,t)).catch(n=>ue(e,t,toError(n,`handshake failed`)))},fe=e=>e&&typeof e==`object`&&!Array.isArray(e)&&typeof e.k==`string`?{key:e.k,...typeof e.s==`string`?{streamId:e.s}:{},...typeof e.t==`string`?{trackId:e.t}:{},...Object.hasOwn(e,`m`)?{metadata:e.m}:{}}:null;return W((e,t)=>G(``,t)),ee((e,t)=>{let n=y[t];(n?.shift())?.resolve(),n&&!n.length&&delete y[t]}),K((e,t)=>{u[t]&&l[t]?.signal(e)}),ne((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteStreamByKey?.(n.key)??(n.streamId?a?.__trysteroGetRemoteStreamById?.(n.streamId):void 0);if(o){F(t,n.key,o,n.metadata);return}(b[t]??=[]).push(n)}),J((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteTrackByKey?.(n.key)??(n.trackId?a?.__trysteroGetRemoteTrackById?.(n.trackId):void 0);if(o){I(t,n.key,o.track,o.stream,n.metadata);return}(x[t]??=[]).push(n)}),ae((e,t)=>R(t,void 0,mkErr(`peer left room`))),se((e,t,n)=>{let a=d[t];if(!a||a.isActive)return;let o=n===void 0?{data:e}:{data:e,metadata:n},s=a.handshakeWaiters.shift();if(s){s.resolve(o);return}a.pendingHandshakePayloads.push(o)}),Y((e,t)=>{let n=d[t];!n||n.isActive||(n.didReceiveRemoteReady=!0,le(t))}),e((e,t)=>{let n=l[t];if(n){if(n===e)return;n.destroy(),L(t,mkErr(`peer replaced`))}l[t]=e,d[t]={peer:e,isActive:!1,didLocalHandshakePass:!1,didReceiveRemoteReady:!1,handshakeTimer:null,pendingHandshakePayloads:[],handshakeWaiters:[]},e.setHandlers({data:e=>V(t,e),stream:e=>{if(!u[t])return;let n=b[t]?.shift();n&&F(t,n.key,e,n.metadata)},track:(e,n)=>{if(!u[t])return;let a=x[t]?.shift();a&&I(t,a.key,e,n,a.metadata)},signal:e=>{u[t]&&te(e,t)},close:()=>R(t,e,mkErr(`peer disconnected`)),error:n=>{console.error(`${libName} peer error:`,n),R(t,e,n)}}),X(t,e)}),isBrowser&&(E=registerBeforeUnloadCleanup(()=>H().catch(noOp))),{makeAction:B,leave:H,ping:async e=>{if(!u[e])throw mkErr(`no active peer with id ${e}`);let t=Date.now();return await new Promise((t,n)=>{let a=y[e]??=[],o=()=>{let t=y[e];if(!t)return;let n=t.indexOf(s);n>-1&&t.splice(n,1),t.length||delete y[e]},s={resolve:()=>{o(),t()},reject:e=>{o(),n(e)}};a.push(s),U(``,e).catch(e=>s.reject(toError(e,`peer disconnected`)))}),Date.now()-t},getPeers:()=>fromEntries(entries(u).map(([e,t])=>[e,t.connection])),addStream:(e,t,n)=>O(t,j(e),n,q,t=>t.addStream(e),{s:e.id}),removeStream:(e,t)=>{D(t,(t,n)=>n.removeStream(e))},addTrack:(e,t,n,a)=>O(n,M(e),a,re,n=>n.addTrack(e,t),{s:t.id,t:e.id}),removeTrack:(e,t)=>{D(t,(t,n)=>n.removeTrack(e))},replaceTrack:(e,t,n,a)=>O(n,M(t),a,re,n=>n.replaceTrack(e,t),{t:e.id}),onPeerJoin:e=>{T.onPeerJoin=e,keys(u).forEach(t=>e(t))},onPeerLeave:e=>T.onPeerLeave=e,onPeerStream:e=>T.onPeerStream=e,onPeerTrack:e=>T.onPeerTrack=e}},roomFrameVersion=1,roomPresenceFrameVersion=2,wrapRoomFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(3+n.byteLength+t.byteLength);return a[0]=roomFrameVersion,a[1]=n.byteLength>>>8&255,a[2]=n.byteLength&255,a.set(n,3),a.set(t,3+n.byteLength),a},wrapRoomPresenceFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(4+n.byteLength);return a[0]=roomPresenceFrameVersion,a[1]=Number(t),a[2]=n.byteLength>>>8&255,a[3]=n.byteLength&255,a.set(n,4),a},unwrapFrame=e=>{let t=new Uint8Array(e);if(t.byteLength<3)return null;if(t[0]===roomFrameVersion){let e=(t[1]??0)<<8|(t[2]??0),n=3+e;return e<=0||t.byteLength<n?null:{type:`room`,roomToken:decodeBytes(t.subarray(3,n)),payload:t.subarray(n).slice().buffer}}if(t[0]!==roomPresenceFrameVersion||t.byteLength<4)return null;let n=(t[2]??0)<<8|(t[3]??0),a=4+n;return n<=0||t.byteLength<a?null:{type:`presence`,roomToken:decodeBytes(t.subarray(4,a)),isPresent:t[1]===1}},isPeerUnderlyingStale=e=>{let{connection:t,channel:n}=e;return e.isDead||t.connectionState===`closed`||t.connectionState===`failed`||t.iceConnectionState===`closed`||t.iceConnectionState===`failed`||n?.readyState===`closing`||n?.readyState===`closed`},getConnectedPeerHealth=e=>{if(isPeerUnderlyingStale(e))return`stale`;let{channel:t}=e;return!t||t.readyState!==`open`?`transient`:`live`},SharedPeerManager=class{byApp={};roomPresenceHandlers={};getMap(e){return this.byApp[e]??={}}get(e,t){return this.byApp[e]?.[t]}isPeerStale(e){return isPeerUnderlyingStale(e)}getHealth(e){return this.isPeerStale(e)?`stale`:`live`}setRoomPresenceHandler(e,t){return this.roomPresenceHandlers[e]=t,()=>{this.roomPresenceHandlers[e]===t&&delete this.roomPresenceHandlers[e]}}sendRoomPresence(e,t,n){e.isClosing||e.peer.isDead||e.peer.sendData(wrapRoomPresenceFrame(t,n))}clear(e,t,{destroyPeer:n}){let a=this.byApp[e],o=a?.[t];if(!o||o.isClosing)return;o.idleTimer=resetTimer(o.idleTimer),o.isClosing=!0,n&&!o.peer.isDead&&o.peer.destroy();let s=values(o.bindings);o.bindings={},o.bindingsByToken={},o.controlRoomId=null,delete a[t],s.forEach(e=>{e.handlers.close?.(),e.pendingData.length=0,e.pendingSendData.length=0,e.pendingTracks.length=0}),o.remoteStreamsByKey.clear(),o.remoteStreamsById.clear(),o.remoteTracksByKey.clear(),o.remoteTracksById.clear(),o.pendingDataByToken.clear(),o.remoteRoomTokens.clear(),keys(a).length===0&&delete this.byApp[e]}register(e,t,n,a){let o=this.getMap(e),s=o[t];if(s){if(s.idleTimer=resetTimer(s.idleTimer),s.peer===n)return s;this.clear(e,t,{destroyPeer:!0})}let l={appId:e,peerId:t,peer:n,bindings:{},bindingsByToken:{},pendingDataByToken:new Map,remoteRoomTokens:new Set,idleTimer:null,controlRoomId:null,streamOwners:new Map,trackOwners:new Map,remoteStreamsByKey:new Map,remoteStreamsById:new Map,remoteTracksByKey:new Map,remoteTracksById:new Map,idleMs:a,isClosing:!1};return n.setHandlers({data:e=>this.dispatchData(l,e),signal:e=>this.dispatchSignal(l,e),close:()=>this.clear(e,t,{destroyPeer:!1}),error:n=>{console.error(`${libName} peer error:`,n),this.clear(e,t,{destroyPeer:!1})},track:(e,t)=>this.dispatchTrack(l,e,t)}),o[t]=l,l}bind(e,t,n,{onDetach:a}){let o=n.bindings[e];if(o)return n.idleTimer=resetTimer(n.idleTimer),{proxy:o.proxy,isNew:!1};let s={roomId:e,roomToken:null,roomTokenPromise:t,handlers:{},pendingData:[],pendingSendData:[],pendingTracks:[],detach:noOp,proxy:{}},l=()=>{n.bindings[e]&&(this.pruneRoomOwnership(n,e),delete n.bindings[e],s.roomToken&&n.bindingsByToken[s.roomToken]===s&&delete n.bindingsByToken[s.roomToken],n.controlRoomId===e&&(n.controlRoomId=keys(n.bindings)[0]??null),a(),this.scheduleIdleTimer(n))},u={created:n.peer.created,get connection(){return n.peer.connection},get channel(){return n.peer.channel},get isDead(){return n.peer.isDead},getOffer:e=>n.peer.getOffer(e),signal:e=>n.peer.signal(e),sendData:e=>{if(!s.roomToken){s.pendingSendData.push(e);return}n.peer.sendData(wrapRoomFrame(s.roomToken,e))},destroy:()=>l(),setHandlers:e=>{let{signal:t,...n}=e;Object.assign(s.handlers,n),t&&(s.handlers.signal=t),this.flushBindingQueues(s)},offerPromise:n.peer.offerPromise,addStream:t=>{let a=n.streamOwners.get(t)??new Set,o=a.size===0;a.add(e),n.streamOwners.set(t,a),o&&n.peer.addStream(t)},removeStream:t=>{let a=n.streamOwners.get(t);a&&(a.delete(e),a.size===0&&(n.streamOwners.delete(t),n.peer.removeStream(t)))},addTrack:(t,a)=>{let o=n.trackOwners.get(t)??{stream:a,rooms:new Set},s=o.rooms.size===0;return o.stream=a,o.rooms.add(e),n.trackOwners.set(t,o),s?n.peer.addTrack(t,a):n.peer.connection.getSenders().find(e=>e.track===t)??n.peer.addTrack(t,a)},removeTrack:t=>{let a=n.trackOwners.get(t);a&&(a.rooms.delete(e),a.rooms.size===0&&(n.trackOwners.delete(t),n.peer.removeTrack(t)))},replaceTrack:(e,t)=>{let a=n.trackOwners.get(e);if(a){n.trackOwners.delete(e);let o=n.trackOwners.get(t)??{stream:a.stream,rooms:new Set};a.rooms.forEach(e=>o.rooms.add(e)),n.trackOwners.set(t,o)}return n.peer.replaceTrack(e,t)},__trysteroGetRemoteStreamByKey:e=>n.remoteStreamsByKey.get(e),__trysteroSetRemoteStreamByKey:(e,t)=>void n.remoteStreamsByKey.set(e,t),__trysteroGetRemoteStreamById:e=>n.remoteStreamsById.get(e),__trysteroSetRemoteStreamById:(e,t)=>void n.remoteStreamsById.set(e,t),__trysteroGetRemoteTrackByKey:e=>n.remoteTracksByKey.get(e),__trysteroSetRemoteTrackByKey:(e,t,a)=>void n.remoteTracksByKey.set(e,{track:t,stream:a}),__trysteroGetRemoteTrackById:e=>n.remoteTracksById.get(e),__trysteroSetRemoteTrackById:(e,t,a)=>void n.remoteTracksById.set(e,{track:t,stream:a})};return s.proxy=u,s.detach=l,n.bindings[e]=s,n.controlRoomId??=e,n.idleTimer=resetTimer(n.idleTimer),t.then(t=>{if(n.isClosing||n.bindings[e]!==s)return;s.roomToken=t,n.bindingsByToken[t]=s;let a=n.pendingDataByToken.get(t);a?.length&&(s.pendingData.push(...a),n.pendingDataByToken.delete(t)),s.pendingSendData.splice(0).forEach(e=>n.peer.sendData(wrapRoomFrame(t,e))),this.flushBindingQueues(s)}),{proxy:u,isNew:!0}}pruneRoomOwnership(e,t){e.streamOwners.forEach((n,a)=>{n.delete(t),n.size===0&&(e.streamOwners.delete(a),e.peer.removeStream(a))}),e.trackOwners.forEach((n,a)=>{n.rooms.delete(t),n.rooms.size===0&&(e.trackOwners.delete(a),e.peer.removeTrack(a))})}scheduleIdleTimer(e){e.isClosing||keys(e.bindings).length>0||(e.idleTimer=resetTimer(e.idleTimer),e.idleTimer=setTimeout(()=>{let t=this.byApp[e.appId]?.[e.peerId];!t||keys(t.bindings).length>0||this.clear(e.appId,e.peerId,{destroyPeer:!0})},e.idleMs))}getSignalBinding(e){if(e.controlRoomId){let t=e.bindings[e.controlRoomId];if(t?.handlers.signal)return t}let t=values(e.bindings).find(e=>!!e.handlers.signal);return t?(e.controlRoomId=t.roomId,t):null}flushBindingQueues(e){let{handlers:t}=e;t.data&&e.pendingData.length>0&&e.pendingData.splice(0).forEach(e=>t.data?.(e)),(t.track||t.stream)&&e.pendingTracks.length&&e.pendingTracks.splice(0).forEach(({track:e,stream:n})=>{t.track?.(e,n),t.stream?.(n)})}dispatchData(e,t){let n=unwrapFrame(t);if(!n)return;if(n.type===`presence`){n.isPresent?e.remoteRoomTokens.add(n.roomToken):e.remoteRoomTokens.delete(n.roomToken),this.roomPresenceHandlers[e.appId]?.(e.peerId,n.roomToken,n.isPresent);return}let a=e.bindingsByToken[n.roomToken];if(!a){let t=e.pendingDataByToken.get(n.roomToken)??[];t.push(n.payload),e.pendingDataByToken.set(n.roomToken,t);return}a.handlers.data?a.handlers.data(n.payload):a.pendingData.push(n.payload)}dispatchSignal(e,t){this.getSignalBinding(e)?.handlers.signal?.(t)}dispatchTrack(e,t,n){values(e.bindings).forEach(e=>{if(e.handlers.track||e.handlers.stream){e.handlers.track?.(t,n),e.handlers.stream?.(n);return}e.pendingTracks.push({track:t,stream:n})})}},offerPostAnswerTtlMs=23333,offerIdSize=12,disconnectedPeerGraceMs=7533,answeringTtlMs=23333,legacyCandidateKey=`__legacy__`,offerRelayPlaceholder=`offer-placeholder`,publishCipheredSignalingMessage=(e,t,n,a,o,s)=>{e.toCipher(t).then(t=>{e.isLeaving()||!s()||a(n,toJson(o(t.sdp)))})},makeState=()=>({status:`idle`,offerPeer:null,offerId:null,offerSdp:null,offerInitPromise:null,offerAnswered:!1,offerRelays:[],offerSignalRelays:[],offerSignalBacklog:[],offerRelayTimers:[],offerExpiryTimer:null,connectedPeer:null,connectedPeerUnhealthySinceMs:null,answeringExpiryTimer:null,answeringPeer:null,pendingCandidates:{}}),getState=(e,t)=>e[t]??=makeState(),updateStatus=e=>{e.connectedPeer?e.status=`connected`:e.answeringPeer?e.status=`answering`:e.offerPeer||e.offerRelays.some(Boolean)?e.status=`offering`:e.status=`idle`},clearAnswering=(e,t)=>{e.answeringPeer===t&&(e.answeringExpiryTimer=resetTimer(e.answeringExpiryTimer),e.answeringPeer=null,updateStatus(e))},clearConnectedPeer=(e,t,n)=>{e.connectedPeer&&(e.connectedPeer.isDead||e.connectedPeer.destroy(),e.connectedPeer=null,e.connectedPeerUnhealthySinceMs=null,updateStatus(e))},clearOfferRelay=(e,t)=>{e.offerRelayTimers[t]=resetTimer(e.offerRelayTimers[t]),e.offerRelays[t]&&(e.offerRelays[t]=void 0,updateStatus(e))},clearOfferRelayIfPlaceholder=(e,t)=>{e?.offerRelays[t]===offerRelayPlaceholder&&clearOfferRelay(e,t)},hasRemoteDescription=e=>{if(e.isDead||e.connection.connectionState===`closed`)return!0;try{return!!e.connection.remoteDescription}catch{return!0}},resetOfferState=(e,t)=>{let n=e.offerAnswered;e.offerExpiryTimer=resetTimer(e.offerExpiryTimer),e.offerInitPromise=null,e.offerRelays.forEach((t,n)=>clearOfferRelay(e,n)),e.offerRelays=[],e.offerSignalRelays=[],e.offerRelayTimers=[],e.offerSignalBacklog=[],e.offerPeer&&e.offerPeer!==e.connectedPeer&&(n||hasRemoteDescription(e.offerPeer)?e.offerPeer.isDead||e.offerPeer.destroy():t.recycle(e.offerPeer)),e.offerPeer=null,e.offerId=null,e.offerSdp=null,e.offerAnswered=!1,updateStatus(e)},scheduleAnsweringExpiry=(e,t,n,a)=>{resetTimer(t.answeringExpiryTimer),t.answeringExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.answeringPeer!==a||(a.destroy(),clearAnswering(t,a))},answeringTtlMs)},flushBufferedCandidates=async(e,t,n)=>{let a=n?[n,legacyCandidateKey]:[legacyCandidateKey];for(let n of a){let a=e.pendingCandidates[n];if(a?.length){delete e.pendingCandidates[n];for(let e of a)await t.signal(e)}}},scheduleOfferExpiry=(e,t,n,a=offerTtl)=>{resetTimer(t.offerExpiryTimer);let o=t.offerId;t.offerExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.offerId!==o||resetOfferState(t,e.offerPool)},a)},ensureOffer=(e,t,n,a)=>t.offerPeer&&t.offerId&&t.offerSdp?Promise.resolve({peer:t.offerPeer,offer:t.offerSdp,offerId:t.offerId}):(t.offerInitPromise||=(async()=>{let o=(await e.offerPool.checkout(1,!1,e.encryptOffer))[0];if(!o)throw mkErr(`failed to allocate offer peer`);let{peer:s,offer:l}=o;t.offerPeer=s,t.offerId=genId(offerIdSize),t.offerSdp=l,t.offerAnswered=!1,t.offerSignalBacklog=[],updateStatus(t);let u=()=>{t.offerPeer===s&&!t.connectedPeer&&resetOfferState(t,e.offerPool),e.disconnectPeer(s,n)};return s.setHandlers({connect:()=>e.connectPeer(s,n,a),signal:e=>{t.offerPeer===s&&(t.offerSignalBacklog.push(e),t.offerSignalRelays.forEach(t=>t?.(e)))},close:u,error:u}),scheduleOfferExpiry(e,t,n),{peer:s,offer:l,offerId:t.offerId}})().finally(()=>t.offerInitPromise=null),t.offerInitPromise),handleAnnouncement=async(e,t,n,a,o)=>{if(a){e.attachSharedPeerToRoom(n,a);return}let s=e.peerStates[n];if(!s||s.connectedPeer||s.answeringPeer||s.offerAnswered){clearOfferRelayIfPlaceholder(s,t);return}if(s.offerRelays[t]!==offerRelayPlaceholder)return;let[l,u]=await all([sha1(topicPath(e.rootTopicPlaintext,n)),ensureOffer(e,s,n,t)]);if(e.isLeaving())return;if(s.connectedPeer||s.answeringPeer||s.offerAnswered||s.offerRelays[t]!==offerRelayPlaceholder){clearOfferRelayIfPlaceholder(s,t);return}s.offerRelayTimers[t]=resetTimer(s.offerRelayTimers[t]),s.offerRelays[t]=!0,updateStatus(s),s.offerRelayTimers[t]=setTimeout(()=>prunePendingOffer(e,n,t),(e.announceIntervals[t]??e.announceIntervalMs)*.9);let d=!1;s.offerSignalRelays[t]=t=>{d&&(e.isLeaving()||s.connectedPeer||s.offerPeer!==u.peer||s.offerId!==u.offerId||t.type!==`candidate`||publishCipheredSignalingMessage(e,t,l,o,e=>({peerId:selfId,offerId:u.offerId,candidate:e}),()=>!s.connectedPeer&&s.offerPeer===u.peer&&s.offerId===u.offerId))},o(l,toJson({peerId:selfId,offerId:u.offerId,offer:u.offer})),d=!0,s.offerSignalBacklog.forEach(e=>s.offerSignalRelays[t]?.(e))},handleOffer=async(e,t,n,a,o,s,l)=>{let u=getState(e.peerStates,n);if(u.answeringPeer||u.offerAnswered)return;let d=!!(u.offerPeer||u.offerRelays.some(Boolean));if((d||s)&&selfId<n)return;d&&resetOfferState(u,e.offerPool);let f=e.initPeer(!1,e.config);u.answeringPeer=f,scheduleAnsweringExpiry(e,u,n,f),updateStatus(u);let m=()=>{clearAnswering(u,f),e.disconnectPeer(f,n)};f.setHandlers({connect:()=>e.connectPeer(f,n,t),close:m,error:m});let h;try{h=await e.toPlain({type:`offer`,sdp:a})}catch{clearAnswering(u,f),e.onJoinError?.({error:`incorrect room password when decrypting offer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(f.isDead){clearAnswering(u,f);return}let v=await sha1(topicPath(e.rootTopicPlaintext,n));e.isLeaving()||(f.setHandlers({signal:t=>{e.isLeaving()||u.answeringPeer!==f||f.isDead||t.type!==`answer`&&t.type!==`candidate`||publishCipheredSignalingMessage(e,t,v,l,e=>{let n={peerId:selfId};return t.type===`answer`?n.answer=e:n.candidate=e,o&&(n.offerId=o),n},()=>u.answeringPeer===f&&!f.isDead)}}),await f.signal(h),await flushBufferedCandidates(u,f,o))},handleCandidate=async(e,t,n,a,o)=>{let s;try{s=await e.toPlain({type:candidateType,sdp:n})}catch{return}let l=getState(e.peerStates,t),u=a&&l?.offerPeer&&l.offerId===a?l.offerPeer:null,d=l?.answeringPeer??null,f=!a&&l?.offerPeer?l.offerPeer:null,m=o&&!o.isDead?o:u??d??f;if(!m||m.isDead){let e=a??legacyCandidateKey;(l.pendingCandidates[e]??=[]).push(s);return}m.signal(s)},handleAnswer=async(e,t,n,a,o,s)=>{let l;try{l=await e.toPlain({type:`answer`,sdp:a})}catch{e.onJoinError?.({error:`incorrect room password when decrypting answer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(s)e.offerPool.claimLeased(s),s.setHandlers({connect:()=>e.connectPeer(s,n,t),close:()=>e.disconnectPeer(s,n)}),s.signal(l);else{let t=e.peerStates[n];if(!t||!t.offerPeer||t.offerAnswered||o&&t.offerId&&o!==t.offerId||t.offerPeer.isDead)return;t.offerAnswered=!0,scheduleOfferExpiry(e,t,n,offerPostAnswerTtlMs),t.offerPeer.signal(l)}},prunePendingOffer=(e,t,n)=>{let a=e.peerStates[t];!a||a.connectedPeer||a.offerRelays[n]&&clearOfferRelay(a,n)},createSignalHandler=e=>t=>async(n,a,o)=>{if(e.isLeaving())return;let s=typeof a==`string`?fromJson(a):a,l=typeof s.peerId==`string`?s.peerId:``,u=s.offer,d=s.answer,f=s.candidate,m=s.offerId,h=s.peer,v=s.hasOutgoingOffer===!0;if(l===selfId)return;let y=e.peerStates[l],b=y?.connectedPeer;if(b&&y){let e=getConnectedPeerHealth(b);if(e===`live`){y.connectedPeerUnhealthySinceMs=null;return}if(e===`stale`)clearConnectedPeer(y,l,`message-from-stale-peer`);else{let e=Date.now(),t=y.connectedPeerUnhealthySinceMs??e;if(y.connectedPeerUnhealthySinceMs=t,e-t<disconnectedPeerGraceMs)return;clearConnectedPeer(y,l,`message-from-prolonged-disconnect`)}}let x=e.sharedPeers.get(e.appId,l);x&&e.sharedPeers.getHealth(x.peer)===`stale`&&(e.sharedPeers.clear(e.appId,l,{destroyPeer:!0}),x=void 0);let S=!!(l&&!u&&!d&&!f),[C,T]=await all([e.rootTopicP,e.selfTopicP]);if(!e.isLeaving()&&!(n!==C&&n!==T)){if(S&&!x){let n=getState(e.peerStates,l),a=selfId<l;if(n.answeringPeer||n.connectedPeer||n.offerAnswered)return;if(!a&&!n.offerPeer){let t=await sha1(topicPath(e.rootTopicPlaintext,l));!e.isLeaving()&&!n.connectedPeer&&o(t,toJson({peerId:selfId}));return}if(n.offerRelays[t])return;n.offerRelays[t]=offerRelayPlaceholder,updateStatus(n)}if(x&&(u||d||f)){if(x.bindings[e.roomId])return;e.attachSharedPeerToRoom(l,x);return}if(S)return handleAnnouncement(e,t,l,x,o);if(u)return handleOffer(e,t,l,u,m,v,o);if(f)return handleCandidate(e,l,f,m,h);if(d)return handleAnswer(e,t,l,d,m,h)}},announceIntervalMs=5333,announceWarmupIntervalsMs=[233,533,1333],sharedPeerIdleMsDefault=123333,strategy_default=({init:e,subscribe:t,announce:n})=>{let a={},o={},s={},l={},u=new SharedPeerManager,d=()=>values(a).some(e=>keys(e).length>0),f=e=>o[e]??={},m=e=>s[e]??={},h=(e,t,n)=>{u.getHealth(e.peer)===`live`&&u.sendRoomPresence(e,t,n)},v=(e,t)=>{entries(o[e]??{}).forEach(([n,a])=>{let{roomToken:s,roomTokenPromise:l}=a;if(s){h(t,s,!0);return}l.then(s=>{o[e]?.[n]===a&&a.roomToken===s&&(u.get(e,t.peerId)!==t||t.isClosing||h(t,s,!0))})})},y=(e,t,n)=>values(u.getMap(e)).forEach(e=>h(e,t,n)),b=e=>{l[e]||(l[e]=u.setRoomPresenceHandler(e,(t,n,a)=>{if(!a)return;let l=u.get(e,t),d=s[e]?.[n];!l||!d||o[e]?.[d]?.attachSharedPeerToRoom(t,l)}))},x=e=>{a[e]&&keys(a[e]).length>0||(l[e]?.(),delete l[e],delete o[e],delete s[e])},S=!1,C=[],T=null,E=noOp;return(l,h,D)=>{if(!l)throw mkErr(`requires a config map as the first argument`);if(D&&typeof D!=`object`)throw mkErr(`third argument must be a callbacks object`);let{appId:O}=l,k=D?.onJoinError,j=D?.onPeerHandshake,M=D?.handshakeTimeoutMs;if(!O)throw mkErr(`config map is missing appId field`);if(!h)throw mkErr(`roomId argument required`);if(M!==void 0&&(!Number.isFinite(M)||M<=0))throw mkErr(`handshakeTimeoutMs must be a positive number`);if(a[O]?.[h])return a[O][h];b(O);let N=topicPath(libName,O,h),F=sha1(N),I=sha1(topicPath(N,selfId)),L=genKey(l.password??``,O,h),R=deriveRoomNamespace(O,h),z=l._test_only_sharedPeerIdleMs??sharedPeerIdleMsDefault,B=!1,V=e=>async t=>({type:t.type,sdp:await e(L,t.sdp)}),H=V(decrypt),U=V(encrypt),W=u.getMap(O);T||=new OfferPool(()=>peer_default(!0,l));let G=T,ee=async e=>{let t=await e.getOffer(Date.now()-e.created>offerTtl);if(!t||t.type!==`offer`)throw mkErr(`failed to get offer for peer`);return(await U(t)).sdp},te=(e,t)=>{let n=getState(K.peerStates,e);n.answeringExpiryTimer=resetTimer(n.answeringExpiryTimer),n.answeringPeer=null;let{proxy:a,isNew:o}=u.bind(h,R,t,{onDetach:()=>{let n=K.peerStates[e];n?.connectedPeer===t.peer&&(n.connectedPeer=null,n.connectedPeerUnhealthySinceMs=null,updateStatus(n))}});n.connectedPeer=t.peer,n.connectedPeerUnhealthySinceMs=null,updateStatus(n),o&&ie(a,e),resetOfferState(n,G)},K={appId:O,roomId:h,config:l,peerStates:{},rootTopicPlaintext:N,rootTopicP:F,selfTopicP:I,toPlain:H,toCipher:U,isLeaving:()=>B,onJoinError:k,sharedPeers:u,offerPool:G,encryptOffer:ee,initPeer:peer_default,connectPeer:(e,t,n)=>{if(B){e.destroy();return}let a=getState(K.peerStates,t);if(a.connectedPeer){let n=W[t];if(n&&a.connectedPeer===n.peer&&n.bindings[h])return;a.connectedPeer!==e&&!e.isDead&&e.destroy();return}let o=W[t];if(o&&u.getHealth(o.peer)===`stale`&&(u.clear(O,t,{destroyPeer:!0}),o=void 0),o&&o.peer!==e){e.isDead||e.destroy(),te(t,o);return}let s=!o;o||=u.register(O,t,e,z),te(t,o),s&&v(O,o)},disconnectPeer:(e,t)=>{if(B)return;let n=K.peerStates[t];n?.connectedPeer===e&&clearConnectedPeer(n,t,`close-event`)},attachSharedPeerToRoom:te,announceIntervals:[],announceIntervalMs},q=createSignalHandler(K);if(!S){let t=e(l);G.warmup(),C=(Array.isArray(t)?t:[t]).map(e=>Promise.resolve(e)),S=!0,E=l.relayConfig?.manualReconnection?noOp:watchOnline()}K.announceIntervals=C.map(()=>announceIntervalMs);let ne=C.map(()=>0),re=[],J=C.map(async(e,n)=>t(await e,await F,await I,q(n),e=>G.getOffers(e,ee)));all([F,I]).then(([e,t])=>{if(B)return;let a=async(o,s)=>{if(B)return;let l=await n(o,e,t);if(B)return;typeof l==`number`&&(K.announceIntervals[s]=l);let u=ne[s]??0;ne[s]=u+1;let d=K.announceIntervals[s]??announceIntervalMs,f=announceWarmupIntervalsMs[u];re[s]=setTimeout(()=>{a(o,s)},typeof f==`number`?Math.min(d,f):d)};J.forEach(async(e,t)=>{if(await e,B)return;let n=await C[t];n&&!B&&a(n,t)})});let ie=noOp,{compose:ae}=createPasswordHandshake(l.password??``,O,h),oe=ae(j),se={...oe?{onPeerHandshake:oe}:{},...M===void 0?{}:{handshakeTimeoutMs:M},onHandshakeError:(e,t)=>k?.({error:t.replace(/^handshake failed: /,``),appId:O,peerId:e,roomId:h})};a[O]??={};let ce=f(O),Y=room_default(e=>ie=e,e=>{if(B)return;let t=K.peerStates[e];t?.connectedPeer&&(t.connectedPeer=null,updateStatus(t))},()=>{B=!0,ie=noOp;let e=o[O]?.[h];e?.roomToken&&(y(O,e.roomToken,!1),delete s[O]?.[e.roomToken],s[O]&&!keys(s[O]).length&&delete s[O]),o[O]&&(delete o[O][h],keys(o[O]).length||delete o[O]),entries(K.peerStates).forEach(([e,t])=>{if(t.answeringExpiryTimer=resetTimer(t.answeringExpiryTimer),t.connectedPeer&&!t.connectedPeer.isDead){let n=W[e];(!n||n.peer!==t.connectedPeer)&&t.connectedPeer.destroy()}t.answeringPeer&&!t.answeringPeer.isDead&&t.answeringPeer.destroy(),resetOfferState(t,G),t.connectedPeer=null,t.answeringPeer=null,updateStatus(t)}),a[O]&&(delete a[O][h],keys(a[O]).length===0&&delete a[O]),re.forEach(resetTimer),J.forEach(async e=>{(await e)()}),!d()&&(S=!1,G.destroy(),T=null,E(),x(O))},se),le={roomToken:null,roomTokenPromise:R,attachSharedPeerToRoom:te};return ce[h]=le,R.then(e=>{B||o[O]?.[h]!==le||(le.roomToken=e,m(O)[e]=h,values(W).forEach(t=>{t.remoteRoomTokens.has(e)&&te(t.peerId,t)}),y(O,e,!0))}),a[O][h]=Y}},relayManager=createRelayManager(e=>e.socket),topicToInfoHash={},infoHashToTopic={},announceIntervals=relayManager.scoped(),announceFns=relayManager.scoped(),subscriptionTokens=relayManager.scoped(),trackerAnnounceMs={},handledSignals={},msgHandlers=relayManager.scoped(),roomOutstandingOffers={},roomOfferGenerationPromises={},roomSubscriberCounts={},trackerAction=`announce`,hashLimit=20,offerPoolSize=3,defaultAnnounceMs=1e4,maxAnnounceMs=2e4,offerRetentionMs=12e4,signalDedupeWindowMs=4e3,defaultRedundancy=3,getInfoHash=async e=>{if(topicToInfoHash[e])return topicToInfoHash[e];let t=(await sha1(e)).slice(0,hashLimit);return topicToInfoHash[e]=t,infoHashToTopic[t]=e,t},send=async(e,t,n)=>e.send(toJson({action:trackerAction,info_hash:await getInfoHash(t),peer_id:selfId,...n})),warn=(e,t,n=!1)=>console.warn(`${libName}: torrent tracker ${n?`failure`:`warning`} from ${e} - ${t}`),getRoomOutstandingOffers=e=>roomOutstandingOffers[e]??={},deleteRoomOfferBookkeeping=e=>{delete roomOutstandingOffers[e],delete roomOfferGenerationPromises[e]},claimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];if(a)return delete n[t],a.claim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e),a},reclaimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];a&&(delete n[t],a.reclaim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e))},reclaimAllOutstandingOffers=e=>{keys(getRoomOutstandingOffers(e)).forEach(t=>reclaimOutstandingOffer(e,t)),deleteRoomOfferBookkeeping(e)},pruneOutstandingOffers=e=>{let t=Date.now();entries(getRoomOutstandingOffers(e)).forEach(([n,a])=>{t-a.createdAt>offerRetentionMs&&reclaimOutstandingOffer(e,n)})},ensureOutstandingOffers=async(e,t)=>{for(;roomOfferGenerationPromises[e];)await roomOfferGenerationPromises[e];let n=(async()=>{pruneOutstandingOffers(e);let n=getRoomOutstandingOffers(e),a=keys(n).length,o=Math.max(0,offerPoolSize-a);o>0&&(await t(o)).forEach(e=>{n[genId(hashLimit)]={...e,createdAt:Date.now()}})})().finally(()=>{roomOfferGenerationPromises[e]===n&&delete roomOfferGenerationPromises[e]});return roomOfferGenerationPromises[e]=n,await n,getRoomOutstandingOffers(e)},joinRoomStrategy=strategy_default({init:e=>getRelays(e,defaultRelayUrls,defaultRedundancy).map(e=>{let t=relayManager.register(e,makeSocket(e,n=>{let a=fromJson(n),o=a[`failure reason`],s=a[`warning message`],{interval:l}=a,u=a.info_hash?infoHashToTopic[a.info_hash]:void 0;if(o){warn(t.url,o,!0);return}if(s&&warn(t.url,s),l&&l*1e3>(trackerAnnounceMs[t.url]??defaultAnnounceMs)&&u&&announceFns.forKey(e)[u]){let n=Math.min(l*1e3,maxAnnounceMs),a=announceIntervals.forKey(e),o=announceFns.forKey(e);a[u]&&clearInterval(a[u]),trackerAnnounceMs[t.url]=n;let s=o[u];s&&(a[u]=setInterval(()=>{s()},n))}if((a.offer||a.answer)&&u&&a.offer_id){if(a.peer_id===selfId)return;let t=`${u}:${a.offer?`offer`:`answer`}:${a.offer_id}:${a.peer_id??``}`,n=Date.now(),o=handledSignals[t];if(typeof o==`number`&&n-o<signalDedupeWindowMs)return;handledSignals[t]=n,entries(handledSignals).forEach(([e,t])=>{n-t>signalDedupeWindowMs*6&&delete handledSignals[e]}),msgHandlers.forKey(e)[u]?.(a)}}));return t.ready}),subscribe:(e,t,n,a,o)=>{let s=msgHandlers.forRelay(e),l=announceFns.forRelay(e),u=announceIntervals.forRelay(e),d=subscriptionTokens.forRelay(e),f=Symbol(t);d[t]=f,roomSubscriberCounts[t]=(roomSubscriberCounts[t]??0)+1;let m=n=>{if(n.offer&&n.peer_id&&n.offer_id)a(t,{offer:n.offer.sdp,peerId:n.peer_id,hasOutgoingOffer:keys(getRoomOutstandingOffers(t)).length>0},(a,o)=>void send(e,t,{answer:{type:`answer`,sdp:fromJson(o).answer},offer_id:n.offer_id,to_peer_id:n.peer_id}));else if(n.answer&&n.offer_id&&n.peer_id){let e=claimOutstandingOffer(t,n.offer_id);e&&a(t,{answer:n.answer.sdp,peerId:n.peer_id,peer:e.peer},()=>{})}};s[t]=m;let h=async()=>{d[t]===f&&send(e,t,{numwant:offerPoolSize,offers:entries(await ensureOutstandingOffers(t,o)).map(([e,{offer:t}])=>({offer_id:e,offer:{type:`offer`,sdp:t}}))})};return trackerAnnounceMs[e.url]=defaultAnnounceMs,l[t]=h,u[t]=setInterval(h,trackerAnnounceMs[e.url]),h(),()=>{if(roomSubscriberCounts[t]=Math.max(0,(roomSubscriberCounts[t]??1)-1),roomSubscriberCounts[t]||delete roomSubscriberCounts[t],d[t]!==f){roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t);return}let e=u[t];e&&(clearInterval(e),delete u[t]),s[t]===m&&delete s[t],l[t]===h&&delete l[t],delete d[t],roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t)}},announce:e=>trackerAnnounceMs[e.url]}),joinRoom=(e,t,n)=>joinRoomStrategy({...e,trickleIce:e.trickleIce??!1},t,n),getRelaySockets=relayManager.getSockets,defaultRelayUrls=[`tracker.webtorrent.dev`,`tracker.openwebtorrent.com`,`tracker.btorrent.xyz`,`tracker.files.fm:7073/announce`].map(e=>`wss://`+e),require_lodash_throttle=__commonJSMin(((e,t)=>{var n=`Expected a function`,a=NaN,o=`[object Symbol]`,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,f=parseInt,m={}.Object===Object&&{},h=typeof self==`object`&&self&&self.Object===Object&&self,v=m||h||Function(`return this`)(),y=Object.prototype.toString,b=Math.max,x=Math.min,S=function(){return v.Date.now()};function C(e,t,a){var o,s,l,u,d,f,m=0,h=!1,v=!1,y=!0;if(typeof e!=`function`)throw TypeError(n);t=k(t)||0,E(a)&&(h=!!a.leading,v=`maxWait`in a,l=v?b(k(a.maxWait)||0,t):l,y=`trailing`in a?!!a.trailing:y);function C(t){var n=o,a=s;return o=s=void 0,m=t,u=e.apply(a,n),u}function T(e){return m=e,d=setTimeout(j,t),h?C(e):u}function D(e){var n=e-f,a=e-m,o=t-n;return v?x(o,l-a):o}function O(e){var n=e-f,a=e-m;return f===void 0||n>=t||n<0||v&&a>=l}function j(){var e=S();if(O(e))return M(e);d=setTimeout(j,D(e))}function M(e){return d=void 0,y&&o?C(e):(o=s=void 0,u)}function N(){d!==void 0&&clearTimeout(d),m=0,o=f=s=d=void 0}function F(){return d===void 0?u:M(S())}function I(){var e=S(),n=O(e);if(o=arguments,s=this,f=e,n){if(d===void 0)return T(f);if(v)return d=setTimeout(j,t),C(f)}return d===void 0&&(d=setTimeout(j,t)),u}return I.cancel=N,I.flush=F,I}function T(e,t,a){var o=!0,s=!0;if(typeof e!=`function`)throw TypeError(n);return E(a)&&(o=`leading`in a?!!a.leading:o,s=`trailing`in a?!!a.trailing:s),C(e,t,{leading:o,maxWait:t,trailing:s})}function E(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function D(e){return!!e&&typeof e==`object`}function O(e){return typeof e==`symbol`||D(e)&&y.call(e)==`[object Symbol]`}function k(e){if(typeof e==`number`)return e;if(O(e))return a;if(E(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=E(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=e.replace(s,``);var n=u.test(e);return n||d.test(e)?f(e.slice(2),n?2:8):l.test(e)?a:+e}t.exports=T})),import_lodash_throttle=__toESM(require_lodash_throttle()),endpoints={getMarketData:`https://farmhand.vercel.app/api/get-market-data`,postDayResults:`https://farmhand.vercel.app/api/post-day-results`},features=Object.keys({BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_API_ROOT:`https://farmhand.vercel.app/`,VITE_FARMHAND_PACKAGE_VERSION:`1.20.5`,VITE_NAME:`@jeremyckahn/farmhand`,VITE_TURN_CREDENTIAL:``,VITE_TURN_USERNAME:``}).reduce((e,t)=>{let n=t.match(/VITE_ENABLE_(.*)/);return n&&(e[n[1]]=!0),e},{}),searchParams=new URLSearchParams(import_window.default.location?.search);for(let e of searchParams.keys()){let t=e.match(/enable_(.*)/);t&&(features[t[1]]=!0)}var rtcConfig={iceServers:[{urls:`stun:stun.relay.metered.ca:80`}]},handlePeerMetadataRequest=(e,t,n)=>{e.updatePeer(e,t,n)},handleCowTradeRequest=async(e,{cowOffered:t,cowRequested:n},a)=>{let o=!1;e.setState(e=>{let{allowCustomPeerCowNames:s,cowIdOfferedForTrade:l,cowsTraded:u,cowInventory:d,playerId:f,isAwaitingCowTradeRequest:m,peers:h,sendCowAccept:v,sendCowReject:y}=e;if(!v||!y)return console.error(`Peer connection not set up correctly`),null;let b=d.find(({id:e})=>e===l);if(m||n.id!==l||!b)return y({reason:cowTradeRejectionReason.REQUESTED_COW_UNAVAILABLE},a),null;let x={...t,timesTraded:t.originalOwnerId===f?t.timesTraded:t.timesTraded+1},[,S]=Object.entries(h).find(([,e])=>e?.playerId===x.ownerId)??[];return S?(e=changeCowAutomaticHugState(e,b,!1),e=removeCowFromInventory(e,b),e=addCowToInventory(e,{...x,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,b,t,f,s),`success`),v({...b,isUsingHuggingMachine:!1},a),o=!0,{...e,cowIdOfferedForTrade:x.id,cowsTraded:x.originalOwnerId===f?u:u+1,isAwaitingCowTradeRequest:!0,selectedCowId:x.id,peers:{...h,[a]:{...S,cowOfferedForTrade:{...b,ownerId:S.playerId}}}}):(console.error(`No data for peer ${x.ownerId}`),null)},async()=>{o&&(await sleep(750),await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`),e.setState(()=>({isAwaitingCowTradeRequest:!1})))})},handleCowTradeRequestAccept=(e,t,n)=>{let a=!1;e.setState(e=>{let{allowCustomPeerCowNames:o,cowIdOfferedForTrade:s,cowInventory:l,cowsTraded:u,cowTradeTimeoutId:d,playerId:f,peers:m}=e,h=l.find(({id:e})=>e===s);if(!h)return console.error(`handleCowTradeRequestAccept: cow with ID ${s} is no longer available`),e=showNotification(e,UNKNOWN_COW_TRADE_FAILURE,`error`),{...e,isAwaitingCowTradeRequest:!1};let[,v]=Object.entries(m).find(([,e])=>{let{playerId:n}=e;return n===t.ownerId})||[],y=t.originalOwnerId===f,b={...t,timesTraded:y?t.timesTraded:t.timesTraded+1};return e=removeCowFromInventory(e,h),e=addCowToInventory(e,{...b,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,h,b,f,o),`success`),y||(e=addExperience(e,EXPERIENCE_VALUES.COW_TRADED)),d&&clearTimeout(d),a=!0,{...e,cowsTraded:b.originalOwnerId===f?u:u+1,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1,cowIdOfferedForTrade:b.id,selectedCowId:b.id,peers:{...m,[n]:{...v,cowOfferedForTrade:{...h,ownerId:v.playerId}}}}},async()=>{a&&(await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`))})},handleCowTradeRequestReject=(e,{reason:t})=>{let{cowTradeTimeoutId:n}=e.state;typeof n==`number`&&clearTimeout(n),e.setState({cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1}),e.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`)},relayRedundancy=4,useFarmhandNetwork=(e,t,n,a,o,s,l,u)=>{let{hasBooted:d,isOnline:f,room:m,redirect:h,heartbeatTimeoutId:v,peerRoom:y,sendPeerMetadata:b}=e,x=(0,import_react$24.useCallback)(e=>(0,import_lodash_throttle.default)((...n)=>{e(...n),t(e=>({...e,pendingPeerMessages:[]}))},5e3,{trailing:!0}),[t]),S=(0,import_react$24.useCallback)(()=>{typeof a.current?.state?.cowTradeTimeoutId==`number`&&(n.current.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`),console.error(`Cow trade request timed out`),t(e=>({...e,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1})))},[t,n,a]),C=(0,import_react$24.useCallback)(o=>{let{cowIdOfferedForTrade:s,cowInventory:l,peers:u,sendCowTradeRequest:d}=a.current?.state??e;if(!d)return;let{ownerId:f}=o,[m]=Object.entries(u).find(([,e])=>e?.playerId===f)??[];if(!m){console.error(`Owner not found for cow ${JSON.stringify(o)}`);return}if(l.find(({id:e})=>e===o.id)){console.error(`Cow ID ${o.id} is already in inventory`),n.current.showNotification(COW_ALREADY_OWNED,`error`);return}let h=l.find(({id:e})=>e===s);if(!h){console.error(`Cow ID ${s} not found`);return}let v=setTimeout(S,COW_TRADE_TIMEOUT);d({cowOffered:{...h,isUsingHuggingMachine:!1},cowRequested:o},m),t(e=>({...e,cowTradeTimeoutId:v,isAwaitingCowTradeRequest:!0}))},[t,S,n,a]),T=(0,import_react$24.useCallback)(()=>{t(e=>(clearTimeout(e.heartbeatTimeoutId??-1),e));let e=import_window.default.setTimeout(()=>{t(e=>({...e,money:moneyTotal(e.money,e.activePlayers??0)})),T()},HEARTBEAT_INTERVAL_PERIOD);t(t=>({...t,heartbeatTimeoutId:e}))},[t]),E=(0,import_react$24.useCallback)(async()=>{let{isOnline:e,priceCrashes:o,priceSurges:s,room:l,playerId:u,peerRoom:d}=a.current.state;if(e){n.current.showNotification(CONNECTING_TO_SERVER,`info`);try{t(e=>({...e,isAwaitingNetworkRequest:!0,peers:{}})),d?.leave();let{valueAdjustments:e}=await getData(endpoints.getMarketData,{farmId:u,room:l});T(),t(t=>({...t,activePlayers:1,peerRoom:joinRoom({appId:`@jeremyckahn/farmhand`,rtcConfig},l),valueAdjustments:FarmhandService.applyPriceEvents(e,o,s)})),n.current.showNotification(CONNECTED_TO_ROOM(``,l),`success`)}catch(e){n.current.showNotification(SERVER_ERROR,`error`),console.error(e),t(e=>({...e,redirect:withCurrentHashQuery(`/`),cowIdOfferedForTrade:``}))}t(e=>({...e,isAwaitingNetworkRequest:!1,isAwaitingCowTradeRequest:!1}))}},[T,n,a,t]),D=(0,import_react$24.useCallback)((e,t)=>{n.current.prependPendingPeerMessage(e,t)},[n]);return(0,import_react$24.useEffect)(()=>{if(!d||!o)return;let e=decodeURIComponent(s),S=l.startsWith(`/online`),C=!!h&&h!==o.redirect;if(!C&&(S!==f||e!==m)?t(t=>({...t,isOnline:S,redirect:``,room:e})):h&&!C&&S===f&&e===m&&t(e=>({...e,redirect:``})),(f!==o.isOnline||m!==o.room)&&(f&&E(),!f&&typeof v==`number`&&(clearTimeout(v),t(e=>({...e,activePlayers:null,heartbeatTimeoutId:null,peerRoom:null})))),f===!1&&o.isOnline===!0&&n.current.showNotification(DISCONNECTED_FROM_SERVER,`info`),y!==o.peerRoom)if(y){y.onPeerJoin(e=>n.current.addPeer(e)),y.onPeerLeave(e=>n.current.removePeer(e));let[e,o]=y.makeAction(`peerMetadata`);o((...e)=>handlePeerMetadataRequest(a.current,e[0],e[1]));let[s,l]=y.makeAction(`cowTrade`);l((...e)=>handleCowTradeRequest(a.current,e[0],e[1]));let[d,f]=y.makeAction(`cowAccept`);f((...e)=>handleCowTradeRequestAccept(a.current,e[0],e[1]));let[m,h]=y.makeAction(`cowReject`);h((...e)=>handleCowTradeRequestReject(a.current,e[0])),t(t=>({...t,getCowAccept:f,getCowReject:h,getCowTradeRequest:l,getPeerMetadata:o,pendingPeerMessages:[],sendCowAccept:d,sendCowReject:m,sendCowTradeRequest:s,sendPeerMetadata:x(e)})),e(u)}else o.peerRoom?.leave(),t(e=>({...e,peers:{},sendPeerMetadata:null}));b?.(u)},[d,f,m,h,v,y,b,o,s,l,E,x,u,n,a,t]),{syncToRoom:E,scheduleHeartbeat:T,wrapSendPeerMetadata:x,tradeForPeerCow:C,handleCowTradeTimeout:S,messagePeers:D}},computeMarketPositions=(e,t,n)=>n.reduce((n,{id:a,quantity:o})=>{let s=e[a]||0,l=t[a]||0;return itemsMap[a].doesPriceFluctuate&&s!==o&&(o<s||o<l?n[a]=-1:(o>s||o>l)&&(n[a]=1)),n},{}),useFarmhandDayAdvancement=(e,t,n,a,o)=>{let s=(0,import_react$24.useCallback)(async()=>{await n.localforage?.clear(),a.current.showNotification(DATA_DELETED)},[n.localforage,a]),l=(0,import_react$24.useCallback)((e,t={})=>n.localforage?.setItem(`state`,reduceByPersistedKeys({...e,...t})),[n.localforage]),u=(0,import_react$24.useCallback)(async()=>{let n=[],a=null;t(e=>({...e,isAwaitingNetworkRequest:!0}));let o;if(e.current.isOnline){let{inventory:s,room:l,todaysPurchases:u,todaysStartingInventory:d}=e.current,f=computeMarketPositions(d,u,s);try{o=(await postData(endpoints.postDayResults,{positions:f,room:l})).valueAdjustments,Object.keys(f).length&&(n.push({message:POSITIONS_POSTED_NOTIFICATION(``,`You`,f),severity:`info`}),a=POSITIONS_POSTED_NOTIFICATION(``,``,f))}catch(e){n.push({message:SERVER_ERROR,severity:`error`}),t(e=>({...e,redirect:withCurrentHashQuery(`/`),cowIdOfferedForTrade:``,isAwaitingNetworkRequest:!1})),console.error(e)}}return{broadcastedPositionMessage:a,serverMessages:n,serverValueAdjustments:o}},[e,t]);return{clearPersistedData:s,persistState:l,updateServerForNextDay:u,incrementDay:(0,import_react$24.useCallback)(async(n=!1)=>{if(e.current.isWaitingForDayToCompleteIncrementing&&!n)return;n||t(e=>({...e,isWaitingForDayToCompleteIncrementing:!0}));let{broadcastedPositionMessage:a,serverMessages:s,serverValueAdjustments:l}=await u();t(e=>{let t=computeStateForNextDay(e,n),u=[...s,...t.newDayNotifications];return t.valueAdjustments=FarmhandService.applyPriceEvents(l??t.valueAdjustments,t.priceCrashes,t.priceSurges),t.isAwaitingNetworkRequest=!1,t.isWaitingForDayToCompleteIncrementing=!0,t.newDayNotifications=[],t.todaysNotifications=[],o.current={state:t,pendingNotifications:u,broadcastedPositionMessage:a,isFirstDay:n},t})},[e,u,t,o])}},useFarmhandNotifications=(e,t)=>({showInventoryFullNotifications:(0,import_react$24.useCallback)((e,n)=>{inventorySpaceRemaining(e)>0&&inventorySpaceRemaining(n)<=0&&t.current.showNotification(INVENTORY_FULL_NOTIFICATION,`warning`)},[t]),showRecipeLearnedNotifications:(0,import_react$24.useCallback)(({learnedRecipes:n})=>{let a=[];Object.keys(e.learnedRecipes).forEach(e=>{n.hasOwnProperty(e)||a.push(recipesMap[e])}),a.length>1?t.current.showNotification(RECIPES_LEARNED(``,a)):a.length===1&&t.current.showNotification(RECIPE_LEARNED(``,a[0]))},[e.learnedRecipes,t])}),FarmhandReducers=class e extends import_react$24.Component{addCowToInventory(...e){throw Error(`Unimplemented`)}addPeer(...e){throw Error(`Unimplemented`)}adjustLoan(...e){throw Error(`Unimplemented`)}changeCowAutomaticHugState(...e){throw Error(`Unimplemented`)}changeCowBreedingPenResident(...e){throw Error(`Unimplemented`)}changeCowName(...e){throw Error(`Unimplemented`)}clearPlot(...e){throw Error(`Unimplemented`)}chopForestPlot(...e){throw Error(`Unimplemented`)}computeStateForNextDay(...e){throw Error(`Unimplemented`)}fertilizePlot(...e){throw Error(`Unimplemented`)}forRange(...e){throw Error(`Unimplemented`)}harvestForestPlot(...e){throw Error(`Unimplemented`)}harvestPlot(...e){throw Error(`Unimplemented`)}hugCow(...e){throw Error(`Unimplemented`)}makeRecipe(...e){throw Error(`Unimplemented`)}makeFermentationRecipe(...e){throw Error(`Unimplemented`)}makeWine(...e){throw Error(`Unimplemented`)}modifyCow(...e){throw Error(`Unimplemented`)}mulchForestPlot(...e){throw Error(`Unimplemented`)}offerCow(...e){throw Error(`Unimplemented`)}plantInPlot(...e){throw Error(`Unimplemented`)}plantTreeInPlot(...e){throw Error(`Unimplemented`)}prependPendingPeerMessage(...e){throw Error(`Unimplemented`)}purchaseCombine(...e){throw Error(`Unimplemented`)}purchaseComposter(...e){throw Error(`Unimplemented`)}purchaseCow(...e){throw Error(`Unimplemented`)}purchaseCowPen(...e){throw Error(`Unimplemented`)}purchaseCellar(...e){throw Error(`Unimplemented`)}purchaseField(...e){throw Error(`Unimplemented`)}purchaseForest(...e){throw Error(`Unimplemented`)}purchaseItem(...e){throw Error(`Unimplemented`)}purchaseSmelter(...e){throw Error(`Unimplemented`)}purchaseStorageExpansion(...e){throw Error(`Unimplemented`)}purchaseWoodChipper(...e){throw Error(`Unimplemented`)}removeCowFromInventory(...e){throw Error(`Unimplemented`)}removeKegFromCellar(...e){throw Error(`Unimplemented`)}removePeer(...e){throw Error(`Unimplemented`)}selectCow(...e){throw Error(`Unimplemented`)}sellCow(...e){throw Error(`Unimplemented`)}sellItem(...e){throw Error(`Unimplemented`)}sellKeg(...e){throw Error(`Unimplemented`)}setScarecrow(...e){throw Error(`Unimplemented`)}setSprinkler(...e){throw Error(`Unimplemented`)}showNotification(...e){throw Error(`Unimplemented`)}updatePeer(...e){throw Error(`Unimplemented`)}upgradeTool(...e){throw Error(`Unimplemented`)}waterAllPlots(...e){throw Error(`Unimplemented`)}waterField(...e){throw Error(`Unimplemented`)}waterPlot(...e){throw Error(`Unimplemented`)}withdrawCow(...e){throw Error(`Unimplemented`)}constructor(t){super(t);let n=Object.getOwnPropertyNames(e.prototype).filter(e=>e!==`constructor`);for(let e of n){let t=reducers_exports[e];t&&(this[e]=(...e)=>{this.setState(n=>t(n,...e))})}}},useFarmhandReducers=e=>(0,import_react$24.useMemo)(()=>{let t={};Object.assign(t,reducers_exports);let n=Object.getOwnPropertyNames(FarmhandReducers.prototype).filter(e=>e!==`constructor`);for(let a of n){let n=reducers_exports[a];typeof n==`function`&&(t[a]=(...t)=>{e(e=>{let a=n(e,...t);return!a||a===e?e:{...a}})})}return t},[e]),usePrevious=e=>{let t=(0,import_react$24.useRef)();return(0,import_react$24.useEffect)(()=>{t.current=e},[e]),t.current},{CLEANUP,HARVEST,MINE,WATER}=fieldMode,useFarmhand=e=>{let{features:t,match:{path:n=``,params:{room:a}={}}={}}=e,o=(0,import_react$24.useCallback)(()=>({activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:dialogView.NONE,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:-1},cowColorsPurchased:{},cowIdOfferedForTrade:``,cowInventory:[],cowsSold:{},cowsTraded:0,cowTradeTimeoutId:-1,cropsHarvested:{},dayCount:0,experience:0,farmName:`Unnamed`,field:createNewField(),fieldMode:fieldMode.OBSERVE,forest:createNewForest(),treesChopped:0,treeFruitsHarvested:{},mulchApplied:{},getCowAccept:noop$3,getCowReject:noop$3,getCowTradeRequest:noop$3,getPeerMetadata:noop$3,hasBooted:!1,hasProducedRainbowFertilizer:!1,heartbeatTimeoutId:null,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:v4(),inventory:[{id:scarecrow.id,quantity:1}],inventoryLimit:100,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!1,isMenuOpen:!doesMenuObstructStage(),itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:n.startsWith(`/online`)??!1,isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:500,loansTakenOut:1,money:500,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendPeerMetadata:null,selectedCowId:``,selectedForestItemId:``,selectedItemId:``,priceCrashes:{},priceSurges:{},profitabilityStreak:0,recipesMade:{},record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:``,room:decodeURIComponent(e.match?.params?.room||`global`),sendCowAccept:noop$3,sendCowReject:noop$3,purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,purchasedWoodChipper:0,sendCowTradeRequest:noop$3,showHomeScreen:!0,showNotifications:!0,stageFocus:stageFocusType.HOME,todaysNotifications:[],todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{[toolType.AXE]:toolLevel.UNAVAILABLE,[toolType.HOE]:toolLevel.DEFAULT,[toolType.PICKER_POLE]:toolLevel.UNAVAILABLE,[toolType.SCYTHE]:toolLevel.DEFAULT,[toolType.SHOVEL]:toolLevel.UNAVAILABLE,[toolType.WATERING_CAN]:toolLevel.DEFAULT},useAlternateEndDayButtonPosition:!1,valueAdjustments:{},version:`1.20.5`}),[n,e.match?.params?.room]),[s,l]=(0,import_react$24.useState)(o),u=(0,import_react$24.useRef)(s);u.current=s;let d=a===void 0?s.room:a,f=(0,import_react$24.useRef)(null),m=(0,import_react$24.useRef)(!1),h=useFarmhandReducers(l),v=(0,import_react$24.useRef)(h);v.current=h;let y=usePrevious(s),b=STAGE_TITLE_MAP[s.stageFocus],x=FarmhandService.getFieldToolInventory(s.inventory),S=FarmhandService.computePlayerInventory(s.inventory,s.valueAdjustments),C=FarmhandService.getPlantableCropInventory(s.inventory),T=FarmhandService.getPlantableTreeInventory(s.inventory),E=FarmhandService.getMulchInventory(s.inventory),D=(0,import_react$24.useMemo)(()=>getLevelEntitlements(levelAchieved(s.experience)),[s.experience]),O=(0,import_react$24.useMemo)(()=>getAvailableShopInventory(D),[D]),k=D.stageFocusType[stageFocusType.FOREST],j=s.isOnline&&s.room!==`global`,M=(0,import_react$24.useMemo)(()=>getViewList({isForestUnlocked:k,purchasedCellar:s.purchasedCellar,purchasedCowPen:s.purchasedCowPen,showHomeScreen:s.showHomeScreen}),[s.showHomeScreen,k,s.purchasedCowPen,s.purchasedCellar]),N=(0,import_react$24.useMemo)(()=>getPeerMetadata(s),[s]),F=s.isAwaitingNetworkRequest||s.isAwaitingCowTradeRequest||s.isWaitingForDayToCompleteIncrementing,I=(0,import_react$24.useRef)(null),{openDialogView:L,closeDialogView:R,focusNextView:z,focusPreviousView:B}=useFarmhandNavigation(l,M),V=(0,import_react$24.useRef)(!0),H=(0,import_react$24.useRef)(!1);(0,import_react$24.useEffect)(()=>{if(s.hasBooted){if(H.current){H.current=!1,setHashQueryParam(VIEW_QUERY_PARAM_NAME,s.stageFocus);return}if(V.current){V.current=!1,setHashQueryParam(VIEW_QUERY_PARAM_NAME,s.stageFocus);return}setHashQueryParam(VIEW_QUERY_PARAM_NAME,s.stageFocus,`push`),removeHashQueryParam(`tab`)}},[s.stageFocus,s.hasBooted]),(0,import_react$24.useEffect)(()=>{let e=()=>{let e=getValidatedStageFocusFromHash(u.current)??stageFocusType.HOME;e!==u.current.stageFocus&&(H.current=!0,l(t=>({...t,stageFocus:e})))};return import_window.default.addEventListener(`popstate`,e),()=>import_window.default.removeEventListener(`popstate`,e)},[]);let{syncToRoom:U,scheduleHeartbeat:W,tradeForPeerCow:G,handleCowTradeTimeout:ee,messagePeers:te}=useFarmhandNetwork(s,l,v,I,y,d,n,N),{clearPersistedData:K,persistState:q,updateServerForNextDay:ne,incrementDay:re}=useFarmhandDayAdvancement(u,l,e,v,f),{showInventoryFullNotifications:J,showRecipeLearnedNotifications:ie}=useFarmhandNotifications(s,v);I.current=(0,import_react$24.useMemo)(()=>({state:s,props:e,viewTitle:b,fieldToolInventory:x,mulchInventory:E,playerInventory:S,plantableCropInventory:C,plantableTreeInventory:T,viewList:M,levelEntitlements:D,shopInventory:O,peerMetadata:N,isInputBlocked:F,isChatAvailable:j,isForestUnlocked:k,setState:(e,t)=>{l(n=>{let a=typeof e==`function`?e(n):e;if(a==null)return n;let o={...n,...a};return t&&setTimeout(t,0),o})},...v.current,purchaseItem:(e,t)=>v.current.purchaseItem(e,t),sellItem:(e,t)=>v.current.sellItem(e,t),showNotification:(e,t,n)=>v.current.showNotification(e,t,n),prependPendingPeerMessage:(e,t)=>v.current.prependPendingPeerMessage(e,t),forRange:(e,t,n,a,o)=>v.current.forRange(e,t,n,a,o),createInitialState:o,getData,postData,tradeForPeerCow:G,handleCowTradeTimeout:ee,clearPersistedData:K,syncToRoom:U,scheduleHeartbeat:W,showInventoryFullNotifications:J,showRecipeLearnedNotifications:ie,persistState:(e={})=>q(I.current?.state??s,e),updateServerForNextDay:ne,incrementDay:re,openDialogView:L,closeDialogView:R,focusNextView:z,focusPreviousView:B,messagePeers:te}),[s,e,b,x,E,S,C,T,M,D,O,N,F,j,k,G,ee,K,U,W,J,ie,q,ne,re,L,R,z,B,te,o]);let ae=(0,import_react$24.useMemo)(()=>{let e={debounced:{}};return Object.keys(ui_events_default).forEach(t=>{let n=t;e[n]=(...e)=>ui_events_default[n].apply(I.current,e),e.debounced[n]=(0,import_lodash_debounce.default)(e[n],50)}),e},[]),oe=(0,import_react$24.useMemo)(()=>{let e={incrementDay:`shift+c`,nextView:`right`,openAccounting:`b`,openAchievements:`a`,openLog:`l`,openPriceEvents:`e`,openStats:`s`,openSettings:`,`,openKeybindings:`shift+?`,previousView:`left`,toggleMenu:`m`};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=String(n+1)}),e},[]),se=(0,import_react$24.useMemo)(()=>{let e={incrementDay:()=>re(),nextView:z,openAccounting:()=>L(dialogView.ACCOUNTING),openAchievements:()=>L(dialogView.ACHIEVEMENTS),openLog:()=>L(dialogView.FARMERS_LOG),openPriceEvents:()=>L(dialogView.PRICE_EVENTS),openStats:()=>L(dialogView.STATS),openSettings:()=>L(dialogView.SETTINGS),openKeybindings:()=>L(dialogView.KEYBINDINGS),previousView:B,selectHoe:()=>ae.handleFieldModeSelect(CLEANUP),selectScythe:()=>ae.handleFieldModeSelect(HARVEST),selectWateringCan:()=>ae.handleFieldModeSelect(WATER),selectShovel:()=>{s.toolLevels[toolType.SHOVEL]!==toolLevel.UNAVAILABLE&&ae.handleFieldModeSelect(MINE)},toggleMenu:()=>ae.handleMenuToggle()};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=()=>{let e=M[n];typeof e==`string`&&l(t=>({...t,stageFocus:stageFocusType[e]}))}}),e},[re,z,L,B,ae,s.toolLevels,M,K]);(0,import_react$24.useEffect)(()=>{if(m.current)return;m.current=!0,Object.defineProperty(import_window.default,"farmhand",{get:()=>I.current,configurable:!0});let t=!0;return(async()=>{let n=await e.localforage?.getItem(`state`);if(t){if(n){let e=transformStateDataForImport({...o(),...n}),{isCombineEnabled:t,newDayNotifications:a}=e,s=getValidatedStageFocusFromHash(e);l(t=>({...t,...e,...s&&{stageFocus:s},newDayNotifications:[],hasBooted:!0})),a.forEach(({message:e,severity:t})=>{setTimeout(()=>v.current.showNotification(e,t),0)}),t&&v.current.forRange(harvestPlot,1/0,0,0)}else{await re(!0),l(e=>({...e,historicalValueAdjustments:[]})),v.current.showNotification(LOAN_INCREASED(``,500),`info`);let e=getValidatedStageFocusFromHash(u.current);l(t=>({...t,...e&&{stageFocus:e},hasBooted:!0}))}U()}})(),()=>{t=!1}},[o,re,e.localforage,U]);let ce=(0,import_react$24.useRef)(import_window.default.innerWidth);(0,import_react$24.useEffect)(()=>{let e=()=>{let{innerWidth:e}=import_window.default,t=e!==ce.current;ce.current=e,t&&l(e=>{let t=!doesMenuObstructStage();return e.isMenuOpen===t?e:{...e,isMenuOpen:t}})};return import_window.default.addEventListener(`resize`,e),()=>import_window.default.removeEventListener(`resize`,e)},[]),(0,import_react$24.useEffect)(()=>{if(!s.hasBooted||!f.current)return;let t=!0,{state:n,pendingNotifications:a,broadcastedPositionMessage:o,isFirstDay:u}=f.current;return f.current=null,(async()=>{try{if(await e.localforage?.setItem(`state`,reduceByPersistedKeys({...n,...u&&{historicalValueAdjustments:[]},newDayNotifications:a})),!t)return;if([...a].concat(u?[]:[{message:PROGRESS_SAVED_MESSAGE,severity:`info`}]).forEach(({message:e,severity:t})=>v.current.showNotification(e,t)),n.isCombineEnabled){if(n.stageFocus===stageFocusType.FIELD&&await sleep(1e3),!t)return;v.current.forRange(harvestPlot,1/0,0,0)}}catch(e){console.error(e),t&&v.current.showNotification(JSON.stringify(e),`error`)}finally{t&&(l(e=>({...e,isWaitingForDayToCompleteIncrementing:!1})),o&&v.current.prependPendingPeerMessage(o))}})(),()=>{t=!1}},[s.dayCount,s.hasBooted,e.localforage,l]),(0,import_react$24.useEffect)(()=>()=>{u.current.heartbeatTimeoutId&&clearTimeout(u.current.heartbeatTimeoutId),u.current.peerRoom?.leave()},[]),(0,import_react$24.useEffect)(()=>{!s.hasBooted||!y||(updateAchievements(s,y)!==s&&l(e=>{let t=updateAchievements(e,y);return t===e?e:t}),s.stageFocus===stageFocusType.COW_PEN&&y.stageFocus!==stageFocusType.COW_PEN&&l(e=>({...e,selectedCowId:``})),s.stageFocus!==y.stageFocus&&s.isMenuOpen&&l(e=>{let t=!doesMenuObstructStage();return e.isMenuOpen===t?e:{...e,isMenuOpen:t}}),s.money<y.money&&l(e=>({...e,todaysLosses:moneyTotal(e.todaysLosses,s.money-y.money)})),J(y,s),ie(y))},[s,y,J,ie]);let Y=s.redirect;return{gameState:{...s,blockInput:F,features:t??{},fieldToolInventory:x,mulchInventory:E,isChatAvailable:j,levelEntitlements:D,plantableCropInventory:C,plantableTreeInventory:T,playerInventory:S,playerInventoryQuantities:getInventoryQuantities(s.inventory),shopInventory:O,viewList:M,viewTitle:b},handlers:ae,isInputBlocked:F,keyMap:oe,keyHandlers:se,redirect:Y,state:s,viewList:M,focusPreviousView:B,focusNextView:z,isChatAvailable:j}},emptyObject=Object.freeze({}),Farmhand=e=>{let{gameState:t,handlers:n,isInputBlocked:a,keyMap:o,keyHandlers:s,redirect:l,state:u,viewList:d,focusPreviousView:f,focusNextView:m,isChatAvailable:h}=useFarmhand(e);return(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{allowChanges:!0,keyMap:a?emptyObject:o,handlers:a?emptyObject:s,children:(0,import_jsx_runtime.jsxs)(ThemeProvider,{theme:mui_theme_default,children:[(0,import_jsx_runtime.jsx)(CssBaseline,{}),(0,import_jsx_runtime.jsxs)(SnackbarProvider,{anchorOrigin:{vertical:`top`,horizontal:`right`},classes:{containerRoot:`Farmhand notification-container`},content:snackbarProviderContentCallback,maxSnack:4,children:[l&&(0,import_jsx_runtime.jsx)(Redirect,{to:l}),(0,import_jsx_runtime.jsxs)(FarmhandContext.Provider,{value:{gameState:t,handlers:n},children:[(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Farmhand farmhand-root fill`,u.isMenuOpen?`menu-open`:`menu-closed`,{"use-alternate-end-day-button-position":u.useAlternateEndDayButtonPosition,"block-input":a,"has-booted":u.hasBooted}),sx:e=>({...fillSx,display:`flex`,paddingTop:`3.5em`,position:`fixed`,touchAction:`manipulation`,opacity:+!!u.hasBooted,transform:u.hasBooted?`scale(1)`:`scale(0)`,transition:`opacity, transform 200ms`,...a&&{"& button, & input":{filter:`contrast(65%)`,pointerEvents:`none`}},[`@media (min-width: ${breakpoints.smallPhone}px) and (orientation: landscape)`]:{paddingTop:`3em`},[`@media (min-width: ${breakpoints.sm}px)`]:{paddingTop:`4em`},"& .sidebar-wrapper":{display:`flex`},"& .bottom-controls":{alignItems:`center`,bottom:`1em`,display:`flex`,flexFlow:`column`,justifyContent:`center`,left:`50%`,opacity:.85,position:`fixed`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:0,zIndex:20,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.5em`},"& .MuiMobileStepper-root":{background:`none`},"& .fab-buttons":{display:`flex`,flexFlow:`row`,"& button":{margin:`0.5em`,position:`relative`,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{margin:`0.25em 0.5em`},"@media (max-width: 320px)":{margin:`0.25em 0.1em`}}},...u.isMenuOpen&&{"@media (orientation: landscape)":{left:`calc(50vw + ${layout.sidebarWidth} / 2)`}}},"& .end-day":{position:`fixed`,top:`5em`,right:`1em`,[`@media (min-width: ${breakpoints.sm}px)`]:{right:`1.25em`,top:`5.5em`},...u.useAlternateEndDayButtonPosition&&{right:`auto`,left:`1em`}},"& .menu-button":{transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter}),transform:u.isMenuOpen?`rotate(-90deg)`:`rotate(0deg)`}}),children:[(0,import_jsx_runtime.jsx)(UpdateNotifier,{}),(0,import_jsx_runtime.jsx)(Consumer$29,{}),(0,import_jsx_runtime.jsxs)(Drawer,{className:`sidebar-wrapper`,open:t.isMenuOpen,variant:`persistent`,role:`complementary`,PaperProps:{className:`sidebar`,sx:{backgroundImage:`url(${blue_stripe_bg_default})`,boxSizing:`border-box`,overflow:`auto`,padding:`1em 1em 0`,position:`relative`,width:layout.sidebarWidth,zIndex:20,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{width:layout.narrowSidebarWidth},"& .button-array":{display:`flex`,flexWrap:`wrap`,margin:`0.5em 0`}}},children:[(0,import_jsx_runtime.jsx)(Consumer$14,{}),(0,import_jsx_runtime.jsx)(Consumer$24,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]}),(0,import_jsx_runtime.jsx)(Consumer,{}),(0,import_jsx_runtime.jsxs)(`div`,{className:`bottom-controls`,children:[(0,import_jsx_runtime.jsx)(MobileStepper,{variant:`dots`,steps:d.length,position:`static`,activeStep:d.indexOf(u.stageFocus),className:``,backButton:null,nextButton:null}),(0,import_jsx_runtime.jsxs)(`div`,{className:`fab-buttons buttons`,children:[(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Previous view`,color:`primary`,onClick:f,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowLeft.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{className:(0,import_classnames.default)(`menu-button`,{"is-open":u.isMenuOpen}),color:`primary`,"aria-label":`Open drawer`,onClick:()=>n.handleMenuToggle(),children:(0,import_jsx_runtime.jsx)(import_Menu.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Next view`,color:`primary`,onClick:m,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowRight.default,{})})]})]}),(0,import_jsx_runtime.jsx)(Tooltip,{placement:`left`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`p`,{children:`End the day to save your progress and advance the game.`}),(0,import_jsx_runtime.jsx)(`p`,{children:`(shift + c)`})]}),children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`End the day to save your progress and advance the game.`,className:`end-day`,color:`error`,onClick:n.handleClickEndDayButton,sx:{zIndex:Z_INDEX.END_DAY_BUTTON},children:(0,import_jsx_runtime.jsx)(import_Hotel.default,{})})})]}),h?(0,import_jsx_runtime.jsx)(ChatRoom,{}):null,(0,import_jsx_runtime.jsx)(NotificationSystem_default,{})]})]})]})})};Farmhand.defaultProps={features:{},localforage:import_localforage.default.createInstance({name:`farmhand`,description:`Persisted game data for Farmhand`}),match:{path:``,params:{}}},Farmhand.propTypes={features:import_prop_types$1.object,history:import_prop_types$1.object,location:import_prop_types$1.object,match:import_prop_types$1.object.isRequired};var FarmhandRoute=e=>(0,import_jsx_runtime.jsx)(Farmhand,{...e,features});import_react_dom.render((0,import_jsx_runtime.jsx)(HashRouter,{hashType:`noslash`,children:(0,import_jsx_runtime.jsx)(Route,{path:[`/online/:room`,`/online`,`/`],component:FarmhandRoute})}),document.getElementById(`root`));
|
|
844
|
-
//# sourceMappingURL=index-
|
|
843
|
+
Kegs that contain wine compound in value at a rate of ${WINE_INTEREST_RATE}% for up to ${integerString(100)} days and never spoil.`})})})})})]})};CellarInventoryTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};function getCropsAvailableToFerment(e){return Object.keys(e.items).reduce((e,t)=>{let n=getFinalCropItemFromSeedItem(itemsMap[t]);return n&&Number.isFinite(n.daysToFerment)&&e.push(n),e},[])}var FermentationRecipe=({item:e})=>{let{gameState:{inventory:t,cellarInventory:n,purchasedCellar:a},handlers:{handleMakeFermentationRecipeClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=getInventoryQuantityMap(t),d=FERMENTED_CROP_NAME`${e}`,{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0};(0,import_react$24.useEffect)(()=>{l(Math.min(getMaxYieldOfFermentationRecipe(e,t,n,f),Math.max(1,s)))},[n,f,t,e,s]);let m=s>0&&cellarService.doesCellarSpaceRemain(n,a),h=()=>{m&&o(e,s)},v=getMaxYieldOfFermentationRecipe(e,t,n,f),y=cellarService.getItemInstancesInCellar(n,e);return(0,import_jsx_runtime.jsxs)(Card,{className:`FermentationRecipe`,sx:{position:`relative`,"& .MuiCardHeader-avatar img":{width:`3em`,filter:`drop-shadow(1px 1px 2px rgba(255, 0, 131, 0.63))`}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:d,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:items[e.id],alt:d}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to ferment: `,e.daysToFerment]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,itemsMap[e.id].name,` in inventory:`,` `,integerString(u[e.id]??0)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of`,` `,itemsMap.salt.name,` `,`required: `,getSaltRequirementsForFermentationRecipe(e),` `,`(available:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:u[itemsMap.salt.id]??0,formatter:integerString}),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(y??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`make-recipe`,color:`primary`,disabled:!m||!s,onClick:h,variant:`contained`,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:h,handleUpdateNumber:l,maxQuantity:v,setQuantity:l,value:s})]})]})};FermentationRecipe.propTypes={item:import_prop_types$1.object.isRequired};var totalFermentableItems=Object.keys(fermentableItemsMap).length,FermentationRecipeList=()=>{let{gameState:{levelEntitlements:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getCropsAvailableToFerment(e),[n,a]=(0,import_react$24.useState)(``),o=n.toLowerCase().split(` `).filter(e=>e.length>0),s=t.filter(e=>{let t=e,n=`${FERMENTED_CROP_NAME}${t.name}`.toLowerCase();return o.every(e=>n.includes(e)||t.name.toLowerCase().includes(e))}),l=s.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Fermentation Recipes (`,l,` /`,` `,totalFermentableItems,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search fermentation recipes...`,onSearch:a}),s.length>0&&(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:s.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(FermentationRecipe,{item:e})},e.id))})]})};FermentationRecipeList.propTypes={};var FermentationTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(FermentationRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Some items can be fermented and become much more valuable over time.`})})})})})]});FermentationTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var getGrapesSold=e=>Object.entries(e).reduce((e,[t,n])=>{let a=itemsMap[t];return(n||0)>0&&isGrape(a)&&e.push(a),e},[]);function getWineVarietiesAvailableToMake(e){return getGrapesSold(e).map(({variety:e})=>e)}var WineRecipe=({wineVariety:e})=>{let{gameState:{cellarInventory:t,inventory:n,purchasedCellar:a},handlers:{handleMakeWineClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=grapeVarietyNameMap[e],d=grapeVarietyToGrapeItemMap[e],{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0},m=getInventoryQuantityMap(n);if((0,import_react$24.useEffect)(()=>{d&&l(Math.min(wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),Math.max(1,s)))},[t,f,d,n,s,e]),!d)return null;let h=itemsMap[d.wineId];if(!h)return null;let v=m[d.id]??0,y=m[yeast.id]??0,b=s>0&&v>=50&&cellarService.doesCellarSpaceRemain(t,a),x=!b||!s,S=cellarService.getItemInstancesInCellar(t,h),C=wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),T=()=>{b&&o(d,s)};return(0,import_jsx_runtime.jsxs)(Card,{className:`WineRecipe`,sx:{position:`relative`},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:u,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:wines[e],alt:u}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to mature:`,` `,integerString(wineService.getDaysToMature(e))]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,d.name,` required:`,` `,integerString(50),` (available:`,` `,integerString(v),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,yeast.name,` required:`,` `,integerString(getYeastRequiredForWine(e)*s),` `,`(available: `,integerString(y),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(S??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{color:`primary`,variant:`contained`,disabled:x,onClick:T,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:T,handleUpdateNumber:l,maxQuantity:C,setQuantity:l,value:s})]})]})};WineRecipe.propTypes={wineVariety:(0,import_prop_types$1.oneOf)(Object.keys(grapeVariety))};var totalGrapeVarieties=Object.keys(grapeVariety).length,WineRecipeList=()=>{let{gameState:{itemsSold:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getWineVarietiesAvailableToMake(e),[n,a]=(0,import_react$24.useState)(``),o=t.filter(e=>e.toLowerCase().includes(n.toLowerCase())),s=o.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Wine Recipes (`,s,` /`,` `,totalGrapeVarieties,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search wine varieties...`,onSearch:a}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:o.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(WineRecipe,{wineVariety:e})},e))})]})},WinemakingTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(WineRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Grapes can be made into wine. Wine becomes very valuable in time and never spoils.`})})})})})]});WinemakingTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var CELLAR_TAB_LABELS=[`Cellar Inventory`,`Fermentation`,`Winemaking`],Cellar=()=>{let[e,t]=useTabQueryParam(CELLAR_TAB_LABELS);return(0,import_jsx_runtime.jsxs)(Div,{className:`Cellar`,sx:centerTabsSx,children:[(0,import_jsx_runtime.jsx)(Tabs,{value:e,onChange:(e,n)=>t(n),"aria-label":`Cellar tabs`,children:CELLAR_TAB_LABELS.map((e,t)=>(0,import_jsx_runtime.jsx)(Tab,{label:e,...a11yProps(t)},e))}),(0,import_jsx_runtime.jsx)(CellarInventoryTabPanel,{index:0,currentTab:e}),(0,import_jsx_runtime.jsx)(FermentationTabPanel,{index:1,currentTab:e}),(0,import_jsx_runtime.jsx)(WinemakingTabPanel,{index:2,currentTab:e})]})};Cellar.propTypes={};var brown_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAk0lEQVRoge2UoRGAMBAECZYS8HRDw5QSnxKig88gfgaxl59befPi12wZzz22idr6dp3HPEvu5UtgJXb6gb9YgCaPQG3980B9d4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNDkFVAoT2V0hGgvQ5BFQLExkd4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNMsLvBG5ypkvoIETAAAAAElFTkSuQmCC`,floorboard_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAAwCAYAAAD+WvNWAAAAAXNSR0IArs4c6QAAAUxJREFUeJzt3TFuwkAQheEFjSUQoo1EKJIid8oFuFMuwEVyjYgCCrBEayEiuQgtASNBXvDMmv8rt9nR7pPG24x7X/PZT0LryqpKk/HYuwxZ37sA5I0AQWJlVXnX8LC6cPY2rL9/LeyLQTpdAy6hhUFCgCAhQJDYvhicLTatAU3OPqIRW7RHDi0MEgIECQGCpPEjGrFFujObTl68a8CRdblKOd0JLQwSAgQJAYKEAEFCgCCxdbnyrgEncroTexoVrW643dWp7T1xP7QwSAgQJAQIEgIECQGCxLa7uvVNPfbEfdjb67N3DY0Wy02KWlvu/vNsaWGQECBICBAkBAiS3ufHOwOm8GdhX2FeeP3dhhYGCQGChABBQoAgIUCQ2GK58a4hHM7kelfPB4o2lwYx0MIgIUCQECBICBAkNw2YijTYCDFYF345lKOu/O7pAEBLR2y+MLyqAAAAAElFTkSuQmCC`,jack_o_lantern_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAA4UlEQVRYR+2VMQ6DMAxFYe4R2LsxdOopuHBv0KkDW/ceoTOVK/0qhICd8K0wNBNyIv3nH5PfTrdhaiqu9vAAz9f768+5O7n4tOmAt7h0tAAIRde+mVbMACCoCTCv4wcQio+Pe9NfrjOOuMaCWACIEBYgUjU3AM1+7LsCVL0CdBjaLrV4JugOiEjVvwCdhxDoMlWzzop27vhZoHWwd//vgLsDWqK6AmjiyTjeO1S5cU51oOQhowGUxjkdIDfO6QDWGcIz7wKQE+cuAOKCNc5pAKVxTgWIISxxTgewDiHOVQf4AHx92LXFZzetAAAAAElFTkSuQmCC`,winter_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAQdJREFUeJztmcERgyAUBZ9pIjVRUa5UldT0K/BITnhKZpgYXYG3Bei6oyCwxFrKPb9EEznpTI/ISZK06PEsp931YkROcweQpBstQNMcoH4zo9EUoD78iBGaAtTR+Qqzxb/xIEgL0DgALUDTTYCjZiAPgrQAjQPQAjQOcNSFe1k3eBagBWgcgBagcYBeRuujmP4NWGIt2zQ44pbXN7aDkaucDFH4E/Cf4OQ4AC1A4wC0AI0D0AI0DkAL0DgALUDjALQAze4AkVM3hyCfmP4N8H4ALUDjALQAjQPQAjQOQAvQOAAtQDNEgD3rkSECSL+fbHstQAvQOAAtQOMAtACNA9ACFWJjNXLSG2nxQbKUEorlAAAAAElFTkSuQmCC`,yellow_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAx0lEQVRoQ+2WwQ3AIAwDYRVW6dx9dg1GKf1WlEcTAUks94maBHzGIt/taqn7aj1TKUe/nDyu59EBPjt3vMADWMMhATcEPCbMnySkhdxYyHoj2vm0kFa5WXVDApESiRaaZQVtHxLQKjerDodApOR5v5FwCMzy5O4+JLBb8X4eJoFIiYRJwNrXkvkkIFFrxb84BCIlD99CK7ys7YlzB7QKWNdhEoiUSJgErH0tmU8CErVW/ItDIFLy8C20wsvanjh3QKuAdV14Ag9MlnJUFzG78wAAAABJRU5ErkJgggAA`,lavender_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAyUlEQVRoQ+2WwRGAIAwEQw0WYf/l+LQAPzaAXwd5mAyQ5OZ8MiaB2+OGcp+1SvNdh8i2t6siEddL7wDfrcdd4QG82ZBAGAIRE+ZPEtJCYSzkvRHrfFrIqtyoui6BTIlEC42ygrUPCViVG1WHQyBT8rzfSDgERnlydR8SWK14Ow+TQKZEwiTg7WvNfBLQqDXjXxwCmZKHb6EZXrb2xLkDVgW86zAJZEokTALevtbMJwGNWjP+xSGQKXn4FprhZWtPnDtgVcC7Lj2BB3XCNohEy6k2AAAAAElFTkSuQmCC`,grass_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABp0lEQVRoQ92Y63HDMAyD5RE6QMfLCp2qi2SODtARkmt7yTmuJIAEeHbiv+LrIyjZ8vJxbpe28/P91drbe66IZQ2gBMql//Ni8o5sZAAm+RqOtd/aUQCzLo4CsAXdYrP2rN2DAhkAZXQcvjSAI1lFjBIAVn4H0K4ADtASALaz7EkzO8V+ARydYItWD4ptrVMAJ5gz1roJ0xFyJnXGogGiclcVOasjvYl7xT4VgGPTOmKkFXAkd8S4AyD50fqoGNZvZjdbex0Ah5xsDFYVJp60B7KFZP16d4pdAJjOsu8gCaCXRO1uFE6+E28TPj1AtIOqinCEqjuqfpIcEiCiIgRAwaoVmt3GftZKAdxwvXjL6bNdsv8lj6BOKYB6wqAGWUaISYLmOBrDcqVUkiLfyN75t4lZZ9YOFauO2SEBItDyMcp+NTJFZVSlATLBoz6Za2UpANN11mb0zUQDsIlYu6g6o81uAcgUk/HpQewG4Hq50b9V2NHI2ClqHAIgA33zgSOkdMcxJij/6wMo8lb5rlWBCkSLQJKjeIy/BIASoHUHgHQfUAtEANH1K9JWO4Tg58LYAAAAAElFTkSuQmCC`,forest_floor_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAWRJREFUaIHlWTkSgzAMNH6AO16V/78inT+QVDREYB2rg8mWjBHs6rBkb+M1Pu2Euc823uP8uCQ69RD583OfMFsUSAJIcMXQEjUTQCms9bqZQHauqAl4xzYXagIZylOi/RCIUlbzHUq0HwJRyqK+415GD3h5NoyAl2dVBO7URCjNsXGs2ahe6ElwD6GVmlaPpfdC1twISWLPvaV7u7g57y0d7WK02it78BBCq72yF7aRecF9oJGGlHQ9SUBiBJ1D0vXuQ/0K0I0sY8qCbmR3xiQNViTYScxRKmPMLFlGJZ6En0pEtx7wUwmvMLoShl2Fss+BroRhVyGOsqWrEAfWMqzBf55KVEIZApD7gcxKA7kfoIxkl88Velv8pFaZKOK9OVWIqMbOlMQaldFtuYmARmVUW36QZBOolswHyWUSn1+oBrck1kDj5TI7cVMKyb6lfMxQb5m0rtZIiEFO5tAfk8wJ0jD6AhfOowgv6la0AAAAAElFTkSuQmCC`,Stage=({dayCount:e,field:t,isMenuOpen:n=!0,stageFocus:a,useAlternateEndDayButtonPosition:o=!1,viewTitle:s})=>{let l=(0,import_react$24.useRef)(null);(0,import_react$24.useEffect)(()=>{if(l.current){let e=l.current,{style:t}=e;e.scrollTop=0,t.overflow=`hidden`,setTimeout(()=>t.overflow=``,0)}},[a]);let u={[stageFocusType.HOME]:isOctober()?jack_o_lantern_bg_default:isDecember()?winter_bg_default:brown_dot_bg_default,[stageFocusType.SHOP]:yellow_dot_bg_default,[stageFocusType.WORKSHOP]:lavender_dot_bg_default,[stageFocusType.CELLAR]:floorboard_default,[stageFocusType.FIELD]:grass_default,[stageFocusType.COW_PEN]:grass_default,[stageFocusType.FOREST]:forest_floor_default}[a],d=[stageFocusType.FIELD,stageFocusType.COW_PEN,stageFocusType.FOREST].includes(a);return(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Stage`,{"is-october":isOctober(),"is-december":isDecember()}),"data-stage-focus":a,role:`main`,ref:l,sx:t=>({flex:2,imageRendering:`pixelated`,marginLeft:0,overflow:`auto`,padding:`1.5em 1.5em 0`,position:`relative`,zIndex:0,transition:t.transitions.create(`margin-left`,{duration:t.transitions.duration.enteringScreen,easing:t.transitions.easing.easeOut}),"& .stage-background":{backgroundSize:`96px`,bottom:0,left:0,pointerEvents:`none`,position:`fixed`,right:0,top:0,zIndex:-1,...u?{backgroundImage:`url(${u})`}:{},...d?{backgroundSize:`30%`,filter:seasonFilterMap[getCurrentSeason(e)],[`@media (min-width: ${breakpoints.md}px)`]:{backgroundSize:`10%`}}:{},...a===stageFocusType.CELLAR?{backgroundSize:`288px 96px`}:{}},"& h3":{textAlign:`center`},"& h2":{fontSize:`1.2em`},"& .view-title":{fontSize:`2.5em`,marginBottom:`0.6em`,textAlign:`center`,[`@media (min-width: ${breakpoints.largePhone}px)`]:{display:`none`}},"& section":{padding:`0.5em 0`,[`@media (max-width: ${breakpoints.sm}px)`]:{fontSize:`1em`}},...o?{paddingTop:`4em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{paddingTop:`4.5em`}}:{},...n?{transitionProperty:`padding, margin-left`,[`@media (max-width: ${breakpoints.sm}px)`]:{padding:0},"& > *":{opacity:1,transition:t.transitions.create(`opacity`,{duration:t.transitions.duration.enteringScreen,easing:t.transitions.easing.easeOut}),[`@media (max-width: ${breakpoints.sm}px)`]:{opacity:0}}}:{marginLeft:`-${layout.sidebarWidth}`,transition:t.transitions.create(`margin-left`,{duration:t.transitions.duration.leavingScreen,easing:t.transitions.easing.sharp}),[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`-${layout.narrowSidebarWidth}px`}}}),children:[(0,import_jsx_runtime.jsx)(`div`,{className:`stage-background`}),(0,import_jsx_runtime.jsx)(`h2`,{className:`view-title`,children:s}),a===stageFocusType.HOME&&(0,import_jsx_runtime.jsx)(Consumer$7,{}),a===stageFocusType.FIELD&&(0,import_jsx_runtime.jsx)(Consumer$10,{columns:t[0].length,rows:t.length}),a===stageFocusType.FOREST&&(0,import_jsx_runtime.jsx)(Forest,{}),a===stageFocusType.SHOP&&(0,import_jsx_runtime.jsx)(Consumer$4,{}),a===stageFocusType.COW_PEN&&(0,import_jsx_runtime.jsx)(Consumer$6,{}),a===stageFocusType.WORKSHOP&&(0,import_jsx_runtime.jsx)(Consumer$1,{}),a===stageFocusType.CELLAR&&(0,import_jsx_runtime.jsx)(Cellar,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]})};Stage.propTypes={dayCount:import_prop_types$1.number.isRequired,field:(0,import_prop_types$1.arrayOf)(import_prop_types$1.array).isRequired,isMenuOpen:import_prop_types$1.bool,stageFocus:import_prop_types$1.string.isRequired,useAlternateEndDayButtonPosition:import_prop_types$1.bool,viewTitle:import_prop_types$1.string.isRequired};function Consumer(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Stage,{...t,...n,...e})})}var scriptRel=`modulepreload`,assetsURL=function(e,t){return new URL(e,t).href},seen={},__vitePreload=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),o=document.querySelector(`meta[property=csp-nonce]`),s=o?.nonce||o?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}a=l(t.map(t=>{if(t=assetsURL(t,n),t=u(t),t in seen)return;seen[t]=!0;let a=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let o=e[n];if(o.href===t&&(!a||o.rel===`stylesheet`))return}let o=document.createElement(`link`);if(o.rel=a?`stylesheet`:scriptRel,a||(o.as=`script`),o.crossOrigin=``,o.href=t,s&&o.setAttribute(`nonce`,s),document.head.appendChild(o),a)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function o(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return a.then(t=>{for(let e of t||[])e.status===`rejected`&&o(e.reason);return e().catch(o)})},autoUpdateMode=`false`,selfDestroying=`false`,auto=autoUpdateMode===`true`,autoDestroy=selfDestroying===`true`;function registerSW(e={}){let{immediate:t=!1,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,d,f,m,h=async(e=!0)=>{await f,auto||m?.()};async function v(){if(`serviceWorker`in navigator){if(d=await __vitePreload(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Bd17z0YL.js`);return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e(`./service-worker.js`,{scope:`./`,type:`classic`})).catch(e=>{u?.(e)}),!d)return;if(m=()=>{d?.messageSkipWaiting()},!autoDestroy)if(auto)d.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&(n?n():window.location.reload())}),d.addEventListener(`installed`,e=>{e.isUpdate||o?.()});else{let e=!1,t=()=>{e=!0,d?.addEventListener(`controlling`,e=>{e.isUpdate&&(n?n():window.location.reload())}),a?.()};d.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&o?.():n.isExternal?t():!e&&o?.():n.isUpdate||o?.()}),d.addEventListener(`waiting`,t)}d.register({immediate:t}).then(e=>{l?l(`./service-worker.js`,e):s?.(e)}).catch(e=>{u?.(e)})}}return f=v(),h}function useRegisterSW(e={}){let{immediate:t=!0,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,[d,f]=(0,import_react$24.useState)(!1),[m,h]=(0,import_react$24.useState)(!1),[v]=(0,import_react$24.useState)(()=>registerSW({immediate:t,onNeedReload:n,onOfflineReady(){h(!0),o?.()},onNeedRefresh(){f(!0),a?.()},onRegistered:s,onRegisteredSW:l,onRegisterError:u}));return{needRefresh:[d,f],offlineReady:[m,h],updateServiceWorker:v}}var UpdateNotifier=()=>{let{handlers:{handleGameUpdateAvailable:e}}=(0,import_react$24.useContext)(FarmhandContext),{needRefresh:[t],updateServiceWorker:n}=useRegisterSW();return(0,import_react$24.useEffect)(()=>{t&&(e(n),window.addEventListener(`beforeunload`,()=>{n(!0)}))},[t,e,n]),null},commonFetchConfig={mode:`cors`,cache:`no-cache`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},redirect:`follow`,referrerPolicy:`no-referrer`};async function getData(e=``,t={}){let n=new URLSearchParams;return Object.keys(t).forEach(e=>n.append(encodeURIComponent(e),encodeURIComponent(t[e]))),(await fetch(`${e}?${n}`,{...commonFetchConfig,method:`GET`})).json()}async function postData(e=``,t={}){return(await fetch(e,{...commonFetchConfig,method:`POST`,body:JSON.stringify(t)})).json()}var createNewField=()=>Array(10).fill(void 0).map(()=>[,,,,,,].fill(null)),createNewForest=()=>[,].fill(void 0).map(()=>[,,,,].fill(null)),doesMenuObstructStage=()=>window.innerWidth<BREAKPOINTS.MD,getAvailableShopInventory=memoize(e=>inventory.filter(({id:t})=>!(unlockableItems.hasOwnProperty(t)&&!e.items.hasOwnProperty(t)))),getPeerMetadata=e=>{let t=PEER_METADATA_STATE_KEYS.reduce((t,n)=>(t[n]=e[n],t),{});return Object.assign(t,{cowOfferedForTrade:e.cowInventory.find(({id:t})=>t===e.cowIdOfferedForTrade)}),t},getViewList=({isForestUnlocked:e,purchasedCellar:t,purchasedCowPen:n,showHomeScreen:a})=>{let{CELLAR:o,COW_PEN:s,HOME:l,WORKSHOP:u,FOREST:d}=stageFocusType,f=[...STANDARD_VIEW_LIST];return a&&f.unshift(l),e&&f.push(d),n&&f.push(s),f.push(u),t&&f.push(o),f},getValidatedStageFocusFromHash=e=>{let t=getHashQueryParams().get(VIEW_QUERY_PARAM_NAME);if(!t)return;let n=getLevelEntitlements(levelAchieved(e.experience)).stageFocusType[stageFocusType.FOREST];return getViewList({isForestUnlocked:n,purchasedCellar:e.purchasedCellar,purchasedCowPen:e.purchasedCowPen,showHomeScreen:e.showHomeScreen}).find(e=>e===t)},sleep=e=>new Promise(t=>setTimeout(t,e)),{PLANT}=fieldMode,{MULCH}=itemType,FarmhandService=class{static computePlayerInventory=memoize((e,t)=>e.map(({quantity:e,id:n})=>({quantity:e,...itemsMap[n],value:getItemCurrentValue(itemsMap[n],t)})));static getFieldToolInventory=memoize(e=>e.filter(({id:e})=>{let t=itemsMap[e];return typeof t.enablesFieldMode==`string`&&t.enablesFieldMode!==PLANT&&t.type!==MULCH}).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getPlantableCropInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e].isPlantableCrop).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getMulchInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e]?.type===MULCH).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getPlantableTreeInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e]?.isPlantableTree).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static applyPriceEvents=(e,t,n)=>{let a={...e};return Object.keys(t).forEach(e=>{a[e]=.5}),Object.keys(n).forEach(e=>{a[e]=1.5}),a}},itemIds=Object.keys(itemsMap),getInventoryQuantities=e=>{let t={};for(let e of itemIds)t[e]=0;for(let{id:n,quantity:a}of e)t[n]=a;return t},useFarmhandNavigation=(e,t)=>({openDialogView:(0,import_react$24.useCallback)(t=>{e(e=>({...e,currentDialogView:t,isDialogViewOpen:!0}))},[e]),closeDialogView:(0,import_react$24.useCallback)(()=>{e(e=>({...e,isDialogViewOpen:!1}))},[e]),focusNextView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus);return{...e,stageFocus:t[(n+1)%t.length]}})},[e,t]),focusPreviousView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus),a=n===0?t.length-1:(n-1)%t.length;return{...e,stageFocus:t[a]}})},[e,t])}),{floor,random,sin}=Math,libName=`Trystero`,alloc=(e,t)=>Array(e).fill(void 0).map(t),charSet=`0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz`,genId=e=>alloc(e,()=>charSet[floor(random()*62)]??``).join(``),selfId=genId(20),all=Promise.all.bind(Promise),isBrowser=typeof window<`u`,{entries,fromEntries,keys,values}=Object,noOp=()=>{},candidateType=`candidate`,resetTimer=e=>(e!==null&&clearTimeout(e),null),mkErr=e=>Error(`${libName}: ${e}`),toErrorMessage=(e,t)=>e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:toJson(e??t),toError=(e,t)=>e instanceof Error?e:mkErr(toErrorMessage(e,t)),encoder=new TextEncoder,decoder=new TextDecoder,encodeBytes=e=>encoder.encode(e),decodeBytes=e=>decoder.decode(e),toHex=e=>e.reduce((e,t)=>e+t.toString(16).padStart(2,`0`),``),topicPath=(...e)=>e.join(`@`),shuffle=(e,t)=>{let n=[...e],a=()=>{let e=sin(t++)*1e4;return e-floor(e)},o=n.length;for(;o;){let e=floor(a()*o--),t=n[o];n[o]=n[e],n[e]=t}return n},getRelays=(e,t,n,a=!1)=>e.relayConfig?.urls||(a?shuffle(t,strToNum(e.appId)):t).slice(0,e.relayConfig?.redundancy??n),toJson=JSON.stringify,fromJson=e=>{try{return JSON.parse(e)}catch{throw mkErr(`failed to parse JSON: ${e}`)}},strToNum=(e,t=2**53-1)=>e.split(``).reduce((e,t)=>e+t.charCodeAt(0),0)%t,defaultRetryMs=3333,socketRetryPeriods={},reconnectionLockingPromise=null,resolver=null,pauseRelayReconnection=()=>{reconnectionLockingPromise||=new Promise(e=>{resolver=e}).finally(()=>{resolver=null,reconnectionLockingPromise=null})},resumeRelayReconnection=()=>{resolver?.()},makeSocket=(e,t)=>{let n={},a=()=>{let o=new WebSocket(e);o.onclose=()=>{if(reconnectionLockingPromise){reconnectionLockingPromise.then(a);return}socketRetryPeriods[e]??=defaultRetryMs,setTimeout(a,socketRetryPeriods[e]),socketRetryPeriods[e]*=2},o.onmessage=e=>t(String(e.data)),n.socket=o,n.url=o.url,n.ready=new Promise(t=>o.onopen=()=>{t(n),socketRetryPeriods[e]=defaultRetryMs}),n.send=e=>{o.readyState===1&&o.send(e)}};return a(),n},createRelayManager=e=>{let t={},n=new WeakMap,a=e=>{let t=n.get(e);if(!t)throw mkErr(`relay bookkeeping missing registration for relay client`);return t};return{register:(e,a)=>(t[e]=a,n.set(a,e),a),keyOf:a,scoped:()=>{let e={},t=t=>e[t]??={};return{forKey:t,forRelay:e=>t(a(e))}},getSockets:()=>fromEntries(entries(t).flatMap(([t,n])=>{let a=e(n);return a?[[t,a]]:[]}))}},watchOnline=()=>{if(isBrowser){let e=new AbortController;return addEventListener(`online`,resumeRelayReconnection,{signal:e.signal}),addEventListener(`offline`,pauseRelayReconnection,{signal:e.signal}),()=>e.abort()}return noOp},algo=`AES-GCM`,strToSha1={},pack=e=>btoa(String.fromCharCode.apply(null,Array.from(new Uint8Array(e)))),unpack=e=>{let t=atob(e);return new Uint8Array(t.length).map((e,n)=>t.charCodeAt(n)).buffer},hashWith=async(e,t)=>new Uint8Array(await crypto.subtle.digest(e,encodeBytes(t))),sha1=async e=>strToSha1[e]??=Array.from(await hashWith(`SHA-1`,e)).map(e=>e.toString(36)).join(``),genKey=async(e,t,n)=>crypto.subtle.importKey(`raw`,await crypto.subtle.digest({name:`SHA-256`},encodeBytes(`${e}:${t}:${n}`)),{name:algo},!1,[`encrypt`,`decrypt`]),deriveRoomNamespace=async(e,t)=>toHex(await hashWith(`SHA-256`,`${libName}:${e}:${t}`)),joinChar=`$`,ivJoinChar=`,`,encrypt=async(e,t)=>{let n=crypto.getRandomValues(new Uint8Array(16));return n.join(ivJoinChar)+joinChar+pack(await crypto.subtle.encrypt({name:algo,iv:n},await e,encodeBytes(t)))},decrypt=async(e,t)=>{let[n,a]=t.split(joinChar);return decodeBytes(await crypto.subtle.decrypt({name:algo,iv:new Uint8Array(n?.split(ivJoinChar).map(Number)??[])},await e,unpack(a??``)))},offerTtl=57333,offerLeaseTtlMs=18e4,poolSize=20,OfferPool=class{pool=[];pooled=new Set;leased=new Map;recycling=new Set;cleanupTimer=null;active=!1;constructor(e){this.makeOffer=e}get isActive(){return this.active}warmup(){this.pool=[],this.pooled.clear(),alloc(poolSize,this.makeOffer).forEach(e=>this.push(e)),this.active=!0,this.cleanupTimer=setInterval(()=>{this.pool=this.pool.filter(e=>e.isDead?(this.pooled.delete(e),!1):!0)},offerTtl)}push(e){e.isDead||this.pooled.has(e)||this.leased.has(e)||(this.pool.push(e),this.pooled.add(e))}shift(e){let t=[];for(;t.length<e&&this.pool.length>0;){let e=this.pool.shift();if(!e)break;this.pooled.delete(e),t.push(e)}return t}claimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e))}recycle(e){if(!(e.isDead||this.recycling.has(e))){if(e.connection.remoteDescription){e.destroy();return}if(!this.active){e.destroy();return}this.recycling.add(e),e.setHandlers({connect:noOp,close:noOp,error:noOp}),e.getOffer(!0).then(t=>{if(!t||t.type!==`offer`||e.isDead||!this.active){e.destroy();return}this.push(e)}).catch(()=>e.destroy()).finally(()=>this.recycling.delete(e))}}reclaimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e),this.recycle(e))}lease(e){this.claimLeased(e),this.leased.set(e,setTimeout(()=>{this.leased.delete(e),this.recycle(e)},offerLeaseTtlMs))}checkout(e,t,n){let a=this.shift(e),o=Math.max(0,e-a.length);o>0&&a.push(...alloc(o,this.makeOffer));let s=async(e,a=!1)=>{try{let a=await n(e);return t?(this.lease(e),{peer:e,offer:a,claim:()=>this.claimLeased(e),reclaim:()=>this.reclaimLeased(e)}):{peer:e,offer:a}}catch(t){if(this.claimLeased(e),this.pooled.delete(e),e.destroy(),!a)return s(this.makeOffer(),!0);throw t}};return all(a.map(e=>s(e)))}getOffers(e,t){return this.checkout(e,!0,t)}destroy(){this.active=!1,this.cleanupTimer&&=(clearInterval(this.cleanupTimer),null),this.pool.forEach(e=>e.destroy()),this.pool=[],this.pooled.clear(),this.leased.forEach((e,t)=>{resetTimer(e),t.destroy()}),this.leased.clear(),this.recycling.forEach(e=>e.destroy()),this.recycling.clear()}},overlapRoomPasswordErr=mkErr(`incorrect password for overlapping room`),createPasswordHandshake=(e,t,n)=>{let a=a=>hashWith(`SHA-256`,`${a}:${e}:${t}:${n}`).then(toHex),o=async(t,n,o)=>{if(!e)return;if(o){let e=genId(36);await t({__trystero_pw:`challenge`,c:e});let{data:o}=await n();if(!o||typeof o!=`object`||o.__trystero_pw!==`response`||typeof o.h!=`string`)throw overlapRoomPasswordErr;let s=await a(e);if(o.h!==s)throw overlapRoomPasswordErr;return}let{data:s}=await n();if(!s||typeof s!=`object`||s.__trystero_pw!==`challenge`||typeof s.c!=`string`)throw overlapRoomPasswordErr;await t({__trystero_pw:`response`,h:await a(s.c)})};return{run:o,compose:t=>e||t?async(e,n,a,s)=>{await o(n,a,s),await t?.(e,n,a,s)}:void 0}},iceTimeout=15e3,disconnectedCloseDelayMs=5e3,iceStateEvent=`icegatheringstatechange`,offerType=`offer`,answerType=`answer`,outOfRangePattern=/out of range/i,rewriteMdnsCandidatesToLoopback=e=>e.replace(/ (\S+\.local) (\d+) typ host/g,` 127.0.0.1 $2 typ host`),peer_default=(e,{trickleIce:t,rtcConfig:n,rtcPolyfill:a,turnConfig:o,_test_only_mdnsHostFallbackToLoopback:s})=>{let l=new(a??RTCPeerConnection)({iceServers:defaultIceServers.concat(o??[]),...n}),u={},d=[],f=[],m=t!==!1,h=[],v=[],y=!1,b=!1,x=null,S=null,C=!1,T=()=>S=resetTimer(S),E=()=>{C||(C=!0,T(),u.close?.())},D=e=>{u.signal?u.signal(e):d.push(e)},O=e=>{let t=u.signal;u.signal=n=>{t?.(n),e(n)},d.length>0&&d.splice(0).forEach(e=>u.signal?.(e))},k=e=>s?rewriteMdnsCandidatesToLoopback(e):e,j=e=>{if(!s||typeof e.candidate!=`string`)return e;let t=rewriteMdnsCandidatesToLoopback(e.candidate);return t===e.candidate?e:{...e,candidate:t}},M=e=>({type:e.localDescription?.type??offerType,sdp:k(e.localDescription?.sdp??``)}),N=()=>{let e=l.remoteDescription?.sdp;return e?e.match(/a=ice-ufrag:([^\s]+)/)?.[1]??null:null},F=()=>(l.remoteDescription?.sdp?.match(/^m=/gm)??[]).length,I=e=>{if(!l.remoteDescription)return!1;let t=F();if(typeof e.sdpMLineIndex==`number`&&t>0&&e.sdpMLineIndex>=t)return!1;let n=N();return!(n&&e.usernameFragment&&e.usernameFragment!==n)},L=async e=>{try{return await l.addIceCandidate(e),!0}catch(t){if(t instanceof Error&&outOfRangePattern.test(t.message)&&typeof e.sdpMLineIndex==`number`)return!1;throw t}},R=async()=>{if(!l.remoteDescription||h.length===0)return;let e=h.splice(0),t=[];for(let n of e){if(!I(n)){t.push(n);continue}await L(n)||t.push(n)}t.length>0&&h.push(...t)},z=async e=>{if(I(e)){await L(e)||h.push(e);return}h.push(e)},B=e=>{e.binaryType=`arraybuffer`,e.bufferedAmountLowThreshold=65535,e.onmessage=e=>{let t=e.data;u.data?u.data(t):f.push(t)},e.onopen=()=>u.connect?.(),e.onclose=E,e.onerror=({error:e})=>u.error?.(toError(e,`data channel error`))},V=async e=>{let t=null;try{await Promise.race([new Promise(t=>{let n=()=>{e.iceGatheringState===`complete`&&(e.removeEventListener(iceStateEvent,n),t())};e.addEventListener(iceStateEvent,n),n()}),new Promise(e=>{t=setTimeout(e,iceTimeout)})])}finally{resetTimer(t)}return M(e)},H=async()=>{let e=m?M(l):await V(l);return D(e),e};e?(x=l.createDataChannel(`data`),B(x)):l.ondatachannel=({channel:e})=>{x=e,B(e)};let U=async(e=!1)=>{if(l.connectionState!==`closed`)try{return y=!0,e&&(l.signalingState!==`stable`&&l.signalingState!==`closed`&&l.localDescription?.type===offerType&&await l.setLocalDescription({type:`rollback`}),typeof l.restartIce==`function`&&l.restartIce()),await l.setLocalDescription(e?await l.createOffer({iceRestart:!0}):void 0),await H()}catch(e){u.error?.(toError(e,`failed to create local offer`))}finally{y=!1}};l.onnegotiationneeded=async()=>U(!1),l.onicecandidate=({candidate:e})=>{if(!m||!e)return;let t=j(typeof e.toJSON==`function`?e.toJSON():{candidate:e.candidate,sdpMid:e.sdpMid,sdpMLineIndex:e.sdpMLineIndex,usernameFragment:e.usernameFragment});D({type:candidateType,sdp:JSON.stringify(t)})},l.onconnectionstatechange=()=>{if(l.connectionState===`connected`||l.connectionState===`connecting`){T();return}if(l.connectionState===`disconnected`){S||=setTimeout(()=>{S=null,l.connectionState===`disconnected`&&E()},disconnectedCloseDelayMs);return}(l.connectionState===`failed`||l.connectionState===`closed`)&&E()},l.ontrack=e=>{let t=e.streams[0];if(t){if(!u.track&&!u.stream){v.push({track:e.track,stream:t});return}u.track?.(e.track,t),u.stream?.(t)}},l.onremovestream=e=>u.stream?.(e.stream);let W=e?new Promise(e=>O(t=>{t.type===offerType&&e(t)})):Promise.resolve();return e&&queueMicrotask(()=>{!y&&l.signalingState===`stable`&&!l.localDescription&&l.connectionState!==`closed`&&l.onnegotiationneeded?.(new Event(`negotiationneeded`))}),{created:Date.now(),connection:l,get channel(){return x},get isDead(){return l.connectionState===`closed`},getOffer:async(t=!1)=>{if(e)return t?U(!0):l.localDescription?.type===offerType?m?M(l):V(l):W},async signal(t){if(t.type===`candidate`){try{let e=JSON.parse(t.sdp);e&&typeof e==`object`&&await z(j(e))}catch(e){u.error?.(toError(e,`failed to parse remote candidate`))}return}if(!(x?.readyState===`open`&&!t.sdp?.includes(`a=rtpmap`)))try{let n={...t,sdp:k(t.sdp)};if(t.type===offerType){if(y||l.signalingState!==`stable`&&!b){if(e)return;await all([l.setLocalDescription({type:`rollback`}),l.setRemoteDescription(n)])}else await l.setRemoteDescription(n);return await R(),await l.setLocalDescription(),await H()}if(t.type===answerType){b=!0;try{await l.setRemoteDescription(n),await R()}finally{b=!1}}}catch(e){u.error?.(toError(e,`failed to apply remote signal`))}},sendData:e=>x?.send(e),destroy:()=>{T(),x?.close(),l.close(),y=!1,b=!1,E()},setHandlers:e=>{let{signal:t,...n}=e;Object.assign(u,n),u.data&&f.length>0&&f.splice(0).forEach(e=>u.data?.(e)),t&&O(t),(u.track||u.stream)&&v.length>0&&v.splice(0).forEach(({track:e,stream:t})=>{u.track?.(e,t),u.stream?.(t)})},offerPromise:W,addStream:e=>e.getTracks().forEach(t=>l.addTrack(t,e)),removeStream:e=>l.getSenders().filter(t=>t.track&&e.getTracks().includes(t.track)).forEach(e=>l.removeTrack(e)),addTrack:(e,t)=>l.addTrack(e,t),removeTrack:e=>{let t=l.getSenders().find(t=>t.track===e);t&&l.removeTrack(t)},replaceTrack:(e,t)=>{let n=l.getSenders().find(t=>t.track===e);if(n)return n.replaceTrack(t)}}},defaultIceServers=[...alloc(3,(e,t)=>`stun:stun${t||``}.l.google.com:19302`),`stun:stun.cloudflare.com:3478`].map(e=>({urls:e})),TypedArray=Object.getPrototypeOf(Uint8Array),typeByteLimit=32,typeIndex=0,nonceIndex=32,tagIndex=34,progressIndex=35,payloadIndex=36,chunkSize=16*2**10-payloadIndex,oneByteMax=255,twoByteMax=65535,buffLowEvent=`bufferedamountlow`,channelCloseEvent=`close`,channelErrorEvent=`error`,unloadEvent=`beforeunload`,defaultHandshakeTimeoutMs=1e4,backpressureWaitTimeoutMs=1e4,internalNs=e=>`@_`+e,beforeUnloadRoomCleanups=new Set,cleanupActiveRoomsOnBeforeUnload=()=>beforeUnloadRoomCleanups.forEach(e=>e()),registerBeforeUnloadCleanup=e=>(beforeUnloadRoomCleanups.add(e),beforeUnloadRoomCleanups.size===1&&addEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload),()=>{beforeUnloadRoomCleanups.delete(e),beforeUnloadRoomCleanups.size||removeEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload)}),toByteArray=e=>e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),toHandshakeErrorMessage=e=>{let t=toErrorMessage(e,`unknown error`);return t.startsWith(`handshake `)?t:`handshake failed: ${t}`},waitForBufferedAmountLow=(e,t=backpressureWaitTimeoutMs)=>e.readyState!==`open`||e.bufferedAmount<=e.bufferedAmountLowThreshold?Promise.resolve(e.readyState===`open`):new Promise(n=>{let a=!1,o=null,s=t=>{a||(a=!0,e.removeEventListener(buffLowEvent,l),e.removeEventListener(channelCloseEvent,u),e.removeEventListener(channelErrorEvent,u),resetTimer(o),n(t))},l=()=>s(!0),u=()=>s(!1);if(e.addEventListener(buffLowEvent,l),e.addEventListener(channelCloseEvent,u),e.addEventListener(channelErrorEvent,u),o=setTimeout(()=>s(!1),t),e.readyState!==`open`){s(!1);return}e.bufferedAmount<=e.bufferedAmountLowThreshold&&s(!0)}),room_default=(e,t,n,{onPeerHandshake:a,onHandshakeError:o,handshakeTimeoutMs:s=defaultHandshakeTimeoutMs}={})=>{let l={},u={},d={},f={},m={},h={},v={},y={},b={},x={},S=new WeakMap,C=new WeakMap,T={onPeerJoin:noOp,onPeerLeave:noOp,onPeerStream:noOp,onPeerTrack:noOp},E=noOp,D=(e,t,{includePending:n=!1}={})=>(e?Array.isArray(e)?e:[e]:keys(n?l:u)).flatMap(e=>{let a=n?l[e]:u[e];return a?[Promise.resolve(t(e,a))]:(console.warn(`${libName}: no peer with id ${e} found`),[])}),O=(e,t,n,a,o,s={})=>{let l={k:t,...s,...n===void 0?{}:{m:n}};return D(e,async(e,t)=>{await a(l,e),o(t)})},k=e=>t=>{let n=e.get(t);return n||(n=genId(20),e.set(t,n)),n},j=k(S),M=k(C),N=e=>l[e]??null,F=(e,t,n,a)=>{u[e]&&(N(e)?.__trysteroSetRemoteStreamByKey?.(t,n),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(n.id,n),T.onPeerStream(n,e,a))},I=(e,t,n,a,o)=>{u[e]&&(N(e)?.__trysteroSetRemoteTrackByKey?.(t,n,a),typeof a.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(a.id,a),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteTrackById?.(n.id,n,a),T.onPeerTrack(n,a,e,o))},L=(e,t=mkErr(`peer disconnected`))=>{let n=d[e],a=toError(t,`peer disconnected`);n&&(resetTimer(n.handshakeTimer),n.pendingHandshakePayloads.length=0,n.handshakeWaiters.splice(0).forEach(e=>e.reject(a)),delete d[e]),delete l[e],delete u[e],delete h[e],y[e]?.splice(0).forEach(e=>e.reject(a)),delete y[e],delete b[e],delete x[e]},R=(e,n,a)=>{let o=l[e];if(!o||n&&o!==n)return;let s=!!u[e];L(e,a),o.destroy(),s&&T.onPeerLeave(e),t(e)},z=(e,t={})=>{let n=m[e];if(f[e]&&n){let a=f[e].options;if(a.sendToPending!==!!t.sendToPending||a.receiveWhilePending!==!!t.receiveWhilePending)throw mkErr(`action type "${e}" cannot be redefined`);return n}if(!e)throw mkErr(`action type argument is required`);let a=encodeBytes(e);if(a.byteLength>typeByteLimit)throw mkErr(`action type string "${e}" (${a.byteLength}b) exceeds byte limit (${typeByteLimit}). Hint: choose a shorter name.`);let o={sendToPending:!!t.sendToPending,receiveWhilePending:!!t.receiveWhilePending},s=new Uint8Array(typeByteLimit);s.set(a);let d=0;return f[e]={onComplete:noOp,onProgress:noOp,setOnComplete:t=>{f[e].onComplete=t;let n=v[e];n?.length&&(delete v[e],n.forEach(({payload:e,peerId:n,metadata:a})=>t(e,n,a)))},setOnProgress:t=>{f[e].onProgress=t},send:async(e,t,n,a)=>{let f=typeof e;if(f===`undefined`)throw mkErr(`action data cannot be undefined`);let m=f!==`string`,h=e instanceof Blob,v=h||e instanceof ArrayBuffer||e instanceof TypedArray,y=n!==void 0,b=v?toByteArray(h?await e.arrayBuffer():e):encodeBytes(m?toJson(e):e),x=y?encodeBytes(toJson(n)):null,S=Math.ceil(b.byteLength/chunkSize)+ +!!y||1,C=alloc(S,(e,t)=>{let n=t===S-1,a=!!(y&&t===0),o=new Uint8Array(payloadIndex+(a?x?.byteLength??0:n?b.byteLength-chunkSize*(S-(y?2:1)):chunkSize));return o.set(s),o.set([d>>8,d&oneByteMax],nonceIndex),o.set([Number(n)|Number(a)<<1|Number(v)<<2|Number(m)<<3],tagIndex),o.set([Math.round((t+1)/S*oneByteMax)],progressIndex),o.set(y?a?x??new Uint8Array:b.subarray((t-1)*chunkSize,t*chunkSize):b.subarray(t*chunkSize,(t+1)*chunkSize),payloadIndex),o});return d=d+1&twoByteMax,await all(D(t,async(e,t)=>{let{channel:s}=t,d=0;for(;d<S;){let f=C[d];if(!f||s&&s.bufferedAmount>s.bufferedAmountLowThreshold&&!await waitForBufferedAmountLow(s))break;let m=o.sendToPending?l[e]:u[e];if(!m||m!==t)break;t.sendData(f),d++;let h=f[progressIndex]??oneByteMax;a?.(h/oneByteMax,e,n)}},{includePending:o.sendToPending})),[]},options:o},m[e]=[f[e].send,f[e].setOnComplete,f[e].setOnProgress]},B=e=>z(e),V=(e,t)=>{let n=d[e];if(!n)return;let a=new Uint8Array(t),o=decodeBytes(a.subarray(typeIndex,nonceIndex)).replaceAll(`\0`,``),s=f[o];if(!n.isActive&&!s?.options.receiveWhilePending)return;let l=(a[nonceIndex]??0)<<8|(a[33]??0),u=a[tagIndex]??0,m=a[progressIndex]??0,y=a.subarray(payloadIndex),b=!!(u&1),x=!!(u&2),S=!!(u&4),C=!!(u&8);h[e]??={},h[e][o]??={};let T=h[e][o][l]??={chunks:[]};if(x?T.meta=fromJson(decodeBytes(y)):T.chunks.push(y),s?.onProgress(m/oneByteMax,e,T.meta),!b)return;let E=new Uint8Array(T.chunks.reduce((e,t)=>e+t.byteLength,0));if(T.chunks.reduce((e,t)=>(E.set(t,e),e+t.byteLength),0),delete h[e][o][l],S)s?s.onComplete(E,e,T.meta):(v[o]??=[]).push({payload:E,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}});else{let t=decodeBytes(E),n=C?fromJson(t):t;s?s.onComplete(n,e,T.meta):(v[o]??=[]).push({payload:n,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}})}},H=async()=>{await ie(``),await new Promise(e=>setTimeout(e,99)),entries(l).forEach(([e,t])=>{t.destroy(),L(e,mkErr(`room left`))}),E(),n()},[U,W]=z(internalNs(`ping`)),[G,ee]=z(internalNs(`pong`)),[te,K]=z(internalNs(`signal`)),[q,ne]=z(internalNs(`stream`)),[re,J]=z(internalNs(`track`)),[ie,ae]=z(internalNs(`leave`),{sendToPending:!0,receiveWhilePending:!0}),[oe,se]=z(internalNs(`hsdata`),{sendToPending:!0,receiveWhilePending:!0}),[ce,Y]=z(internalNs(`hsready`),{sendToPending:!0,receiveWhilePending:!0}),le=(e,t)=>{let n=d[e];!n||t&&n.peer!==t||n.isActive||!n.didLocalHandshakePass||!n.didReceiveRemoteReady||(n.isActive=!0,u[e]=n.peer,n.handshakeTimer=resetTimer(n.handshakeTimer),T.onPeerJoin(e))},ue=(e,t,n)=>{let a=d[e];if(!a||a.peer!==t)return;let s=toHandshakeErrorMessage(n);o?.(e,s),R(e,t,mkErr(s))},de=(e,t)=>{let n=d[e];!n||n.peer!==t||n.isActive||(n.didLocalHandshakePass=!0,ce(``,e).catch(n=>ue(e,t,mkErr(`failed sending handshake readiness: ${toErrorMessage(n,`unknown send failure`)}`))),le(e,t))},X=(e,t)=>{let n=d[e];if(!n||n.peer!==t)return;n.handshakeTimer=setTimeout(()=>ue(e,t,mkErr(`handshake timed out after ${s}ms`)),s);let o=async(t,n)=>{await oe(t,e,n)},l=()=>new Promise((n,a)=>{let o=d[e];if(!o||o.peer!==t){a(mkErr(`peer disconnected during handshake`));return}let s=o.pendingHandshakePayloads.shift();if(s){n(s);return}o.handshakeWaiters.push({resolve:n,reject:e=>a(e)})}),u=selfId<e;Promise.resolve(a?.(e,o,l,u)).then(()=>de(e,t)).catch(n=>ue(e,t,toError(n,`handshake failed`)))},fe=e=>e&&typeof e==`object`&&!Array.isArray(e)&&typeof e.k==`string`?{key:e.k,...typeof e.s==`string`?{streamId:e.s}:{},...typeof e.t==`string`?{trackId:e.t}:{},...Object.hasOwn(e,`m`)?{metadata:e.m}:{}}:null;return W((e,t)=>G(``,t)),ee((e,t)=>{let n=y[t];(n?.shift())?.resolve(),n&&!n.length&&delete y[t]}),K((e,t)=>{u[t]&&l[t]?.signal(e)}),ne((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteStreamByKey?.(n.key)??(n.streamId?a?.__trysteroGetRemoteStreamById?.(n.streamId):void 0);if(o){F(t,n.key,o,n.metadata);return}(b[t]??=[]).push(n)}),J((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteTrackByKey?.(n.key)??(n.trackId?a?.__trysteroGetRemoteTrackById?.(n.trackId):void 0);if(o){I(t,n.key,o.track,o.stream,n.metadata);return}(x[t]??=[]).push(n)}),ae((e,t)=>R(t,void 0,mkErr(`peer left room`))),se((e,t,n)=>{let a=d[t];if(!a||a.isActive)return;let o=n===void 0?{data:e}:{data:e,metadata:n},s=a.handshakeWaiters.shift();if(s){s.resolve(o);return}a.pendingHandshakePayloads.push(o)}),Y((e,t)=>{let n=d[t];!n||n.isActive||(n.didReceiveRemoteReady=!0,le(t))}),e((e,t)=>{let n=l[t];if(n){if(n===e)return;n.destroy(),L(t,mkErr(`peer replaced`))}l[t]=e,d[t]={peer:e,isActive:!1,didLocalHandshakePass:!1,didReceiveRemoteReady:!1,handshakeTimer:null,pendingHandshakePayloads:[],handshakeWaiters:[]},e.setHandlers({data:e=>V(t,e),stream:e=>{if(!u[t])return;let n=b[t]?.shift();n&&F(t,n.key,e,n.metadata)},track:(e,n)=>{if(!u[t])return;let a=x[t]?.shift();a&&I(t,a.key,e,n,a.metadata)},signal:e=>{u[t]&&te(e,t)},close:()=>R(t,e,mkErr(`peer disconnected`)),error:n=>{console.error(`${libName} peer error:`,n),R(t,e,n)}}),X(t,e)}),isBrowser&&(E=registerBeforeUnloadCleanup(()=>H().catch(noOp))),{makeAction:B,leave:H,ping:async e=>{if(!u[e])throw mkErr(`no active peer with id ${e}`);let t=Date.now();return await new Promise((t,n)=>{let a=y[e]??=[],o=()=>{let t=y[e];if(!t)return;let n=t.indexOf(s);n>-1&&t.splice(n,1),t.length||delete y[e]},s={resolve:()=>{o(),t()},reject:e=>{o(),n(e)}};a.push(s),U(``,e).catch(e=>s.reject(toError(e,`peer disconnected`)))}),Date.now()-t},getPeers:()=>fromEntries(entries(u).map(([e,t])=>[e,t.connection])),addStream:(e,t,n)=>O(t,j(e),n,q,t=>t.addStream(e),{s:e.id}),removeStream:(e,t)=>{D(t,(t,n)=>n.removeStream(e))},addTrack:(e,t,n,a)=>O(n,M(e),a,re,n=>n.addTrack(e,t),{s:t.id,t:e.id}),removeTrack:(e,t)=>{D(t,(t,n)=>n.removeTrack(e))},replaceTrack:(e,t,n,a)=>O(n,M(t),a,re,n=>n.replaceTrack(e,t),{t:e.id}),onPeerJoin:e=>{T.onPeerJoin=e,keys(u).forEach(t=>e(t))},onPeerLeave:e=>T.onPeerLeave=e,onPeerStream:e=>T.onPeerStream=e,onPeerTrack:e=>T.onPeerTrack=e}},roomFrameVersion=1,roomPresenceFrameVersion=2,wrapRoomFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(3+n.byteLength+t.byteLength);return a[0]=roomFrameVersion,a[1]=n.byteLength>>>8&255,a[2]=n.byteLength&255,a.set(n,3),a.set(t,3+n.byteLength),a},wrapRoomPresenceFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(4+n.byteLength);return a[0]=roomPresenceFrameVersion,a[1]=Number(t),a[2]=n.byteLength>>>8&255,a[3]=n.byteLength&255,a.set(n,4),a},unwrapFrame=e=>{let t=new Uint8Array(e);if(t.byteLength<3)return null;if(t[0]===roomFrameVersion){let e=(t[1]??0)<<8|(t[2]??0),n=3+e;return e<=0||t.byteLength<n?null:{type:`room`,roomToken:decodeBytes(t.subarray(3,n)),payload:t.subarray(n).slice().buffer}}if(t[0]!==roomPresenceFrameVersion||t.byteLength<4)return null;let n=(t[2]??0)<<8|(t[3]??0),a=4+n;return n<=0||t.byteLength<a?null:{type:`presence`,roomToken:decodeBytes(t.subarray(4,a)),isPresent:t[1]===1}},isPeerUnderlyingStale=e=>{let{connection:t,channel:n}=e;return e.isDead||t.connectionState===`closed`||t.connectionState===`failed`||t.iceConnectionState===`closed`||t.iceConnectionState===`failed`||n?.readyState===`closing`||n?.readyState===`closed`},getConnectedPeerHealth=e=>{if(isPeerUnderlyingStale(e))return`stale`;let{channel:t}=e;return!t||t.readyState!==`open`?`transient`:`live`},SharedPeerManager=class{byApp={};roomPresenceHandlers={};getMap(e){return this.byApp[e]??={}}get(e,t){return this.byApp[e]?.[t]}isPeerStale(e){return isPeerUnderlyingStale(e)}getHealth(e){return this.isPeerStale(e)?`stale`:`live`}setRoomPresenceHandler(e,t){return this.roomPresenceHandlers[e]=t,()=>{this.roomPresenceHandlers[e]===t&&delete this.roomPresenceHandlers[e]}}sendRoomPresence(e,t,n){e.isClosing||e.peer.isDead||e.peer.sendData(wrapRoomPresenceFrame(t,n))}clear(e,t,{destroyPeer:n}){let a=this.byApp[e],o=a?.[t];if(!o||o.isClosing)return;o.idleTimer=resetTimer(o.idleTimer),o.isClosing=!0,n&&!o.peer.isDead&&o.peer.destroy();let s=values(o.bindings);o.bindings={},o.bindingsByToken={},o.controlRoomId=null,delete a[t],s.forEach(e=>{e.handlers.close?.(),e.pendingData.length=0,e.pendingSendData.length=0,e.pendingTracks.length=0}),o.remoteStreamsByKey.clear(),o.remoteStreamsById.clear(),o.remoteTracksByKey.clear(),o.remoteTracksById.clear(),o.pendingDataByToken.clear(),o.remoteRoomTokens.clear(),keys(a).length===0&&delete this.byApp[e]}register(e,t,n,a){let o=this.getMap(e),s=o[t];if(s){if(s.idleTimer=resetTimer(s.idleTimer),s.peer===n)return s;this.clear(e,t,{destroyPeer:!0})}let l={appId:e,peerId:t,peer:n,bindings:{},bindingsByToken:{},pendingDataByToken:new Map,remoteRoomTokens:new Set,idleTimer:null,controlRoomId:null,streamOwners:new Map,trackOwners:new Map,remoteStreamsByKey:new Map,remoteStreamsById:new Map,remoteTracksByKey:new Map,remoteTracksById:new Map,idleMs:a,isClosing:!1};return n.setHandlers({data:e=>this.dispatchData(l,e),signal:e=>this.dispatchSignal(l,e),close:()=>this.clear(e,t,{destroyPeer:!1}),error:n=>{console.error(`${libName} peer error:`,n),this.clear(e,t,{destroyPeer:!1})},track:(e,t)=>this.dispatchTrack(l,e,t)}),o[t]=l,l}bind(e,t,n,{onDetach:a}){let o=n.bindings[e];if(o)return n.idleTimer=resetTimer(n.idleTimer),{proxy:o.proxy,isNew:!1};let s={roomId:e,roomToken:null,roomTokenPromise:t,handlers:{},pendingData:[],pendingSendData:[],pendingTracks:[],detach:noOp,proxy:{}},l=()=>{n.bindings[e]&&(this.pruneRoomOwnership(n,e),delete n.bindings[e],s.roomToken&&n.bindingsByToken[s.roomToken]===s&&delete n.bindingsByToken[s.roomToken],n.controlRoomId===e&&(n.controlRoomId=keys(n.bindings)[0]??null),a(),this.scheduleIdleTimer(n))},u={created:n.peer.created,get connection(){return n.peer.connection},get channel(){return n.peer.channel},get isDead(){return n.peer.isDead},getOffer:e=>n.peer.getOffer(e),signal:e=>n.peer.signal(e),sendData:e=>{if(!s.roomToken){s.pendingSendData.push(e);return}n.peer.sendData(wrapRoomFrame(s.roomToken,e))},destroy:()=>l(),setHandlers:e=>{let{signal:t,...n}=e;Object.assign(s.handlers,n),t&&(s.handlers.signal=t),this.flushBindingQueues(s)},offerPromise:n.peer.offerPromise,addStream:t=>{let a=n.streamOwners.get(t)??new Set,o=a.size===0;a.add(e),n.streamOwners.set(t,a),o&&n.peer.addStream(t)},removeStream:t=>{let a=n.streamOwners.get(t);a&&(a.delete(e),a.size===0&&(n.streamOwners.delete(t),n.peer.removeStream(t)))},addTrack:(t,a)=>{let o=n.trackOwners.get(t)??{stream:a,rooms:new Set},s=o.rooms.size===0;return o.stream=a,o.rooms.add(e),n.trackOwners.set(t,o),s?n.peer.addTrack(t,a):n.peer.connection.getSenders().find(e=>e.track===t)??n.peer.addTrack(t,a)},removeTrack:t=>{let a=n.trackOwners.get(t);a&&(a.rooms.delete(e),a.rooms.size===0&&(n.trackOwners.delete(t),n.peer.removeTrack(t)))},replaceTrack:(e,t)=>{let a=n.trackOwners.get(e);if(a){n.trackOwners.delete(e);let o=n.trackOwners.get(t)??{stream:a.stream,rooms:new Set};a.rooms.forEach(e=>o.rooms.add(e)),n.trackOwners.set(t,o)}return n.peer.replaceTrack(e,t)},__trysteroGetRemoteStreamByKey:e=>n.remoteStreamsByKey.get(e),__trysteroSetRemoteStreamByKey:(e,t)=>void n.remoteStreamsByKey.set(e,t),__trysteroGetRemoteStreamById:e=>n.remoteStreamsById.get(e),__trysteroSetRemoteStreamById:(e,t)=>void n.remoteStreamsById.set(e,t),__trysteroGetRemoteTrackByKey:e=>n.remoteTracksByKey.get(e),__trysteroSetRemoteTrackByKey:(e,t,a)=>void n.remoteTracksByKey.set(e,{track:t,stream:a}),__trysteroGetRemoteTrackById:e=>n.remoteTracksById.get(e),__trysteroSetRemoteTrackById:(e,t,a)=>void n.remoteTracksById.set(e,{track:t,stream:a})};return s.proxy=u,s.detach=l,n.bindings[e]=s,n.controlRoomId??=e,n.idleTimer=resetTimer(n.idleTimer),t.then(t=>{if(n.isClosing||n.bindings[e]!==s)return;s.roomToken=t,n.bindingsByToken[t]=s;let a=n.pendingDataByToken.get(t);a?.length&&(s.pendingData.push(...a),n.pendingDataByToken.delete(t)),s.pendingSendData.splice(0).forEach(e=>n.peer.sendData(wrapRoomFrame(t,e))),this.flushBindingQueues(s)}),{proxy:u,isNew:!0}}pruneRoomOwnership(e,t){e.streamOwners.forEach((n,a)=>{n.delete(t),n.size===0&&(e.streamOwners.delete(a),e.peer.removeStream(a))}),e.trackOwners.forEach((n,a)=>{n.rooms.delete(t),n.rooms.size===0&&(e.trackOwners.delete(a),e.peer.removeTrack(a))})}scheduleIdleTimer(e){e.isClosing||keys(e.bindings).length>0||(e.idleTimer=resetTimer(e.idleTimer),e.idleTimer=setTimeout(()=>{let t=this.byApp[e.appId]?.[e.peerId];!t||keys(t.bindings).length>0||this.clear(e.appId,e.peerId,{destroyPeer:!0})},e.idleMs))}getSignalBinding(e){if(e.controlRoomId){let t=e.bindings[e.controlRoomId];if(t?.handlers.signal)return t}let t=values(e.bindings).find(e=>!!e.handlers.signal);return t?(e.controlRoomId=t.roomId,t):null}flushBindingQueues(e){let{handlers:t}=e;t.data&&e.pendingData.length>0&&e.pendingData.splice(0).forEach(e=>t.data?.(e)),(t.track||t.stream)&&e.pendingTracks.length&&e.pendingTracks.splice(0).forEach(({track:e,stream:n})=>{t.track?.(e,n),t.stream?.(n)})}dispatchData(e,t){let n=unwrapFrame(t);if(!n)return;if(n.type===`presence`){n.isPresent?e.remoteRoomTokens.add(n.roomToken):e.remoteRoomTokens.delete(n.roomToken),this.roomPresenceHandlers[e.appId]?.(e.peerId,n.roomToken,n.isPresent);return}let a=e.bindingsByToken[n.roomToken];if(!a){let t=e.pendingDataByToken.get(n.roomToken)??[];t.push(n.payload),e.pendingDataByToken.set(n.roomToken,t);return}a.handlers.data?a.handlers.data(n.payload):a.pendingData.push(n.payload)}dispatchSignal(e,t){this.getSignalBinding(e)?.handlers.signal?.(t)}dispatchTrack(e,t,n){values(e.bindings).forEach(e=>{if(e.handlers.track||e.handlers.stream){e.handlers.track?.(t,n),e.handlers.stream?.(n);return}e.pendingTracks.push({track:t,stream:n})})}},offerPostAnswerTtlMs=23333,offerIdSize=12,disconnectedPeerGraceMs=7533,answeringTtlMs=23333,legacyCandidateKey=`__legacy__`,offerRelayPlaceholder=`offer-placeholder`,publishCipheredSignalingMessage=(e,t,n,a,o,s)=>{e.toCipher(t).then(t=>{e.isLeaving()||!s()||a(n,toJson(o(t.sdp)))})},makeState=()=>({status:`idle`,offerPeer:null,offerId:null,offerSdp:null,offerInitPromise:null,offerAnswered:!1,offerRelays:[],offerSignalRelays:[],offerSignalBacklog:[],offerRelayTimers:[],offerExpiryTimer:null,connectedPeer:null,connectedPeerUnhealthySinceMs:null,answeringExpiryTimer:null,answeringPeer:null,pendingCandidates:{}}),getState=(e,t)=>e[t]??=makeState(),updateStatus=e=>{e.connectedPeer?e.status=`connected`:e.answeringPeer?e.status=`answering`:e.offerPeer||e.offerRelays.some(Boolean)?e.status=`offering`:e.status=`idle`},clearAnswering=(e,t)=>{e.answeringPeer===t&&(e.answeringExpiryTimer=resetTimer(e.answeringExpiryTimer),e.answeringPeer=null,updateStatus(e))},clearConnectedPeer=(e,t,n)=>{e.connectedPeer&&(e.connectedPeer.isDead||e.connectedPeer.destroy(),e.connectedPeer=null,e.connectedPeerUnhealthySinceMs=null,updateStatus(e))},clearOfferRelay=(e,t)=>{e.offerRelayTimers[t]=resetTimer(e.offerRelayTimers[t]),e.offerRelays[t]&&(e.offerRelays[t]=void 0,updateStatus(e))},clearOfferRelayIfPlaceholder=(e,t)=>{e?.offerRelays[t]===offerRelayPlaceholder&&clearOfferRelay(e,t)},hasRemoteDescription=e=>{if(e.isDead||e.connection.connectionState===`closed`)return!0;try{return!!e.connection.remoteDescription}catch{return!0}},resetOfferState=(e,t)=>{let n=e.offerAnswered;e.offerExpiryTimer=resetTimer(e.offerExpiryTimer),e.offerInitPromise=null,e.offerRelays.forEach((t,n)=>clearOfferRelay(e,n)),e.offerRelays=[],e.offerSignalRelays=[],e.offerRelayTimers=[],e.offerSignalBacklog=[],e.offerPeer&&e.offerPeer!==e.connectedPeer&&(n||hasRemoteDescription(e.offerPeer)?e.offerPeer.isDead||e.offerPeer.destroy():t.recycle(e.offerPeer)),e.offerPeer=null,e.offerId=null,e.offerSdp=null,e.offerAnswered=!1,updateStatus(e)},scheduleAnsweringExpiry=(e,t,n,a)=>{resetTimer(t.answeringExpiryTimer),t.answeringExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.answeringPeer!==a||(a.destroy(),clearAnswering(t,a))},answeringTtlMs)},flushBufferedCandidates=async(e,t,n)=>{let a=n?[n,legacyCandidateKey]:[legacyCandidateKey];for(let n of a){let a=e.pendingCandidates[n];if(a?.length){delete e.pendingCandidates[n];for(let e of a)await t.signal(e)}}},scheduleOfferExpiry=(e,t,n,a=offerTtl)=>{resetTimer(t.offerExpiryTimer);let o=t.offerId;t.offerExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.offerId!==o||resetOfferState(t,e.offerPool)},a)},ensureOffer=(e,t,n,a)=>t.offerPeer&&t.offerId&&t.offerSdp?Promise.resolve({peer:t.offerPeer,offer:t.offerSdp,offerId:t.offerId}):(t.offerInitPromise||=(async()=>{let o=(await e.offerPool.checkout(1,!1,e.encryptOffer))[0];if(!o)throw mkErr(`failed to allocate offer peer`);let{peer:s,offer:l}=o;t.offerPeer=s,t.offerId=genId(offerIdSize),t.offerSdp=l,t.offerAnswered=!1,t.offerSignalBacklog=[],updateStatus(t);let u=()=>{t.offerPeer===s&&!t.connectedPeer&&resetOfferState(t,e.offerPool),e.disconnectPeer(s,n)};return s.setHandlers({connect:()=>e.connectPeer(s,n,a),signal:e=>{t.offerPeer===s&&(t.offerSignalBacklog.push(e),t.offerSignalRelays.forEach(t=>t?.(e)))},close:u,error:u}),scheduleOfferExpiry(e,t,n),{peer:s,offer:l,offerId:t.offerId}})().finally(()=>t.offerInitPromise=null),t.offerInitPromise),handleAnnouncement=async(e,t,n,a,o)=>{if(a){e.attachSharedPeerToRoom(n,a);return}let s=e.peerStates[n];if(!s||s.connectedPeer||s.answeringPeer||s.offerAnswered){clearOfferRelayIfPlaceholder(s,t);return}if(s.offerRelays[t]!==offerRelayPlaceholder)return;let[l,u]=await all([sha1(topicPath(e.rootTopicPlaintext,n)),ensureOffer(e,s,n,t)]);if(e.isLeaving())return;if(s.connectedPeer||s.answeringPeer||s.offerAnswered||s.offerRelays[t]!==offerRelayPlaceholder){clearOfferRelayIfPlaceholder(s,t);return}s.offerRelayTimers[t]=resetTimer(s.offerRelayTimers[t]),s.offerRelays[t]=!0,updateStatus(s),s.offerRelayTimers[t]=setTimeout(()=>prunePendingOffer(e,n,t),(e.announceIntervals[t]??e.announceIntervalMs)*.9);let d=!1;s.offerSignalRelays[t]=t=>{d&&(e.isLeaving()||s.connectedPeer||s.offerPeer!==u.peer||s.offerId!==u.offerId||t.type!==`candidate`||publishCipheredSignalingMessage(e,t,l,o,e=>({peerId:selfId,offerId:u.offerId,candidate:e}),()=>!s.connectedPeer&&s.offerPeer===u.peer&&s.offerId===u.offerId))},o(l,toJson({peerId:selfId,offerId:u.offerId,offer:u.offer})),d=!0,s.offerSignalBacklog.forEach(e=>s.offerSignalRelays[t]?.(e))},handleOffer=async(e,t,n,a,o,s,l)=>{let u=getState(e.peerStates,n);if(u.answeringPeer||u.offerAnswered)return;let d=!!(u.offerPeer||u.offerRelays.some(Boolean));if((d||s)&&selfId<n)return;d&&resetOfferState(u,e.offerPool);let f=e.initPeer(!1,e.config);u.answeringPeer=f,scheduleAnsweringExpiry(e,u,n,f),updateStatus(u);let m=()=>{clearAnswering(u,f),e.disconnectPeer(f,n)};f.setHandlers({connect:()=>e.connectPeer(f,n,t),close:m,error:m});let h;try{h=await e.toPlain({type:`offer`,sdp:a})}catch{clearAnswering(u,f),e.onJoinError?.({error:`incorrect room password when decrypting offer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(f.isDead){clearAnswering(u,f);return}let v=await sha1(topicPath(e.rootTopicPlaintext,n));e.isLeaving()||(f.setHandlers({signal:t=>{e.isLeaving()||u.answeringPeer!==f||f.isDead||t.type!==`answer`&&t.type!==`candidate`||publishCipheredSignalingMessage(e,t,v,l,e=>{let n={peerId:selfId};return t.type===`answer`?n.answer=e:n.candidate=e,o&&(n.offerId=o),n},()=>u.answeringPeer===f&&!f.isDead)}}),await f.signal(h),await flushBufferedCandidates(u,f,o))},handleCandidate=async(e,t,n,a,o)=>{let s;try{s=await e.toPlain({type:candidateType,sdp:n})}catch{return}let l=getState(e.peerStates,t),u=a&&l?.offerPeer&&l.offerId===a?l.offerPeer:null,d=l?.answeringPeer??null,f=!a&&l?.offerPeer?l.offerPeer:null,m=o&&!o.isDead?o:u??d??f;if(!m||m.isDead){let e=a??legacyCandidateKey;(l.pendingCandidates[e]??=[]).push(s);return}m.signal(s)},handleAnswer=async(e,t,n,a,o,s)=>{let l;try{l=await e.toPlain({type:`answer`,sdp:a})}catch{e.onJoinError?.({error:`incorrect room password when decrypting answer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(s)e.offerPool.claimLeased(s),s.setHandlers({connect:()=>e.connectPeer(s,n,t),close:()=>e.disconnectPeer(s,n)}),s.signal(l);else{let t=e.peerStates[n];if(!t||!t.offerPeer||t.offerAnswered||o&&t.offerId&&o!==t.offerId||t.offerPeer.isDead)return;t.offerAnswered=!0,scheduleOfferExpiry(e,t,n,offerPostAnswerTtlMs),t.offerPeer.signal(l)}},prunePendingOffer=(e,t,n)=>{let a=e.peerStates[t];!a||a.connectedPeer||a.offerRelays[n]&&clearOfferRelay(a,n)},createSignalHandler=e=>t=>async(n,a,o)=>{if(e.isLeaving())return;let s=typeof a==`string`?fromJson(a):a,l=typeof s.peerId==`string`?s.peerId:``,u=s.offer,d=s.answer,f=s.candidate,m=s.offerId,h=s.peer,v=s.hasOutgoingOffer===!0;if(l===selfId)return;let y=e.peerStates[l],b=y?.connectedPeer;if(b&&y){let e=getConnectedPeerHealth(b);if(e===`live`){y.connectedPeerUnhealthySinceMs=null;return}if(e===`stale`)clearConnectedPeer(y,l,`message-from-stale-peer`);else{let e=Date.now(),t=y.connectedPeerUnhealthySinceMs??e;if(y.connectedPeerUnhealthySinceMs=t,e-t<disconnectedPeerGraceMs)return;clearConnectedPeer(y,l,`message-from-prolonged-disconnect`)}}let x=e.sharedPeers.get(e.appId,l);x&&e.sharedPeers.getHealth(x.peer)===`stale`&&(e.sharedPeers.clear(e.appId,l,{destroyPeer:!0}),x=void 0);let S=!!(l&&!u&&!d&&!f),[C,T]=await all([e.rootTopicP,e.selfTopicP]);if(!e.isLeaving()&&!(n!==C&&n!==T)){if(S&&!x){let n=getState(e.peerStates,l),a=selfId<l;if(n.answeringPeer||n.connectedPeer||n.offerAnswered)return;if(!a&&!n.offerPeer){let t=await sha1(topicPath(e.rootTopicPlaintext,l));!e.isLeaving()&&!n.connectedPeer&&o(t,toJson({peerId:selfId}));return}if(n.offerRelays[t])return;n.offerRelays[t]=offerRelayPlaceholder,updateStatus(n)}if(x&&(u||d||f)){if(x.bindings[e.roomId])return;e.attachSharedPeerToRoom(l,x);return}if(S)return handleAnnouncement(e,t,l,x,o);if(u)return handleOffer(e,t,l,u,m,v,o);if(f)return handleCandidate(e,l,f,m,h);if(d)return handleAnswer(e,t,l,d,m,h)}},announceIntervalMs=5333,announceWarmupIntervalsMs=[233,533,1333],sharedPeerIdleMsDefault=123333,strategy_default=({init:e,subscribe:t,announce:n})=>{let a={},o={},s={},l={},u=new SharedPeerManager,d=()=>values(a).some(e=>keys(e).length>0),f=e=>o[e]??={},m=e=>s[e]??={},h=(e,t,n)=>{u.getHealth(e.peer)===`live`&&u.sendRoomPresence(e,t,n)},v=(e,t)=>{entries(o[e]??{}).forEach(([n,a])=>{let{roomToken:s,roomTokenPromise:l}=a;if(s){h(t,s,!0);return}l.then(s=>{o[e]?.[n]===a&&a.roomToken===s&&(u.get(e,t.peerId)!==t||t.isClosing||h(t,s,!0))})})},y=(e,t,n)=>values(u.getMap(e)).forEach(e=>h(e,t,n)),b=e=>{l[e]||(l[e]=u.setRoomPresenceHandler(e,(t,n,a)=>{if(!a)return;let l=u.get(e,t),d=s[e]?.[n];!l||!d||o[e]?.[d]?.attachSharedPeerToRoom(t,l)}))},x=e=>{a[e]&&keys(a[e]).length>0||(l[e]?.(),delete l[e],delete o[e],delete s[e])},S=!1,C=[],T=null,E=noOp;return(l,h,D)=>{if(!l)throw mkErr(`requires a config map as the first argument`);if(D&&typeof D!=`object`)throw mkErr(`third argument must be a callbacks object`);let{appId:O}=l,k=D?.onJoinError,j=D?.onPeerHandshake,M=D?.handshakeTimeoutMs;if(!O)throw mkErr(`config map is missing appId field`);if(!h)throw mkErr(`roomId argument required`);if(M!==void 0&&(!Number.isFinite(M)||M<=0))throw mkErr(`handshakeTimeoutMs must be a positive number`);if(a[O]?.[h])return a[O][h];b(O);let N=topicPath(libName,O,h),F=sha1(N),I=sha1(topicPath(N,selfId)),L=genKey(l.password??``,O,h),R=deriveRoomNamespace(O,h),z=l._test_only_sharedPeerIdleMs??sharedPeerIdleMsDefault,B=!1,V=e=>async t=>({type:t.type,sdp:await e(L,t.sdp)}),H=V(decrypt),U=V(encrypt),W=u.getMap(O);T||=new OfferPool(()=>peer_default(!0,l));let G=T,ee=async e=>{let t=await e.getOffer(Date.now()-e.created>offerTtl);if(!t||t.type!==`offer`)throw mkErr(`failed to get offer for peer`);return(await U(t)).sdp},te=(e,t)=>{let n=getState(K.peerStates,e);n.answeringExpiryTimer=resetTimer(n.answeringExpiryTimer),n.answeringPeer=null;let{proxy:a,isNew:o}=u.bind(h,R,t,{onDetach:()=>{let n=K.peerStates[e];n?.connectedPeer===t.peer&&(n.connectedPeer=null,n.connectedPeerUnhealthySinceMs=null,updateStatus(n))}});n.connectedPeer=t.peer,n.connectedPeerUnhealthySinceMs=null,updateStatus(n),o&&ie(a,e),resetOfferState(n,G)},K={appId:O,roomId:h,config:l,peerStates:{},rootTopicPlaintext:N,rootTopicP:F,selfTopicP:I,toPlain:H,toCipher:U,isLeaving:()=>B,onJoinError:k,sharedPeers:u,offerPool:G,encryptOffer:ee,initPeer:peer_default,connectPeer:(e,t,n)=>{if(B){e.destroy();return}let a=getState(K.peerStates,t);if(a.connectedPeer){let n=W[t];if(n&&a.connectedPeer===n.peer&&n.bindings[h])return;a.connectedPeer!==e&&!e.isDead&&e.destroy();return}let o=W[t];if(o&&u.getHealth(o.peer)===`stale`&&(u.clear(O,t,{destroyPeer:!0}),o=void 0),o&&o.peer!==e){e.isDead||e.destroy(),te(t,o);return}let s=!o;o||=u.register(O,t,e,z),te(t,o),s&&v(O,o)},disconnectPeer:(e,t)=>{if(B)return;let n=K.peerStates[t];n?.connectedPeer===e&&clearConnectedPeer(n,t,`close-event`)},attachSharedPeerToRoom:te,announceIntervals:[],announceIntervalMs},q=createSignalHandler(K);if(!S){let t=e(l);G.warmup(),C=(Array.isArray(t)?t:[t]).map(e=>Promise.resolve(e)),S=!0,E=l.relayConfig?.manualReconnection?noOp:watchOnline()}K.announceIntervals=C.map(()=>announceIntervalMs);let ne=C.map(()=>0),re=[],J=C.map(async(e,n)=>t(await e,await F,await I,q(n),e=>G.getOffers(e,ee)));all([F,I]).then(([e,t])=>{if(B)return;let a=async(o,s)=>{if(B)return;let l=await n(o,e,t);if(B)return;typeof l==`number`&&(K.announceIntervals[s]=l);let u=ne[s]??0;ne[s]=u+1;let d=K.announceIntervals[s]??announceIntervalMs,f=announceWarmupIntervalsMs[u];re[s]=setTimeout(()=>{a(o,s)},typeof f==`number`?Math.min(d,f):d)};J.forEach(async(e,t)=>{if(await e,B)return;let n=await C[t];n&&!B&&a(n,t)})});let ie=noOp,{compose:ae}=createPasswordHandshake(l.password??``,O,h),oe=ae(j),se={...oe?{onPeerHandshake:oe}:{},...M===void 0?{}:{handshakeTimeoutMs:M},onHandshakeError:(e,t)=>k?.({error:t.replace(/^handshake failed: /,``),appId:O,peerId:e,roomId:h})};a[O]??={};let ce=f(O),Y=room_default(e=>ie=e,e=>{if(B)return;let t=K.peerStates[e];t?.connectedPeer&&(t.connectedPeer=null,updateStatus(t))},()=>{B=!0,ie=noOp;let e=o[O]?.[h];e?.roomToken&&(y(O,e.roomToken,!1),delete s[O]?.[e.roomToken],s[O]&&!keys(s[O]).length&&delete s[O]),o[O]&&(delete o[O][h],keys(o[O]).length||delete o[O]),entries(K.peerStates).forEach(([e,t])=>{if(t.answeringExpiryTimer=resetTimer(t.answeringExpiryTimer),t.connectedPeer&&!t.connectedPeer.isDead){let n=W[e];(!n||n.peer!==t.connectedPeer)&&t.connectedPeer.destroy()}t.answeringPeer&&!t.answeringPeer.isDead&&t.answeringPeer.destroy(),resetOfferState(t,G),t.connectedPeer=null,t.answeringPeer=null,updateStatus(t)}),a[O]&&(delete a[O][h],keys(a[O]).length===0&&delete a[O]),re.forEach(resetTimer),J.forEach(async e=>{(await e)()}),!d()&&(S=!1,G.destroy(),T=null,E(),x(O))},se),le={roomToken:null,roomTokenPromise:R,attachSharedPeerToRoom:te};return ce[h]=le,R.then(e=>{B||o[O]?.[h]!==le||(le.roomToken=e,m(O)[e]=h,values(W).forEach(t=>{t.remoteRoomTokens.has(e)&&te(t.peerId,t)}),y(O,e,!0))}),a[O][h]=Y}},relayManager=createRelayManager(e=>e.socket),topicToInfoHash={},infoHashToTopic={},announceIntervals=relayManager.scoped(),announceFns=relayManager.scoped(),subscriptionTokens=relayManager.scoped(),trackerAnnounceMs={},handledSignals={},msgHandlers=relayManager.scoped(),roomOutstandingOffers={},roomOfferGenerationPromises={},roomSubscriberCounts={},trackerAction=`announce`,hashLimit=20,offerPoolSize=3,defaultAnnounceMs=1e4,maxAnnounceMs=2e4,offerRetentionMs=12e4,signalDedupeWindowMs=4e3,defaultRedundancy=3,getInfoHash=async e=>{if(topicToInfoHash[e])return topicToInfoHash[e];let t=(await sha1(e)).slice(0,hashLimit);return topicToInfoHash[e]=t,infoHashToTopic[t]=e,t},send=async(e,t,n)=>e.send(toJson({action:trackerAction,info_hash:await getInfoHash(t),peer_id:selfId,...n})),warn=(e,t,n=!1)=>console.warn(`${libName}: torrent tracker ${n?`failure`:`warning`} from ${e} - ${t}`),getRoomOutstandingOffers=e=>roomOutstandingOffers[e]??={},deleteRoomOfferBookkeeping=e=>{delete roomOutstandingOffers[e],delete roomOfferGenerationPromises[e]},claimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];if(a)return delete n[t],a.claim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e),a},reclaimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];a&&(delete n[t],a.reclaim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e))},reclaimAllOutstandingOffers=e=>{keys(getRoomOutstandingOffers(e)).forEach(t=>reclaimOutstandingOffer(e,t)),deleteRoomOfferBookkeeping(e)},pruneOutstandingOffers=e=>{let t=Date.now();entries(getRoomOutstandingOffers(e)).forEach(([n,a])=>{t-a.createdAt>offerRetentionMs&&reclaimOutstandingOffer(e,n)})},ensureOutstandingOffers=async(e,t)=>{for(;roomOfferGenerationPromises[e];)await roomOfferGenerationPromises[e];let n=(async()=>{pruneOutstandingOffers(e);let n=getRoomOutstandingOffers(e),a=keys(n).length,o=Math.max(0,offerPoolSize-a);o>0&&(await t(o)).forEach(e=>{n[genId(hashLimit)]={...e,createdAt:Date.now()}})})().finally(()=>{roomOfferGenerationPromises[e]===n&&delete roomOfferGenerationPromises[e]});return roomOfferGenerationPromises[e]=n,await n,getRoomOutstandingOffers(e)},joinRoomStrategy=strategy_default({init:e=>getRelays(e,defaultRelayUrls,defaultRedundancy).map(e=>{let t=relayManager.register(e,makeSocket(e,n=>{let a=fromJson(n),o=a[`failure reason`],s=a[`warning message`],{interval:l}=a,u=a.info_hash?infoHashToTopic[a.info_hash]:void 0;if(o){warn(t.url,o,!0);return}if(s&&warn(t.url,s),l&&l*1e3>(trackerAnnounceMs[t.url]??defaultAnnounceMs)&&u&&announceFns.forKey(e)[u]){let n=Math.min(l*1e3,maxAnnounceMs),a=announceIntervals.forKey(e),o=announceFns.forKey(e);a[u]&&clearInterval(a[u]),trackerAnnounceMs[t.url]=n;let s=o[u];s&&(a[u]=setInterval(()=>{s()},n))}if((a.offer||a.answer)&&u&&a.offer_id){if(a.peer_id===selfId)return;let t=`${u}:${a.offer?`offer`:`answer`}:${a.offer_id}:${a.peer_id??``}`,n=Date.now(),o=handledSignals[t];if(typeof o==`number`&&n-o<signalDedupeWindowMs)return;handledSignals[t]=n,entries(handledSignals).forEach(([e,t])=>{n-t>signalDedupeWindowMs*6&&delete handledSignals[e]}),msgHandlers.forKey(e)[u]?.(a)}}));return t.ready}),subscribe:(e,t,n,a,o)=>{let s=msgHandlers.forRelay(e),l=announceFns.forRelay(e),u=announceIntervals.forRelay(e),d=subscriptionTokens.forRelay(e),f=Symbol(t);d[t]=f,roomSubscriberCounts[t]=(roomSubscriberCounts[t]??0)+1;let m=n=>{if(n.offer&&n.peer_id&&n.offer_id)a(t,{offer:n.offer.sdp,peerId:n.peer_id,hasOutgoingOffer:keys(getRoomOutstandingOffers(t)).length>0},(a,o)=>void send(e,t,{answer:{type:`answer`,sdp:fromJson(o).answer},offer_id:n.offer_id,to_peer_id:n.peer_id}));else if(n.answer&&n.offer_id&&n.peer_id){let e=claimOutstandingOffer(t,n.offer_id);e&&a(t,{answer:n.answer.sdp,peerId:n.peer_id,peer:e.peer},()=>{})}};s[t]=m;let h=async()=>{d[t]===f&&send(e,t,{numwant:offerPoolSize,offers:entries(await ensureOutstandingOffers(t,o)).map(([e,{offer:t}])=>({offer_id:e,offer:{type:`offer`,sdp:t}}))})};return trackerAnnounceMs[e.url]=defaultAnnounceMs,l[t]=h,u[t]=setInterval(h,trackerAnnounceMs[e.url]),h(),()=>{if(roomSubscriberCounts[t]=Math.max(0,(roomSubscriberCounts[t]??1)-1),roomSubscriberCounts[t]||delete roomSubscriberCounts[t],d[t]!==f){roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t);return}let e=u[t];e&&(clearInterval(e),delete u[t]),s[t]===m&&delete s[t],l[t]===h&&delete l[t],delete d[t],roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t)}},announce:e=>trackerAnnounceMs[e.url]}),joinRoom=(e,t,n)=>joinRoomStrategy({...e,trickleIce:e.trickleIce??!1},t,n),getRelaySockets=relayManager.getSockets,defaultRelayUrls=[`tracker.webtorrent.dev`,`tracker.openwebtorrent.com`,`tracker.btorrent.xyz`,`tracker.files.fm:7073/announce`].map(e=>`wss://`+e),require_lodash_throttle=__commonJSMin(((e,t)=>{var n=`Expected a function`,a=NaN,o=`[object Symbol]`,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,f=parseInt,m={}.Object===Object&&{},h=typeof self==`object`&&self&&self.Object===Object&&self,v=m||h||Function(`return this`)(),y=Object.prototype.toString,b=Math.max,x=Math.min,S=function(){return v.Date.now()};function C(e,t,a){var o,s,l,u,d,f,m=0,h=!1,v=!1,y=!0;if(typeof e!=`function`)throw TypeError(n);t=k(t)||0,E(a)&&(h=!!a.leading,v=`maxWait`in a,l=v?b(k(a.maxWait)||0,t):l,y=`trailing`in a?!!a.trailing:y);function C(t){var n=o,a=s;return o=s=void 0,m=t,u=e.apply(a,n),u}function T(e){return m=e,d=setTimeout(j,t),h?C(e):u}function D(e){var n=e-f,a=e-m,o=t-n;return v?x(o,l-a):o}function O(e){var n=e-f,a=e-m;return f===void 0||n>=t||n<0||v&&a>=l}function j(){var e=S();if(O(e))return M(e);d=setTimeout(j,D(e))}function M(e){return d=void 0,y&&o?C(e):(o=s=void 0,u)}function N(){d!==void 0&&clearTimeout(d),m=0,o=f=s=d=void 0}function F(){return d===void 0?u:M(S())}function I(){var e=S(),n=O(e);if(o=arguments,s=this,f=e,n){if(d===void 0)return T(f);if(v)return d=setTimeout(j,t),C(f)}return d===void 0&&(d=setTimeout(j,t)),u}return I.cancel=N,I.flush=F,I}function T(e,t,a){var o=!0,s=!0;if(typeof e!=`function`)throw TypeError(n);return E(a)&&(o=`leading`in a?!!a.leading:o,s=`trailing`in a?!!a.trailing:s),C(e,t,{leading:o,maxWait:t,trailing:s})}function E(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function D(e){return!!e&&typeof e==`object`}function O(e){return typeof e==`symbol`||D(e)&&y.call(e)==`[object Symbol]`}function k(e){if(typeof e==`number`)return e;if(O(e))return a;if(E(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=E(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=e.replace(s,``);var n=u.test(e);return n||d.test(e)?f(e.slice(2),n?2:8):l.test(e)?a:+e}t.exports=T})),import_lodash_throttle=__toESM(require_lodash_throttle()),endpoints={getMarketData:`https://farmhand.vercel.app/api/get-market-data`,postDayResults:`https://farmhand.vercel.app/api/post-day-results`},features=Object.keys({BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_API_ROOT:`https://farmhand.vercel.app/`,VITE_FARMHAND_PACKAGE_VERSION:`1.22.0`,VITE_NAME:`@jeremyckahn/farmhand`,VITE_TURN_CREDENTIAL:``,VITE_TURN_USERNAME:``}).reduce((e,t)=>{let n=t.match(/VITE_ENABLE_(.*)/);return n&&(e[n[1]]=!0),e},{}),searchParams=new URLSearchParams(import_window.default.location?.search);for(let e of searchParams.keys()){let t=e.match(/enable_(.*)/);t&&(features[t[1]]=!0)}var rtcConfig={iceServers:[{urls:`stun:stun.relay.metered.ca:80`}]},handlePeerMetadataRequest=(e,t,n)=>{e.updatePeer(e,t,n)},handleCowTradeRequest=async(e,{cowOffered:t,cowRequested:n},a)=>{let o=!1;e.setState(e=>{let{allowCustomPeerCowNames:s,cowIdOfferedForTrade:l,cowsTraded:u,cowInventory:d,playerId:f,isAwaitingCowTradeRequest:m,peers:h,sendCowAccept:v,sendCowReject:y}=e;if(!v||!y)return console.error(`Peer connection not set up correctly`),null;let b=d.find(({id:e})=>e===l);if(m||n.id!==l||!b)return y({reason:cowTradeRejectionReason.REQUESTED_COW_UNAVAILABLE},a),null;let x={...t,timesTraded:t.originalOwnerId===f?t.timesTraded:t.timesTraded+1},[,S]=Object.entries(h).find(([,e])=>e?.playerId===x.ownerId)??[];return S?(e=changeCowAutomaticHugState(e,b,!1),e=removeCowFromInventory(e,b),e=addCowToInventory(e,{...x,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,b,t,f,s),`success`),v({...b,isUsingHuggingMachine:!1},a),o=!0,{...e,cowIdOfferedForTrade:x.id,cowsTraded:x.originalOwnerId===f?u:u+1,isAwaitingCowTradeRequest:!0,selectedCowId:x.id,peers:{...h,[a]:{...S,cowOfferedForTrade:{...b,ownerId:S.playerId}}}}):(console.error(`No data for peer ${x.ownerId}`),null)},async()=>{o&&(await sleep(750),await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`),e.setState(()=>({isAwaitingCowTradeRequest:!1})))})},handleCowTradeRequestAccept=(e,t,n)=>{let a=!1;e.setState(e=>{let{allowCustomPeerCowNames:o,cowIdOfferedForTrade:s,cowInventory:l,cowsTraded:u,cowTradeTimeoutId:d,playerId:f,peers:m}=e,h=l.find(({id:e})=>e===s);if(!h)return console.error(`handleCowTradeRequestAccept: cow with ID ${s} is no longer available`),e=showNotification(e,UNKNOWN_COW_TRADE_FAILURE,`error`),{...e,isAwaitingCowTradeRequest:!1};let[,v]=Object.entries(m).find(([,e])=>{let{playerId:n}=e;return n===t.ownerId})||[],y=t.originalOwnerId===f,b={...t,timesTraded:y?t.timesTraded:t.timesTraded+1};return e=removeCowFromInventory(e,h),e=addCowToInventory(e,{...b,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,h,b,f,o),`success`),y||(e=addExperience(e,EXPERIENCE_VALUES.COW_TRADED)),d&&clearTimeout(d),a=!0,{...e,cowsTraded:b.originalOwnerId===f?u:u+1,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1,cowIdOfferedForTrade:b.id,selectedCowId:b.id,peers:{...m,[n]:{...v,cowOfferedForTrade:{...h,ownerId:v.playerId}}}}},async()=>{a&&(await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`))})},handleCowTradeRequestReject=(e,{reason:t})=>{let{cowTradeTimeoutId:n}=e.state;typeof n==`number`&&clearTimeout(n),e.setState({cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1}),e.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`)},relayRedundancy=4,useFarmhandNetwork=(e,t,n,a,o,s,l,u)=>{let{hasBooted:d,isOnline:f,room:m,redirect:h,heartbeatTimeoutId:v,peerRoom:y,sendPeerMetadata:b}=e,x=(0,import_react$24.useCallback)(e=>(0,import_lodash_throttle.default)((...n)=>{e(...n),t(e=>({...e,pendingPeerMessages:[]}))},5e3,{trailing:!0}),[t]),S=(0,import_react$24.useCallback)(()=>{typeof a.current?.state?.cowTradeTimeoutId==`number`&&(n.current.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`),console.error(`Cow trade request timed out`),t(e=>({...e,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1})))},[t,n,a]),C=(0,import_react$24.useCallback)(o=>{let{cowIdOfferedForTrade:s,cowInventory:l,peers:u,sendCowTradeRequest:d}=a.current?.state??e;if(!d)return;let{ownerId:f}=o,[m]=Object.entries(u).find(([,e])=>e?.playerId===f)??[];if(!m){console.error(`Owner not found for cow ${JSON.stringify(o)}`);return}if(l.find(({id:e})=>e===o.id)){console.error(`Cow ID ${o.id} is already in inventory`),n.current.showNotification(COW_ALREADY_OWNED,`error`);return}let h=l.find(({id:e})=>e===s);if(!h){console.error(`Cow ID ${s} not found`);return}let v=setTimeout(S,COW_TRADE_TIMEOUT);d({cowOffered:{...h,isUsingHuggingMachine:!1},cowRequested:o},m),t(e=>({...e,cowTradeTimeoutId:v,isAwaitingCowTradeRequest:!0}))},[t,S,n,a]),T=(0,import_react$24.useCallback)(()=>{t(e=>(clearTimeout(e.heartbeatTimeoutId??-1),e));let e=import_window.default.setTimeout(()=>{t(e=>({...e,money:moneyTotal(e.money,e.activePlayers??0)})),T()},HEARTBEAT_INTERVAL_PERIOD);t(t=>({...t,heartbeatTimeoutId:e}))},[t]),E=(0,import_react$24.useCallback)(async()=>{let{isOnline:e,priceCrashes:o,priceSurges:s,room:l,playerId:u,peerRoom:d}=a.current.state;if(e){n.current.showNotification(CONNECTING_TO_SERVER,`info`);try{t(e=>({...e,isAwaitingNetworkRequest:!0,peers:{}})),d?.leave();let{valueAdjustments:e}=await getData(endpoints.getMarketData,{farmId:u,room:l});T(),t(t=>({...t,activePlayers:1,peerRoom:joinRoom({appId:`@jeremyckahn/farmhand`,rtcConfig},l),valueAdjustments:FarmhandService.applyPriceEvents(e,o,s)})),n.current.showNotification(CONNECTED_TO_ROOM(``,l),`success`)}catch(e){n.current.showNotification(SERVER_ERROR,`error`),console.error(e),t(e=>({...e,redirect:withCurrentHashQuery(`/`),cowIdOfferedForTrade:``}))}t(e=>({...e,isAwaitingNetworkRequest:!1,isAwaitingCowTradeRequest:!1}))}},[T,n,a,t]),D=(0,import_react$24.useCallback)((e,t)=>{n.current.prependPendingPeerMessage(e,t)},[n]);return(0,import_react$24.useEffect)(()=>{if(!d||!o)return;let e=decodeURIComponent(s),S=l.startsWith(`/online`),C=!!h&&h!==o.redirect;if(!C&&(S!==f||e!==m)?t(t=>({...t,isOnline:S,redirect:``,room:e})):h&&!C&&S===f&&e===m&&t(e=>({...e,redirect:``})),(f!==o.isOnline||m!==o.room)&&(f&&E(),!f&&typeof v==`number`&&(clearTimeout(v),t(e=>({...e,activePlayers:null,heartbeatTimeoutId:null,peerRoom:null})))),f===!1&&o.isOnline===!0&&n.current.showNotification(DISCONNECTED_FROM_SERVER,`info`),y!==o.peerRoom)if(y){y.onPeerJoin(e=>n.current.addPeer(e)),y.onPeerLeave(e=>n.current.removePeer(e));let[e,o]=y.makeAction(`peerMetadata`);o((...e)=>handlePeerMetadataRequest(a.current,e[0],e[1]));let[s,l]=y.makeAction(`cowTrade`);l((...e)=>handleCowTradeRequest(a.current,e[0],e[1]));let[d,f]=y.makeAction(`cowAccept`);f((...e)=>handleCowTradeRequestAccept(a.current,e[0],e[1]));let[m,h]=y.makeAction(`cowReject`);h((...e)=>handleCowTradeRequestReject(a.current,e[0])),t(t=>({...t,getCowAccept:f,getCowReject:h,getCowTradeRequest:l,getPeerMetadata:o,pendingPeerMessages:[],sendCowAccept:d,sendCowReject:m,sendCowTradeRequest:s,sendPeerMetadata:x(e)})),e(u)}else o.peerRoom?.leave(),t(e=>({...e,peers:{},sendPeerMetadata:null}));b?.(u)},[d,f,m,h,v,y,b,o,s,l,E,x,u,n,a,t]),{syncToRoom:E,scheduleHeartbeat:T,wrapSendPeerMetadata:x,tradeForPeerCow:C,handleCowTradeTimeout:S,messagePeers:D}},computeMarketPositions=(e,t,n)=>n.reduce((n,{id:a,quantity:o})=>{let s=e[a]||0,l=t[a]||0;return itemsMap[a].doesPriceFluctuate&&s!==o&&(o<s||o<l?n[a]=-1:(o>s||o>l)&&(n[a]=1)),n},{}),useFarmhandDayAdvancement=(e,t,n,a,o)=>{let s=(0,import_react$24.useCallback)(async()=>{await n.localforage?.clear(),a.current.showNotification(DATA_DELETED)},[n.localforage,a]),l=(0,import_react$24.useCallback)((e,t={})=>n.localforage?.setItem(`state`,reduceByPersistedKeys({...e,...t})),[n.localforage]),u=(0,import_react$24.useCallback)(async()=>{let n=[],a=null;t(e=>({...e,isAwaitingNetworkRequest:!0}));let o;if(e.current.isOnline){let{inventory:s,room:l,todaysPurchases:u,todaysStartingInventory:d}=e.current,f=computeMarketPositions(d,u,s);try{o=(await postData(endpoints.postDayResults,{positions:f,room:l})).valueAdjustments,Object.keys(f).length&&(n.push({message:POSITIONS_POSTED_NOTIFICATION(``,`You`,f),severity:`info`}),a=POSITIONS_POSTED_NOTIFICATION(``,``,f))}catch(e){n.push({message:SERVER_ERROR,severity:`error`}),t(e=>({...e,redirect:withCurrentHashQuery(`/`),cowIdOfferedForTrade:``,isAwaitingNetworkRequest:!1})),console.error(e)}}return{broadcastedPositionMessage:a,serverMessages:n,serverValueAdjustments:o}},[e,t]);return{clearPersistedData:s,persistState:l,updateServerForNextDay:u,incrementDay:(0,import_react$24.useCallback)(async(n=!1)=>{if(e.current.isWaitingForDayToCompleteIncrementing&&!n)return;n||t(e=>({...e,isWaitingForDayToCompleteIncrementing:!0}));let{broadcastedPositionMessage:a,serverMessages:s,serverValueAdjustments:l}=await u();t(e=>{let t=computeStateForNextDay(e,n),u=[...s,...t.newDayNotifications];return t.valueAdjustments=FarmhandService.applyPriceEvents(l??t.valueAdjustments,t.priceCrashes,t.priceSurges),t.isAwaitingNetworkRequest=!1,t.isWaitingForDayToCompleteIncrementing=!0,t.newDayNotifications=[],t.todaysNotifications=[],o.current={state:t,pendingNotifications:u,broadcastedPositionMessage:a,isFirstDay:n},t})},[e,u,t,o])}},useFarmhandNotifications=(e,t)=>({showInventoryFullNotifications:(0,import_react$24.useCallback)((e,n)=>{inventorySpaceRemaining(e)>0&&inventorySpaceRemaining(n)<=0&&t.current.showNotification(INVENTORY_FULL_NOTIFICATION,`warning`)},[t]),showRecipeLearnedNotifications:(0,import_react$24.useCallback)(({learnedRecipes:n})=>{let a=[];Object.keys(e.learnedRecipes).forEach(e=>{n.hasOwnProperty(e)||a.push(recipesMap[e])}),a.length>1?t.current.showNotification(RECIPES_LEARNED(``,a)):a.length===1&&t.current.showNotification(RECIPE_LEARNED(``,a[0]))},[e.learnedRecipes,t])}),FarmhandReducers=class e extends import_react$24.Component{addCowToInventory(...e){throw Error(`Unimplemented`)}addPeer(...e){throw Error(`Unimplemented`)}adjustLoan(...e){throw Error(`Unimplemented`)}changeCowAutomaticHugState(...e){throw Error(`Unimplemented`)}changeCowBreedingPenResident(...e){throw Error(`Unimplemented`)}changeCowName(...e){throw Error(`Unimplemented`)}clearPlot(...e){throw Error(`Unimplemented`)}chopForestPlot(...e){throw Error(`Unimplemented`)}computeStateForNextDay(...e){throw Error(`Unimplemented`)}fertilizePlot(...e){throw Error(`Unimplemented`)}forRange(...e){throw Error(`Unimplemented`)}harvestForestPlot(...e){throw Error(`Unimplemented`)}harvestPlot(...e){throw Error(`Unimplemented`)}hugCow(...e){throw Error(`Unimplemented`)}makeRecipe(...e){throw Error(`Unimplemented`)}makeFermentationRecipe(...e){throw Error(`Unimplemented`)}makeWine(...e){throw Error(`Unimplemented`)}modifyCow(...e){throw Error(`Unimplemented`)}mulchForestPlot(...e){throw Error(`Unimplemented`)}offerCow(...e){throw Error(`Unimplemented`)}plantInPlot(...e){throw Error(`Unimplemented`)}plantTreeInPlot(...e){throw Error(`Unimplemented`)}prependPendingPeerMessage(...e){throw Error(`Unimplemented`)}purchaseCombine(...e){throw Error(`Unimplemented`)}purchaseComposter(...e){throw Error(`Unimplemented`)}purchaseCow(...e){throw Error(`Unimplemented`)}purchaseCowPen(...e){throw Error(`Unimplemented`)}purchaseCellar(...e){throw Error(`Unimplemented`)}purchaseField(...e){throw Error(`Unimplemented`)}purchaseForest(...e){throw Error(`Unimplemented`)}purchaseItem(...e){throw Error(`Unimplemented`)}purchaseSmelter(...e){throw Error(`Unimplemented`)}purchaseStorageExpansion(...e){throw Error(`Unimplemented`)}purchaseWoodChipper(...e){throw Error(`Unimplemented`)}removeCowFromInventory(...e){throw Error(`Unimplemented`)}removeKegFromCellar(...e){throw Error(`Unimplemented`)}removePeer(...e){throw Error(`Unimplemented`)}selectCow(...e){throw Error(`Unimplemented`)}sellCow(...e){throw Error(`Unimplemented`)}sellItem(...e){throw Error(`Unimplemented`)}sellKeg(...e){throw Error(`Unimplemented`)}setLightningRod(...e){throw Error(`Unimplemented`)}setScarecrow(...e){throw Error(`Unimplemented`)}setSprinkler(...e){throw Error(`Unimplemented`)}showNotification(...e){throw Error(`Unimplemented`)}updatePeer(...e){throw Error(`Unimplemented`)}upgradeTool(...e){throw Error(`Unimplemented`)}waterAllPlots(...e){throw Error(`Unimplemented`)}waterField(...e){throw Error(`Unimplemented`)}waterPlot(...e){throw Error(`Unimplemented`)}withdrawCow(...e){throw Error(`Unimplemented`)}constructor(t){super(t);let n=Object.getOwnPropertyNames(e.prototype).filter(e=>e!==`constructor`);for(let e of n){let t=reducers_exports[e];t&&(this[e]=(...e)=>{this.setState(n=>t(n,...e))})}}},useFarmhandReducers=e=>(0,import_react$24.useMemo)(()=>{let t={};Object.assign(t,reducers_exports);let n=Object.getOwnPropertyNames(FarmhandReducers.prototype).filter(e=>e!==`constructor`);for(let a of n){let n=reducers_exports[a];typeof n==`function`&&(t[a]=(...t)=>{e(e=>{let a=n(e,...t);return!a||a===e?e:{...a}})})}return t},[e]),usePrevious=e=>{let t=(0,import_react$24.useRef)();return(0,import_react$24.useEffect)(()=>{t.current=e},[e]),t.current},{CLEANUP,HARVEST,MINE,WATER}=fieldMode,useFarmhand=e=>{let{features:t,match:{path:n=``,params:{room:a}={}}={}}=e,o=(0,import_react$24.useCallback)(()=>({activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:dialogView.NONE,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:-1},cowColorsPurchased:{},cowIdOfferedForTrade:``,cowInventory:[],cowsSold:{},cowsTraded:0,cowTradeTimeoutId:-1,cropsHarvested:{},dayCount:0,experience:0,farmName:`Unnamed`,field:createNewField(),fieldMode:fieldMode.OBSERVE,forest:createNewForest(),treesChopped:0,treeFruitsHarvested:{},mulchApplied:{},getCowAccept:noop$3,getCowReject:noop$3,getCowTradeRequest:noop$3,getPeerMetadata:noop$3,hasBooted:!1,hasProducedRainbowFertilizer:!1,heartbeatTimeoutId:null,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:v4(),inventory:[{id:scarecrow.id,quantity:1}],inventoryLimit:100,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!1,isMenuOpen:!doesMenuObstructStage(),itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:n.startsWith(`/online`)??!1,isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:500,loansTakenOut:1,money:500,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendPeerMetadata:null,selectedCowId:``,selectedForestItemId:``,selectedItemId:``,priceCrashes:{},priceSurges:{},profitabilityStreak:0,recipesMade:{},record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:``,room:decodeURIComponent(e.match?.params?.room||`global`),sendCowAccept:noop$3,sendCowReject:noop$3,purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,purchasedWoodChipper:0,sendCowTradeRequest:noop$3,showHomeScreen:!0,showNotifications:!0,stageFocus:stageFocusType.HOME,todaysNotifications:[],todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{[toolType.AXE]:toolLevel.UNAVAILABLE,[toolType.HOE]:toolLevel.DEFAULT,[toolType.PICKER_POLE]:toolLevel.UNAVAILABLE,[toolType.SCYTHE]:toolLevel.DEFAULT,[toolType.SHOVEL]:toolLevel.UNAVAILABLE,[toolType.WATERING_CAN]:toolLevel.DEFAULT},useAlternateEndDayButtonPosition:!1,valueAdjustments:{},version:`1.22.0`}),[n,e.match?.params?.room]),[s,l]=(0,import_react$24.useState)(o),u=(0,import_react$24.useRef)(s);u.current=s;let d=a===void 0?s.room:a,f=(0,import_react$24.useRef)(null),m=(0,import_react$24.useRef)(!1),h=useFarmhandReducers(l),v=(0,import_react$24.useRef)(h);v.current=h;let y=usePrevious(s),b=STAGE_TITLE_MAP[s.stageFocus],x=FarmhandService.getFieldToolInventory(s.inventory),S=FarmhandService.computePlayerInventory(s.inventory,s.valueAdjustments),C=FarmhandService.getPlantableCropInventory(s.inventory),T=FarmhandService.getPlantableTreeInventory(s.inventory),E=FarmhandService.getMulchInventory(s.inventory),D=(0,import_react$24.useMemo)(()=>getLevelEntitlements(levelAchieved(s.experience)),[s.experience]),O=(0,import_react$24.useMemo)(()=>getAvailableShopInventory(D),[D]),k=D.stageFocusType[stageFocusType.FOREST],j=s.isOnline&&s.room!==`global`,M=(0,import_react$24.useMemo)(()=>getViewList({isForestUnlocked:k,purchasedCellar:s.purchasedCellar,purchasedCowPen:s.purchasedCowPen,showHomeScreen:s.showHomeScreen}),[s.showHomeScreen,k,s.purchasedCowPen,s.purchasedCellar]),N=(0,import_react$24.useMemo)(()=>getPeerMetadata(s),[s]),F=s.isAwaitingNetworkRequest||s.isAwaitingCowTradeRequest||s.isWaitingForDayToCompleteIncrementing,I=(0,import_react$24.useRef)(null),{openDialogView:L,closeDialogView:R,focusNextView:z,focusPreviousView:B}=useFarmhandNavigation(l,M),V=(0,import_react$24.useRef)(!0),H=(0,import_react$24.useRef)(!1);(0,import_react$24.useEffect)(()=>{if(s.hasBooted){if(H.current){H.current=!1,setHashQueryParam(VIEW_QUERY_PARAM_NAME,s.stageFocus);return}if(V.current){V.current=!1,setHashQueryParam(VIEW_QUERY_PARAM_NAME,s.stageFocus);return}setHashQueryParam(VIEW_QUERY_PARAM_NAME,s.stageFocus,`push`),removeHashQueryParam(`tab`)}},[s.stageFocus,s.hasBooted]),(0,import_react$24.useEffect)(()=>{let e=()=>{let e=getValidatedStageFocusFromHash(u.current)??stageFocusType.HOME;e!==u.current.stageFocus&&(H.current=!0,l(t=>({...t,stageFocus:e})))};return import_window.default.addEventListener(`popstate`,e),()=>import_window.default.removeEventListener(`popstate`,e)},[]);let{syncToRoom:U,scheduleHeartbeat:W,tradeForPeerCow:G,handleCowTradeTimeout:ee,messagePeers:te}=useFarmhandNetwork(s,l,v,I,y,d,n,N),{clearPersistedData:K,persistState:q,updateServerForNextDay:ne,incrementDay:re}=useFarmhandDayAdvancement(u,l,e,v,f),{showInventoryFullNotifications:J,showRecipeLearnedNotifications:ie}=useFarmhandNotifications(s,v);I.current=(0,import_react$24.useMemo)(()=>({state:s,props:e,viewTitle:b,fieldToolInventory:x,mulchInventory:E,playerInventory:S,plantableCropInventory:C,plantableTreeInventory:T,viewList:M,levelEntitlements:D,shopInventory:O,peerMetadata:N,isInputBlocked:F,isChatAvailable:j,isForestUnlocked:k,setState:(e,t)=>{l(n=>{let a=typeof e==`function`?e(n):e;if(a==null)return n;let o={...n,...a};return t&&setTimeout(t,0),o})},...v.current,purchaseItem:(e,t)=>v.current.purchaseItem(e,t),sellItem:(e,t)=>v.current.sellItem(e,t),showNotification:(e,t,n)=>v.current.showNotification(e,t,n),prependPendingPeerMessage:(e,t)=>v.current.prependPendingPeerMessage(e,t),forRange:(e,t,n,a,o)=>v.current.forRange(e,t,n,a,o),createInitialState:o,getData,postData,tradeForPeerCow:G,handleCowTradeTimeout:ee,clearPersistedData:K,syncToRoom:U,scheduleHeartbeat:W,showInventoryFullNotifications:J,showRecipeLearnedNotifications:ie,persistState:(e={})=>q(I.current?.state??s,e),updateServerForNextDay:ne,incrementDay:re,openDialogView:L,closeDialogView:R,focusNextView:z,focusPreviousView:B,messagePeers:te}),[s,e,b,x,E,S,C,T,M,D,O,N,F,j,k,G,ee,K,U,W,J,ie,q,ne,re,L,R,z,B,te,o]);let ae=(0,import_react$24.useMemo)(()=>{let e={debounced:{}};return Object.keys(ui_events_default).forEach(t=>{let n=t;e[n]=(...e)=>ui_events_default[n].apply(I.current,e),e.debounced[n]=(0,import_lodash_debounce.default)(e[n],50)}),e},[]),oe=(0,import_react$24.useMemo)(()=>{let e={incrementDay:`shift+c`,nextView:`right`,openAccounting:`b`,openAchievements:`a`,openLog:`l`,openPriceEvents:`e`,openStats:`s`,openSettings:`,`,openKeybindings:`shift+?`,previousView:`left`,toggleMenu:`m`};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=String(n+1)}),e},[]),se=(0,import_react$24.useMemo)(()=>{let e={incrementDay:()=>re(),nextView:z,openAccounting:()=>L(dialogView.ACCOUNTING),openAchievements:()=>L(dialogView.ACHIEVEMENTS),openLog:()=>L(dialogView.FARMERS_LOG),openPriceEvents:()=>L(dialogView.PRICE_EVENTS),openStats:()=>L(dialogView.STATS),openSettings:()=>L(dialogView.SETTINGS),openKeybindings:()=>L(dialogView.KEYBINDINGS),previousView:B,selectHoe:()=>ae.handleFieldModeSelect(CLEANUP),selectScythe:()=>ae.handleFieldModeSelect(HARVEST),selectWateringCan:()=>ae.handleFieldModeSelect(WATER),selectShovel:()=>{s.toolLevels[toolType.SHOVEL]!==toolLevel.UNAVAILABLE&&ae.handleFieldModeSelect(MINE)},toggleMenu:()=>ae.handleMenuToggle()};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=()=>{let e=M[n];typeof e==`string`&&l(t=>({...t,stageFocus:stageFocusType[e]}))}}),e},[re,z,L,B,ae,s.toolLevels,M,K]);(0,import_react$24.useEffect)(()=>{if(m.current)return;m.current=!0,Object.defineProperty(import_window.default,"farmhand",{get:()=>I.current,configurable:!0});let t=!0;return(async()=>{let n=await e.localforage?.getItem(`state`);if(t){if(n){let e=transformStateDataForImport({...o(),...n}),{isCombineEnabled:t,newDayNotifications:a}=e,s=getValidatedStageFocusFromHash(e);l(t=>({...t,...e,...s&&{stageFocus:s},newDayNotifications:[],hasBooted:!0})),a.forEach(({message:e,severity:t})=>{setTimeout(()=>v.current.showNotification(e,t),0)}),t&&v.current.forRange(harvestPlot,1/0,0,0)}else{await re(!0),l(e=>({...e,historicalValueAdjustments:[]})),v.current.showNotification(LOAN_INCREASED(``,500),`info`);let e=getValidatedStageFocusFromHash(u.current);l(t=>({...t,...e&&{stageFocus:e},hasBooted:!0}))}U()}})(),()=>{t=!1}},[o,re,e.localforage,U]);let ce=(0,import_react$24.useRef)(import_window.default.innerWidth);(0,import_react$24.useEffect)(()=>{let e=()=>{let{innerWidth:e}=import_window.default,t=e!==ce.current;ce.current=e,t&&l(e=>{let t=!doesMenuObstructStage();return e.isMenuOpen===t?e:{...e,isMenuOpen:t}})};return import_window.default.addEventListener(`resize`,e),()=>import_window.default.removeEventListener(`resize`,e)},[]),(0,import_react$24.useEffect)(()=>{if(!s.hasBooted||!f.current)return;let t=!0,{state:n,pendingNotifications:a,broadcastedPositionMessage:o,isFirstDay:u}=f.current;return f.current=null,(async()=>{try{if(await e.localforage?.setItem(`state`,reduceByPersistedKeys({...n,...u&&{historicalValueAdjustments:[]},newDayNotifications:a})),!t)return;if([...a].concat(u?[]:[{message:PROGRESS_SAVED_MESSAGE,severity:`info`}]).forEach(({message:e,severity:t})=>v.current.showNotification(e,t)),n.isCombineEnabled){if(n.stageFocus===stageFocusType.FIELD&&await sleep(1e3),!t)return;v.current.forRange(harvestPlot,1/0,0,0)}}catch(e){console.error(e),t&&v.current.showNotification(JSON.stringify(e),`error`)}finally{t&&(l(e=>({...e,isWaitingForDayToCompleteIncrementing:!1})),o&&v.current.prependPendingPeerMessage(o))}})(),()=>{t=!1}},[s.dayCount,s.hasBooted,e.localforage,l]),(0,import_react$24.useEffect)(()=>()=>{u.current.heartbeatTimeoutId&&clearTimeout(u.current.heartbeatTimeoutId),u.current.peerRoom?.leave()},[]),(0,import_react$24.useEffect)(()=>{!s.hasBooted||!y||(updateAchievements(s,y)!==s&&l(e=>{let t=updateAchievements(e,y);return t===e?e:t}),s.stageFocus===stageFocusType.COW_PEN&&y.stageFocus!==stageFocusType.COW_PEN&&l(e=>({...e,selectedCowId:``})),s.stageFocus!==y.stageFocus&&s.isMenuOpen&&l(e=>{let t=!doesMenuObstructStage();return e.isMenuOpen===t?e:{...e,isMenuOpen:t}}),s.money<y.money&&l(e=>({...e,todaysLosses:moneyTotal(e.todaysLosses,s.money-y.money)})),J(y,s),ie(y))},[s,y,J,ie]);let Y=s.redirect;return{gameState:{...s,blockInput:F,features:t??{},fieldToolInventory:x,mulchInventory:E,isChatAvailable:j,levelEntitlements:D,plantableCropInventory:C,plantableTreeInventory:T,playerInventory:S,playerInventoryQuantities:getInventoryQuantities(s.inventory),shopInventory:O,viewList:M,viewTitle:b},handlers:ae,isInputBlocked:F,keyMap:oe,keyHandlers:se,redirect:Y,state:s,viewList:M,focusPreviousView:B,focusNextView:z,isChatAvailable:j}},emptyObject=Object.freeze({}),Farmhand=e=>{let{gameState:t,handlers:n,isInputBlocked:a,keyMap:o,keyHandlers:s,redirect:l,state:u,viewList:d,focusPreviousView:f,focusNextView:m,isChatAvailable:h}=useFarmhand(e);return(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{allowChanges:!0,keyMap:a?emptyObject:o,handlers:a?emptyObject:s,children:(0,import_jsx_runtime.jsxs)(ThemeProvider,{theme:mui_theme_default,children:[(0,import_jsx_runtime.jsx)(CssBaseline,{}),(0,import_jsx_runtime.jsxs)(SnackbarProvider,{anchorOrigin:{vertical:`top`,horizontal:`right`},classes:{containerRoot:`Farmhand notification-container`},content:snackbarProviderContentCallback,maxSnack:4,children:[l&&(0,import_jsx_runtime.jsx)(Redirect,{to:l}),(0,import_jsx_runtime.jsxs)(FarmhandContext.Provider,{value:{gameState:t,handlers:n},children:[(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Farmhand farmhand-root fill`,u.isMenuOpen?`menu-open`:`menu-closed`,{"use-alternate-end-day-button-position":u.useAlternateEndDayButtonPosition,"block-input":a,"has-booted":u.hasBooted}),sx:e=>({...fillSx,display:`flex`,paddingTop:`3.5em`,position:`fixed`,touchAction:`manipulation`,opacity:+!!u.hasBooted,transform:u.hasBooted?`scale(1)`:`scale(0)`,transition:`opacity, transform 200ms`,...a&&{"& button, & input":{filter:`contrast(65%)`,pointerEvents:`none`}},[`@media (min-width: ${breakpoints.smallPhone}px) and (orientation: landscape)`]:{paddingTop:`3em`},[`@media (min-width: ${breakpoints.sm}px)`]:{paddingTop:`4em`},"& .sidebar-wrapper":{display:`flex`},"& .bottom-controls":{alignItems:`center`,bottom:`1em`,display:`flex`,flexFlow:`column`,justifyContent:`center`,left:`50%`,opacity:.85,position:`fixed`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:0,zIndex:20,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.5em`},"& .MuiMobileStepper-root":{background:`none`},"& .fab-buttons":{display:`flex`,flexFlow:`row`,"& button":{margin:`0.5em`,position:`relative`,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{margin:`0.25em 0.5em`},"@media (max-width: 320px)":{margin:`0.25em 0.1em`}}},...u.isMenuOpen&&{"@media (orientation: landscape)":{left:`calc(50vw + ${layout.sidebarWidth} / 2)`}}},"& .end-day":{position:`fixed`,top:`5em`,right:`1em`,[`@media (min-width: ${breakpoints.sm}px)`]:{right:`1.25em`,top:`5.5em`},...u.useAlternateEndDayButtonPosition&&{right:`auto`,left:`1em`}},"& .menu-button":{transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter}),transform:u.isMenuOpen?`rotate(-90deg)`:`rotate(0deg)`}}),children:[(0,import_jsx_runtime.jsx)(UpdateNotifier,{}),(0,import_jsx_runtime.jsx)(Consumer$29,{}),(0,import_jsx_runtime.jsxs)(Drawer,{className:`sidebar-wrapper`,open:t.isMenuOpen,variant:`persistent`,role:`complementary`,PaperProps:{className:`sidebar`,sx:{backgroundImage:`url(${blue_stripe_bg_default})`,boxSizing:`border-box`,overflow:`auto`,padding:`1em 1em 0`,position:`relative`,width:layout.sidebarWidth,zIndex:20,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{width:layout.narrowSidebarWidth},"& .button-array":{display:`flex`,flexWrap:`wrap`,margin:`0.5em 0`}}},children:[(0,import_jsx_runtime.jsx)(Consumer$14,{}),(0,import_jsx_runtime.jsx)(Consumer$24,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]}),(0,import_jsx_runtime.jsx)(Consumer,{}),(0,import_jsx_runtime.jsxs)(`div`,{className:`bottom-controls`,children:[(0,import_jsx_runtime.jsx)(MobileStepper,{variant:`dots`,steps:d.length,position:`static`,activeStep:d.indexOf(u.stageFocus),className:``,backButton:null,nextButton:null}),(0,import_jsx_runtime.jsxs)(`div`,{className:`fab-buttons buttons`,children:[(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Previous view`,color:`primary`,onClick:f,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowLeft.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{className:(0,import_classnames.default)(`menu-button`,{"is-open":u.isMenuOpen}),color:`primary`,"aria-label":`Open drawer`,onClick:()=>n.handleMenuToggle(),children:(0,import_jsx_runtime.jsx)(import_Menu.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Next view`,color:`primary`,onClick:m,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowRight.default,{})})]})]}),(0,import_jsx_runtime.jsx)(Tooltip,{placement:`left`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`p`,{children:`End the day to save your progress and advance the game.`}),(0,import_jsx_runtime.jsx)(`p`,{children:`(shift + c)`})]}),children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`End the day to save your progress and advance the game.`,className:`end-day`,color:`error`,onClick:n.handleClickEndDayButton,sx:{zIndex:Z_INDEX.END_DAY_BUTTON},children:(0,import_jsx_runtime.jsx)(import_Hotel.default,{})})})]}),h?(0,import_jsx_runtime.jsx)(ChatRoom,{}):null,(0,import_jsx_runtime.jsx)(NotificationSystem_default,{})]})]})]})})};Farmhand.defaultProps={features:{},localforage:import_localforage.default.createInstance({name:`farmhand`,description:`Persisted game data for Farmhand`}),match:{path:``,params:{}}},Farmhand.propTypes={features:import_prop_types$1.object,history:import_prop_types$1.object,location:import_prop_types$1.object,match:import_prop_types$1.object.isRequired};var FarmhandRoute=e=>(0,import_jsx_runtime.jsx)(Farmhand,{...e,features});import_react_dom.render((0,import_jsx_runtime.jsx)(HashRouter,{hashType:`noslash`,children:(0,import_jsx_runtime.jsx)(Route,{path:[`/online/:room`,`/online`,`/`],component:FarmhandRoute})}),document.getElementById(`root`));
|
|
844
|
+
//# sourceMappingURL=index-DgErVmlw.js.map
|