diff --git a/main.bundle.js b/main.bundle.js index 8bb2654b3..77d206345 100644 --- a/main.bundle.js +++ b/main.bundle.js @@ -1,4 +1,4 @@ -!function(e){function t(t){for(var n,i,s=t[0],l=t[1],c=t[2],m=0,h=[];m{if(4===t.bitNodeN)return e;const a=t.sourceFileLvl(4);return a<=1?16*e:2===a?4*e:e}}const o={hacknet:{numNodes:0,purchaseNode:0,getPurchaseNodeCost:0,getNodeStats:0,upgradeLevel:0,upgradeRam:0,upgradeCore:0,upgradeCache:0,getLevelUpgradeCost:0,getRamUpgradeCost:0,getCoreUpgradeCost:0,getCacheUpgradeCost:0,numHashes:0,hashCost:0,spendHashes:0},sprintf:0,vsprintf:0,scan:n.ScriptScanRamCost,hack:n.ScriptHackRamCost,hackAnalyzeThreads:n.ScriptHackAnalyzeRamCost,hackAnalyze:n.ScriptHackAnalyzeRamCost,hackAnalyzeSecurity:n.ScriptHackAnalyzeRamCost,hackAnalyzeChance:n.ScriptHackAnalyzeRamCost,sleep:0,share:2.4,getSharePower:.2,grow:n.ScriptGrowRamCost,growthAnalyze:n.ScriptGrowthAnalyzeRamCost,growthAnalyzeSecurity:n.ScriptGrowthAnalyzeRamCost,weaken:n.ScriptWeakenRamCost,weakenAnalyze:n.ScriptWeakenAnalyzeRamCost,print:0,tprint:0,clearLog:0,disableLog:0,enableLog:0,isLogEnabled:0,getScriptLogs:0,nuke:n.ScriptPortProgramRamCost,brutessh:n.ScriptPortProgramRamCost,ftpcrack:n.ScriptPortProgramRamCost,relaysmtp:n.ScriptPortProgramRamCost,httpworm:n.ScriptPortProgramRamCost,sqlinject:n.ScriptPortProgramRamCost,run:n.ScriptRunRamCost,exec:n.ScriptExecRamCost,spawn:n.ScriptSpawnRamCost,kill:n.ScriptKillRamCost,killall:n.ScriptKillRamCost,exit:0,scp:n.ScriptScpRamCost,ls:n.ScriptScanRamCost,ps:n.ScriptScanRamCost,hasRootAccess:n.ScriptHasRootAccessRamCost,getIp:n.ScriptGetHostnameRamCost,getHostname:n.ScriptGetHostnameRamCost,getHackingLevel:n.ScriptGetHackingLevelRamCost,getHackingMultipliers:n.ScriptGetMultipliersRamCost,getHacknetMultipliers:n.ScriptGetMultipliersRamCost,getBitNodeMultipliers:n.ScriptGetMultipliersRamCost,getServer:n.ScriptGetMultipliersRamCost/2,getServerMoneyAvailable:n.ScriptGetServerRamCost,getServerSecurityLevel:n.ScriptGetServerRamCost,getServerBaseSecurityLevel:n.ScriptGetServerRamCost,getServerMinSecurityLevel:n.ScriptGetServerRamCost,getServerRequiredHackingLevel:n.ScriptGetServerRamCost,getServerMaxMoney:n.ScriptGetServerRamCost,getServerGrowth:n.ScriptGetServerRamCost,getServerNumPortsRequired:n.ScriptGetServerRamCost,getServerRam:n.ScriptGetServerRamCost,getServerMaxRam:n.ScriptGetServerMaxRam,getServerUsedRam:n.ScriptGetServerUsedRam,serverExists:n.ScriptGetServerRamCost,fileExists:n.ScriptFileExistsRamCost,isRunning:n.ScriptIsRunningRamCost,stock:{getSymbols:n.ScriptGetStockRamCost,getPrice:n.ScriptGetStockRamCost,getAskPrice:n.ScriptGetStockRamCost,getBidPrice:n.ScriptGetStockRamCost,getPosition:n.ScriptGetStockRamCost,getMaxShares:n.ScriptGetStockRamCost,getPurchaseCost:n.ScriptGetStockRamCost,getSaleGain:n.ScriptGetStockRamCost,buy:n.ScriptBuySellStockRamCost,sell:n.ScriptBuySellStockRamCost,short:n.ScriptBuySellStockRamCost,sellShort:n.ScriptBuySellStockRamCost,placeOrder:n.ScriptBuySellStockRamCost,cancelOrder:n.ScriptBuySellStockRamCost,getOrders:n.ScriptBuySellStockRamCost,getVolatility:n.ScriptBuySellStockRamCost,getForecast:n.ScriptBuySellStockRamCost,purchase4SMarketData:n.ScriptBuySellStockRamCost,purchase4SMarketDataTixApi:n.ScriptBuySellStockRamCost},getPurchasedServerLimit:n.ScriptGetPurchasedServerLimit,getPurchasedServerMaxRam:n.ScriptGetPurchasedServerMaxRam,getPurchasedServerCost:n.ScriptGetPurchaseServerRamCost,purchaseServer:n.ScriptPurchaseServerRamCost,deleteServer:n.ScriptPurchaseServerRamCost,getPurchasedServers:n.ScriptPurchaseServerRamCost,write:0,tryWritePort:0,read:0,peek:0,clear:0,writePort:0,readPort:0,getPortHandle:0,rm:n.ScriptReadWriteRamCost,scriptRunning:n.ScriptArbScriptRamCost,scriptKill:n.ScriptArbScriptRamCost,getScriptName:0,getScriptRam:n.ScriptGetScriptRamCost,getHackTime:n.ScriptGetHackTimeRamCost,getGrowTime:n.ScriptGetHackTimeRamCost,getWeakenTime:n.ScriptGetHackTimeRamCost,getScriptIncome:n.ScriptGetScriptRamCost,getScriptExpGain:n.ScriptGetScriptRamCost,getRunningScript:n.ScriptGetRunningScriptRamCost,nFormat:0,getTimeSinceLastAug:n.ScriptGetHackTimeRamCost,prompt:0,wget:0,getFavorToDonate:n.ScriptGetFavorToDonate,getPlayer:n.ScriptSingularityFn1RamCost/4,mv:0,getOwnedSourceFiles:n.ScriptGetOwnedSourceFiles,universityCourse:r(n.ScriptSingularityFn1RamCost),gymWorkout:r(n.ScriptSingularityFn1RamCost),travelToCity:r(n.ScriptSingularityFn1RamCost),goToLocation:r(n.ScriptSingularityFn1RamCost),purchaseTor:r(n.ScriptSingularityFn1RamCost),purchaseProgram:r(n.ScriptSingularityFn1RamCost),getCurrentServer:r(n.ScriptSingularityFn1RamCost),connect:r(n.ScriptSingularityFn1RamCost),manualHack:r(n.ScriptSingularityFn1RamCost),installBackdoor:r(n.ScriptSingularityFn1RamCost),getStats:r(n.ScriptSingularityFn1RamCost/4),getCharacterInformation:r(n.ScriptSingularityFn1RamCost/4),hospitalize:r(n.ScriptSingularityFn1RamCost/4),isBusy:r(n.ScriptSingularityFn1RamCost/4),stopAction:r(n.ScriptSingularityFn1RamCost/2),upgradeHomeRam:r(n.ScriptSingularityFn2RamCost),upgradeHomeCores:r(n.ScriptSingularityFn2RamCost),getUpgradeHomeRamCost:r(n.ScriptSingularityFn2RamCost/2),getUpgradeHomeCoresCost:r(n.ScriptSingularityFn2RamCost/2),workForCompany:r(n.ScriptSingularityFn2RamCost),applyToCompany:r(n.ScriptSingularityFn2RamCost),getCompanyRep:r(n.ScriptSingularityFn2RamCost/3),getCompanyFavor:r(n.ScriptSingularityFn2RamCost/3),getCompanyFavorGain:r(n.ScriptSingularityFn2RamCost/4),checkFactionInvitations:r(n.ScriptSingularityFn2RamCost),joinFaction:r(n.ScriptSingularityFn2RamCost),workForFaction:r(n.ScriptSingularityFn2RamCost),getFactionRep:r(n.ScriptSingularityFn2RamCost/3),getFactionFavor:r(n.ScriptSingularityFn2RamCost/3),getFactionFavorGain:r(n.ScriptSingularityFn2RamCost/4),donateToFaction:r(n.ScriptSingularityFn3RamCost),createProgram:r(n.ScriptSingularityFn3RamCost),commitCrime:r(n.ScriptSingularityFn3RamCost),getCrimeChance:r(n.ScriptSingularityFn3RamCost),getCrimeStats:r(n.ScriptSingularityFn3RamCost),getOwnedAugmentations:r(n.ScriptSingularityFn3RamCost),getAugmentationsFromFaction:r(n.ScriptSingularityFn3RamCost),getAugmentationCost:r(n.ScriptSingularityFn3RamCost),getAugmentationPrereq:r(n.ScriptSingularityFn3RamCost),getAugmentationPrice:r(n.ScriptSingularityFn3RamCost/2),getAugmentationRepReq:r(n.ScriptSingularityFn3RamCost/2),getAugmentationStats:r(n.ScriptSingularityFn3RamCost),purchaseAugmentation:r(n.ScriptSingularityFn3RamCost),softReset:r(n.ScriptSingularityFn3RamCost),installAugmentations:r(n.ScriptSingularityFn3RamCost),isFocused:r(.1),setFocus:r(.1),gang:{createGang:n.ScriptGangApiBaseRamCost/4,inGang:n.ScriptGangApiBaseRamCost/4,getMemberNames:n.ScriptGangApiBaseRamCost/4,getGangInformation:n.ScriptGangApiBaseRamCost/2,getOtherGangInformation:n.ScriptGangApiBaseRamCost/2,getMemberInformation:n.ScriptGangApiBaseRamCost/2,canRecruitMember:n.ScriptGangApiBaseRamCost/4,recruitMember:n.ScriptGangApiBaseRamCost/2,getTaskNames:n.ScriptGangApiBaseRamCost/4,getTaskStats:n.ScriptGangApiBaseRamCost/4,setMemberTask:n.ScriptGangApiBaseRamCost/2,getEquipmentNames:n.ScriptGangApiBaseRamCost/4,getEquipmentCost:n.ScriptGangApiBaseRamCost/2,getEquipmentType:n.ScriptGangApiBaseRamCost/2,getEquipmentStats:n.ScriptGangApiBaseRamCost/2,purchaseEquipment:n.ScriptGangApiBaseRamCost,ascendMember:n.ScriptGangApiBaseRamCost,getAscensionResult:n.ScriptGangApiBaseRamCost/2,setTerritoryWarfare:n.ScriptGangApiBaseRamCost/2,getChanceToWinClash:n.ScriptGangApiBaseRamCost,getBonusTime:0},bladeburner:{getContractNames:n.ScriptBladeburnerApiBaseRamCost/10,getOperationNames:n.ScriptBladeburnerApiBaseRamCost/10,getBlackOpNames:n.ScriptBladeburnerApiBaseRamCost/10,getBlackOpRank:n.ScriptBladeburnerApiBaseRamCost/2,getGeneralActionNames:n.ScriptBladeburnerApiBaseRamCost/10,getSkillNames:n.ScriptBladeburnerApiBaseRamCost/10,startAction:n.ScriptBladeburnerApiBaseRamCost,stopBladeburnerAction:n.ScriptBladeburnerApiBaseRamCost/2,getCurrentAction:n.ScriptBladeburnerApiBaseRamCost/4,getActionTime:n.ScriptBladeburnerApiBaseRamCost,getActionEstimatedSuccessChance:n.ScriptBladeburnerApiBaseRamCost,getActionRepGain:n.ScriptBladeburnerApiBaseRamCost,getActionCountRemaining:n.ScriptBladeburnerApiBaseRamCost,getActionMaxLevel:n.ScriptBladeburnerApiBaseRamCost,getActionCurrentLevel:n.ScriptBladeburnerApiBaseRamCost,getActionAutolevel:n.ScriptBladeburnerApiBaseRamCost,setActionAutolevel:n.ScriptBladeburnerApiBaseRamCost,setActionLevel:n.ScriptBladeburnerApiBaseRamCost,getRank:n.ScriptBladeburnerApiBaseRamCost,getSkillPoints:n.ScriptBladeburnerApiBaseRamCost,getSkillLevel:n.ScriptBladeburnerApiBaseRamCost,getSkillUpgradeCost:n.ScriptBladeburnerApiBaseRamCost,upgradeSkill:n.ScriptBladeburnerApiBaseRamCost,getTeamSize:n.ScriptBladeburnerApiBaseRamCost,setTeamSize:n.ScriptBladeburnerApiBaseRamCost,getCityEstimatedPopulation:n.ScriptBladeburnerApiBaseRamCost,getCityCommunities:n.ScriptBladeburnerApiBaseRamCost,getCityChaos:n.ScriptBladeburnerApiBaseRamCost,getCity:n.ScriptBladeburnerApiBaseRamCost,switchCity:n.ScriptBladeburnerApiBaseRamCost,getStamina:n.ScriptBladeburnerApiBaseRamCost,joinBladeburnerFaction:n.ScriptBladeburnerApiBaseRamCost,joinBladeburnerDivision:n.ScriptBladeburnerApiBaseRamCost,getBonusTime:0},codingcontract:{attempt:n.ScriptCodingContractBaseRamCost,getContractType:n.ScriptCodingContractBaseRamCost/2,getData:n.ScriptCodingContractBaseRamCost/2,getDescription:n.ScriptCodingContractBaseRamCost/2,getNumTriesRemaining:n.ScriptCodingContractBaseRamCost/5},sleeve:{getNumSleeves:n.ScriptSleeveBaseRamCost,setToShockRecovery:n.ScriptSleeveBaseRamCost,setToSynchronize:n.ScriptSleeveBaseRamCost,setToCommitCrime:n.ScriptSleeveBaseRamCost,setToUniversityCourse:n.ScriptSleeveBaseRamCost,travel:n.ScriptSleeveBaseRamCost,setToCompanyWork:n.ScriptSleeveBaseRamCost,setToFactionWork:n.ScriptSleeveBaseRamCost,setToGymWorkout:n.ScriptSleeveBaseRamCost,getSleeveStats:n.ScriptSleeveBaseRamCost,getTask:n.ScriptSleeveBaseRamCost,getInformation:n.ScriptSleeveBaseRamCost,getSleeveAugmentations:n.ScriptSleeveBaseRamCost,getSleevePurchasableAugs:n.ScriptSleeveBaseRamCost,purchaseSleeveAug:n.ScriptSleeveBaseRamCost},stanek:{charge:n.ScriptStanekCharge,fragmentDefinitions:n.ScriptStanekFragmentDefinitions,activeFragments:n.ScriptStanekPlacedFragments,clear:n.ScriptStanekClear,canPlace:n.ScriptStanekCanPlace,place:n.ScriptStanekPlace,get:n.ScriptStanekFragmentAt,remove:n.ScriptStanekDeleteAt},ui:{getTheme:0,setTheme:0,resetTheme:0,getStyles:0,setStyles:0,resetStyles:0,getGameInfo:0},heart:{break:0}};function i(e,...t){if(0===t.length)return console.warn("No arguments passed to getRamCost()"),0;let a=o[t[0]];for(let e=1;eObject(i.a)({unbuyable:{color:e.palette.action.disabled},money:{color:e.colors.money}}));function l(e){const t=s();if(void 0!==e.player){if("number"!=typeof e.money)throw new Error("if player if provided, money should be number, contact dev");if(!e.player.canAfford(e.money))return n.createElement("span",{className:t.unbuyable},r.a.formatMoney(e.money))}return n.createElement("span",{className:t.money},"number"==typeof e.money?r.a.formatMoney(e.money):e.money)}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={}},function(e,t,a){"use strict";a.d(t,"c",(function(){return r})),a.d(t,"b",(function(){return o})),a.d(t,"a",(function(){return i}));var n=a(355);function r(e,t){if(null==t)return null;if("object"==typeof t&&"string"==typeof t.ctor&&void 0!==t.data){if("AllServersMap"===t.ctor)return console.warn("Converting AllServersMap for v0.43.1"),t.data;const e=r.constructors[t.ctor];if("function"==typeof e&&"function"==typeof e.fromJSON){const a=e.fromJSON(t);return void 0!==e.validationData&&Object(n.b)(a,e.validationData),a}}return t}function o(e,t,a){a||(a=Object.keys(t));const n={};for(let e=0;e{let t=""+e%1e3;for(;t.length<3;)t="0"+t;return t})();let u="";return n>0&&(u+=n+" days "),o>0&&(u+=o+" hours "),s>0&&(u+=s+" minutes "),u+=(t?`${l}.${c}`:""+l)+" seconds",u}function o(e){if(!i(e))return"";if(0===e.length)return"";const t=e.concat().sort(),a=t[0],n=t[t.length-1],r=a.length;let o=0;for(;o{switch(typeof e){case"number":return e;case"object":return Object(i.a)(e.min,e.max);default:throw Error(`Do not know how to convert the type '${typeof e}' to a number`)}};for(const e of r.a){const r={hostname:e.hostname,ip:g(),numOpenPortsRequired:e.numOpenPortsRequired,organizationName:e.organizationName};void 0!==e.maxRamExponent&&(r.maxRam=Math.pow(2,o(e.maxRamExponent)));for(const t of a)void 0!==e[t]&&(r[t]=o(e[t]));const i=new n.a(r);for(const t of e.literature||[])i.messages.push(t);i.hostname===c.a.WorldDaemon&&(i.requiredHackingSkill*=u.a.WorldDaemonDifficulty),y(i),void 0!==e.networkLayer&&t[o(e.networkLayer)-1].push(i)}const s=(e,t)=>{for(const r of e)a=r,n=t(),a.serversOnNetwork.push(n.hostname),n.serversOnNetwork.push(a.hostname);var a,n};s(t[0],()=>e);for(let e=1;e{return(a=t[e-1])[Math.floor(Math.random()*a.length)];var a})}function E(){for(const e of Object.keys(m))delete m[e];m={}}function k(e){m=JSON.parse(e,s.c)}function v(e=!1){const t=JSON.parse(JSON.stringify(m),s.c);for(const a of Object.keys(t)){const n=t[a];if(e)n.runningScripts=[];else for(let e=0;eObject(n.useContext)(o.Player),Router:()=>Object(n.useContext)(o.Router)}},function(e,t,a){"use strict";a.d(t,"j",(function(){return n})),a.d(t,"d",(function(){return r})),a.d(t,"i",(function(){return o})),a.d(t,"f",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"h",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"e",(function(){return u})),a.d(t,"k",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"g",(function(){return d}));const n=["Software Engineering Intern","Junior Software Engineer","Senior Software Engineer","Lead Software Developer","Head of Software","Head of Engineering","Vice President of Technology","Chief Technology Officer"],r=["IT Intern","IT Analyst","IT Manager","Systems Administrator"],o=["Security Engineer"],i=["Network Engineer","Network Administrator"],s=["Business Intern","Business Analyst","Business Manager","Operations Manager","Chief Financial Officer","Chief Executive Officer"],l=["Police Officer","Police Chief","Security Guard","Security Officer","Security Supervisor","Head of Security"],c=["Field Agent","Secret Agent","Special Operative"],u=["Waiter","Employee"],m=["Software Consultant","Senior Software Consultant"],h=["Business Consultant","Senior Business Consultant"],d=["Part-time Waiter","Part-time Employee"]},,function(e,t,a){"use strict";function n(e,t){const a=Math.min(e,t),n=Math.max(e,t);return Math.floor(Math.random()*(n-a+1))+a}a.d(t,"a",(function(){return n}))},,function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));const n=["START","PURCHASE","PRODUCTION","SALE","EXPORT"],r={INITIALSHARES:1e9,SHARESPERPRICEUPDATE:1e6,IssueNewSharesCooldown:216e3,SellSharesCooldown:18e3,CyclesPerMarketCycle:50,CyclesPerIndustryStateCycle:50/n.length,SecsPerMarketCycle:10,Cities:["Aevum","Chongqing","Sector-12","New Tokyo","Ishima","Volhaven"],WarehouseInitialCost:5e9,WarehouseInitialSize:100,WarehouseUpgradeBaseCost:1e9,OfficeInitialCost:4e9,OfficeInitialSize:3,OfficeUpgradeBaseCost:1e9,BribeThreshold:1e14,BribeToRepRatio:1e9,ProductProductionCostRatio:5,DividendMaxPercentage:1,EmployeeSalaryMultiplier:3,CyclesPerEmployeeRaise:400,EmployeeRaiseAmount:50,BaseMaxProducts:3,AllCorporationStates:n,AllMaterials:["Water","Energy","Food","Plants","Metal","Hardware","Chemicals","Drugs","Robots","AI Cores","Real Estate"],FundingRoundShares:[.1,.35,.25,.2],FundingRoundMultiplier:[4,3,3,2.5]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n})),a.d(t,"c",(function(){return r})),a.d(t,"b",(function(){return o}));const n={MoneyGainPerLevel:1.5,BaseCost:1e3,LevelBaseCost:1,RamBaseCost:3e4,CoreBaseCost:5e5,PurchaseNextMult:1.85,UpgradeLevelMult:1.04,UpgradeRamMult:1.28,UpgradeCoreMult:1.48,MaxLevel:200,MaxRam:64,MaxCores:16},r={x1:1,x5:5,x10:10,MAX:"MAX"},o={HashesPerLevel:.001,BaseCost:5e4,RamBaseCost:2e5,CoreBaseCost:1e6,CacheBaseCost:1e7,PurchaseMult:3.2,UpgradeLevelMult:1.1,UpgradeRamMult:1.4,UpgradeCoreMult:1.55,UpgradeCacheMult:1.85,MaxServers:20,MaxLevel:300,MaxRam:8192,MaxCores:128,MaxCache:15}},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a(5),o=a(27),i=a(4),s=a(16),l=a(22);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e={info:"",moneyCost:0,name:"",repCost:0}){c(this,"baseCost",0),c(this,"baseRepRequirement",0),c(this,"isSpecial",!1),c(this,"level",0),c(this,"name",""),c(this,"owned",!1),c(this,"prereqs",[]),c(this,"mults",{}),c(this,"startingCost",0),this.name=e.name,this.info=e.info,this.prereqs=e.prereqs?e.prereqs:[],this.baseRepRequirement=e.repCost*r.a.AugmentationRepCost,this.baseCost=e.moneyCost*r.a.AugmentationMoneyCost,this.startingCost=this.baseCost,e.isSpecial&&(this.isSpecial=!0),this.level=0,e.hacking_mult&&(this.mults.hacking_mult=e.hacking_mult),e.strength_mult&&(this.mults.strength_mult=e.strength_mult),e.defense_mult&&(this.mults.defense_mult=e.defense_mult),e.dexterity_mult&&(this.mults.dexterity_mult=e.dexterity_mult),e.agility_mult&&(this.mults.agility_mult=e.agility_mult),e.charisma_mult&&(this.mults.charisma_mult=e.charisma_mult),e.hacking_exp_mult&&(this.mults.hacking_exp_mult=e.hacking_exp_mult),e.strength_exp_mult&&(this.mults.strength_exp_mult=e.strength_exp_mult),e.defense_exp_mult&&(this.mults.defense_exp_mult=e.defense_exp_mult),e.dexterity_exp_mult&&(this.mults.dexterity_exp_mult=e.dexterity_exp_mult),e.agility_exp_mult&&(this.mults.agility_exp_mult=e.agility_exp_mult),e.charisma_exp_mult&&(this.mults.charisma_exp_mult=e.charisma_exp_mult),e.hacking_chance_mult&&(this.mults.hacking_chance_mult=e.hacking_chance_mult),e.hacking_speed_mult&&(this.mults.hacking_speed_mult=e.hacking_speed_mult),e.hacking_money_mult&&(this.mults.hacking_money_mult=e.hacking_money_mult),e.hacking_grow_mult&&(this.mults.hacking_grow_mult=e.hacking_grow_mult),e.company_rep_mult&&(this.mults.company_rep_mult=e.company_rep_mult),e.faction_rep_mult&&(this.mults.faction_rep_mult=e.faction_rep_mult),e.crime_money_mult&&(this.mults.crime_money_mult=e.crime_money_mult),e.crime_success_mult&&(this.mults.crime_success_mult=e.crime_success_mult),e.work_money_mult&&(this.mults.work_money_mult=e.work_money_mult),e.hacknet_node_money_mult&&(this.mults.hacknet_node_money_mult=e.hacknet_node_money_mult),e.hacknet_node_purchase_cost_mult&&(this.mults.hacknet_node_purchase_cost_mult=e.hacknet_node_purchase_cost_mult),e.hacknet_node_ram_cost_mult&&(this.mults.hacknet_node_ram_cost_mult=e.hacknet_node_ram_cost_mult),e.hacknet_node_core_cost_mult&&(this.mults.hacknet_node_core_cost_mult=e.hacknet_node_core_cost_mult),e.hacknet_node_level_cost_mult&&(this.mults.hacknet_node_level_cost_mult=e.hacknet_node_level_cost_mult),e.bladeburner_max_stamina_mult&&(this.mults.bladeburner_max_stamina_mult=e.bladeburner_max_stamina_mult),e.bladeburner_stamina_gain_mult&&(this.mults.bladeburner_stamina_gain_mult=e.bladeburner_stamina_gain_mult),e.bladeburner_analysis_mult&&(this.mults.bladeburner_analysis_mult=e.bladeburner_analysis_mult),e.bladeburner_success_chance_mult&&(this.mults.bladeburner_success_chance_mult=e.bladeburner_success_chance_mult),void 0===e.stats?this.stats=function(e,t,a){const r=(e,t=0)=>e===1.0777-1?"7.77%":e===1.777-1?"77.7%":i.a.formatPercentage(e,t);let o=n.createElement(n.Fragment,null,"Effects:");return e.hacking_mult&&e.hacking_mult==e.strength_mult&&e.hacking_mult==e.defense_mult&&e.hacking_mult==e.dexterity_mult&&e.hacking_mult==e.agility_mult&&e.hacking_mult==e.charisma_mult?o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_mult-1)," all skills"):(e.hacking_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_mult-1)," hacking skill")),e.strength_mult&&e.strength_mult==e.defense_mult&&e.strength_mult==e.dexterity_mult&&e.strength_mult==e.agility_mult?o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.strength_mult-1)," combat skills"):(e.strength_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.strength_mult-1)," strength skill")),e.defense_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.defense_mult-1)," defense skill")),e.dexterity_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.dexterity_mult-1)," dexterity skill")),e.agility_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.agility_mult-1)," agility skill"))),e.charisma_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.charisma_mult-1)," Charisma skill"))),e.hacking_exp_mult&&e.hacking_exp_mult===e.strength_exp_mult&&e.hacking_exp_mult===e.defense_exp_mult&&e.hacking_exp_mult===e.dexterity_exp_mult&&e.hacking_exp_mult===e.agility_exp_mult&&e.hacking_exp_mult===e.charisma_exp_mult?o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_exp_mult-1)," exp for all skills"):(e.hacking_exp_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_exp_mult-1)," hacking exp")),e.strength_exp_mult&&e.strength_exp_mult===e.defense_exp_mult&&e.strength_exp_mult===e.dexterity_exp_mult&&e.strength_exp_mult===e.agility_exp_mult?o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.strength_exp_mult-1)," combat exp"):(e.strength_exp_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.strength_exp_mult-1)," strength exp")),e.defense_exp_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.defense_exp_mult-1)," defense exp")),e.dexterity_exp_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.dexterity_exp_mult-1)," dexterity exp")),e.agility_exp_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.agility_exp_mult-1)," agility exp"))),e.charisma_exp_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.charisma_exp_mult-1)," charisma exp"))),e.hacking_speed_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_speed_mult-1)," faster hack(), grow(), and weaken()")),e.hacking_chance_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_chance_mult-1)," hack() success chance")),e.hacking_money_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_money_mult-1)," hack() power")),e.hacking_grow_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacking_grow_mult-1)," grow() power")),e.faction_rep_mult&&e.faction_rep_mult===e.company_rep_mult?o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.faction_rep_mult-1)," reputation from factions and companies"):(e.faction_rep_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.faction_rep_mult-1)," reputation from factions")),e.company_rep_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.company_rep_mult-1)," reputation from companies"))),e.crime_money_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.crime_money_mult-1)," crime money")),e.crime_success_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.crime_success_mult-1)," crime success rate")),e.work_money_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.work_money_mult-1)," work money")),e.hacknet_node_money_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.hacknet_node_money_mult-1)," hacknet production")),e.hacknet_node_purchase_cost_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"-",r(-(e.hacknet_node_purchase_cost_mult-1))," hacknet nodes cost")),e.hacknet_node_level_cost_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"-",r(-(e.hacknet_node_level_cost_mult-1))," hacknet nodes upgrade cost")),e.bladeburner_max_stamina_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.bladeburner_max_stamina_mult-1)," Bladeburner Max Stamina")),e.bladeburner_stamina_gain_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.bladeburner_stamina_gain_mult-1)," Bladeburner Stamina gain")),e.bladeburner_analysis_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.bladeburner_analysis_mult-1)," Bladeburner Field Analysis effectiveness")),e.bladeburner_success_chance_mult&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"+",r(e.bladeburner_success_chance_mult-1)," Bladeburner Contracts and Operations success chance")),a&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"Start with ",n.createElement(s.a,{money:a})," after installing Augmentations.")),t&&(o=n.createElement(n.Fragment,null,o,n.createElement("br",null),"Start with ",t.join(" and ")," after installing Augmentations.")),o}(this.mults,e.programs,e.startingMoney):this.stats=e.stats}addToFactions(e){for(let t=0;tObject(i.a)({modal:{display:"flex",alignItems:"center",justifyContent:"center"},paper:{backgroundColor:e.palette.background.default,border:"2px solid "+e.palette.primary.main,boxShadow:`0px 3px 5px -1px ${e.palette.primary.dark},0px 5px 8px 0px ${e.palette.primary.dark},0px 1px 14px 0px ${e.palette.primary.dark}`,padding:2,maxWidth:"80%",maxHeight:"80%",overflow:"auto","&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none"}})),m=e=>{const t=u();return r.a.createElement(s.a,{disableRestoreFocus:!0,disableScrollLock:!0,disableEnforceFocus:!0,disableAutoFocus:!0,open:e.open,onClose:e.onClose,closeAfterTransition:!0,className:t.modal},r.a.createElement(l.a,{in:e.open},r.a.createElement("div",{className:t.paper},r.a.createElement(c.a,{sx:{m:2}},e.children))))}},function(e,t,a){"use strict";a.d(t,"f",(function(){return n})),a.d(t,"b",(function(){return m})),a.d(t,"e",(function(){return l})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return s})),a.d(t,"d",(function(){return u}));var n,r=a(2),o=a(60),i=a(351);!function(e){e[e.Start=0]="Start",e[e.GoToCharacterPage=1]="GoToCharacterPage",e[e.CharacterPage=2]="CharacterPage",e[e.CharacterGoToTerminalPage=3]="CharacterGoToTerminalPage",e[e.TerminalIntro=4]="TerminalIntro",e[e.TerminalHelp=5]="TerminalHelp",e[e.TerminalLs=6]="TerminalLs",e[e.TerminalScan=7]="TerminalScan",e[e.TerminalScanAnalyze1=8]="TerminalScanAnalyze1",e[e.TerminalScanAnalyze2=9]="TerminalScanAnalyze2",e[e.TerminalConnect=10]="TerminalConnect",e[e.TerminalAnalyze=11]="TerminalAnalyze",e[e.TerminalNuke=12]="TerminalNuke",e[e.TerminalManualHack=13]="TerminalManualHack",e[e.TerminalHackingMechanics=14]="TerminalHackingMechanics",e[e.TerminalGoHome=15]="TerminalGoHome",e[e.TerminalCreateScript=16]="TerminalCreateScript",e[e.TerminalTypeScript=17]="TerminalTypeScript",e[e.TerminalFree=18]="TerminalFree",e[e.TerminalRunScript=19]="TerminalRunScript",e[e.TerminalGoToActiveScriptsPage=20]="TerminalGoToActiveScriptsPage",e[e.ActiveScriptsPage=21]="ActiveScriptsPage",e[e.ActiveScriptsToTerminal=22]="ActiveScriptsToTerminal",e[e.TerminalTailScript=23]="TerminalTailScript",e[e.GoToHacknetNodesPage=24]="GoToHacknetNodesPage",e[e.HacknetNodesIntroduction=25]="HacknetNodesIntroduction",e[e.HacknetNodesGoToWorldPage=26]="HacknetNodesGoToWorldPage",e[e.WorldDescription=27]="WorldDescription",e[e.TutorialPageInfo=28]="TutorialPageInfo",e[e.End=29]="End"}(n||(n={}));const s={currStep:n.Start,isRunning:!1,stepIsDone:{[n.Start]:!1,[n.GoToCharacterPage]:!1,[n.CharacterPage]:!1,[n.CharacterGoToTerminalPage]:!1,[n.TerminalIntro]:!1,[n.TerminalHelp]:!1,[n.TerminalLs]:!1,[n.TerminalScan]:!1,[n.TerminalScanAnalyze1]:!1,[n.TerminalScanAnalyze2]:!1,[n.TerminalConnect]:!1,[n.TerminalAnalyze]:!1,[n.TerminalNuke]:!1,[n.TerminalManualHack]:!1,[n.TerminalHackingMechanics]:!1,[n.TerminalGoHome]:!1,[n.TerminalCreateScript]:!1,[n.TerminalTypeScript]:!1,[n.TerminalFree]:!1,[n.TerminalRunScript]:!1,[n.TerminalGoToActiveScriptsPage]:!1,[n.ActiveScriptsPage]:!1,[n.ActiveScriptsToTerminal]:!1,[n.TerminalTailScript]:!1,[n.GoToHacknetNodesPage]:!1,[n.HacknetNodesIntroduction]:!1,[n.HacknetNodesGoToWorldPage]:!1,[n.WorldDescription]:!1,[n.TutorialPageInfo]:!1,[n.End]:!1}};function l(){s.isRunning=!0,s.currStep=n.Start}function c(){s.stepIsDone[s.currStep]=!0,s.currStepn.Start&&(s.currStep-=1),i.a.emit()}function m(){s.isRunning=!1,s.currStep=n.Start,r.a.getHomeComputer().messages.push(o.a.HackersStartingHandbook),i.a.emit()}},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return m}));var n=a(0),r=a.n(n),o=a(47),i=a(238),s=a(111);function l(){return(l=Object.assign||function(e){for(var t=1;tr.a.createElement(o.a,l({},e,{classes:{root:c().root,...e.classes}})),m=e=>r.a.createElement(i.a,l({},e,{classes:{root:c().small,...e.classes}}))},function(e,t,a){"use strict";a.d(t,"eb",(function(){return Z})),a.d(t,"hb",(function(){return ee})),a.d(t,"ib",(function(){return te})),a.d(t,"qb",(function(){return ae})),a.d(t,"o",(function(){return ne})),a.d(t,"p",(function(){return re})),a.d(t,"Ob",(function(){return oe})),a.d(t,"tb",(function(){return ie})),a.d(t,"cb",(function(){return se})),a.d(t,"wb",(function(){return le})),a.d(t,"K",(function(){return ce})),a.d(t,"gb",(function(){return ue})),a.d(t,"s",(function(){return me})),a.d(t,"rb",(function(){return he})),a.d(t,"I",(function(){return de})),a.d(t,"L",(function(){return pe})),a.d(t,"G",(function(){return fe})),a.d(t,"H",(function(){return ge})),a.d(t,"D",(function(){return ye})),a.d(t,"E",(function(){return be})),a.d(t,"J",(function(){return Ee})),a.d(t,"lb",(function(){return ke})),a.d(t,"ub",(function(){return ve})),a.d(t,"kb",(function(){return _e})),a.d(t,"Ib",(function(){return we})),a.d(t,"jb",(function(){return Se})),a.d(t,"t",(function(){return Ce})),a.d(t,"Pb",(function(){return xe})),a.d(t,"B",(function(){return Oe})),a.d(t,"Jb",(function(){return Me})),a.d(t,"Rb",(function(){return Te})),a.d(t,"C",(function(){return Re})),a.d(t,"Hb",(function(){return Ae})),a.d(t,"Kb",(function(){return Ne})),a.d(t,"Gb",(function(){return Pe})),a.d(t,"Eb",(function(){return Ie})),a.d(t,"Db",(function(){return Fe})),a.d(t,"Fb",(function(){return De})),a.d(t,"Qb",(function(){return je})),a.d(t,"A",(function(){return Be})),a.d(t,"V",(function(){return Ge})),a.d(t,"U",(function(){return Le})),a.d(t,"X",(function(){return We})),a.d(t,"S",(function(){return He})),a.d(t,"T",(function(){return Ue})),a.d(t,"Q",(function(){return qe})),a.d(t,"R",(function(){return Ke})),a.d(t,"W",(function(){return $e})),a.d(t,"Bb",(function(){return ze})),a.d(t,"w",(function(){return Ve})),a.d(t,"y",(function(){return Ye})),a.d(t,"Ab",(function(){return Je})),a.d(t,"Lb",(function(){return Xe})),a.d(t,"x",(function(){return Qe})),a.d(t,"Cb",(function(){return Ze})),a.d(t,"v",(function(){return et})),a.d(t,"z",(function(){return tt})),a.d(t,"yb",(function(){return at})),a.d(t,"Mb",(function(){return nt})),a.d(t,"sb",(function(){return rt})),a.d(t,"db",(function(){return ot})),a.d(t,"f",(function(){return it})),a.d(t,"P",(function(){return st})),a.d(t,"nb",(function(){return lt})),a.d(t,"bb",(function(){return ct})),a.d(t,"m",(function(){return ut})),a.d(t,"l",(function(){return mt})),a.d(t,"e",(function(){return ht})),a.d(t,"j",(function(){return dt})),a.d(t,"g",(function(){return pt})),a.d(t,"c",(function(){return ft})),a.d(t,"b",(function(){return gt})),a.d(t,"k",(function(){return yt})),a.d(t,"a",(function(){return bt})),a.d(t,"d",(function(){return Et})),a.d(t,"h",(function(){return kt})),a.d(t,"n",(function(){return vt})),a.d(t,"i",(function(){return _t})),a.d(t,"fb",(function(){return wt})),a.d(t,"ob",(function(){return St})),a.d(t,"pb",(function(){return Ct})),a.d(t,"u",(function(){return xt})),a.d(t,"vb",(function(){return Ot})),a.d(t,"mb",(function(){return Mt})),a.d(t,"F",(function(){return Tt})),a.d(t,"Nb",(function(){return Rt})),a.d(t,"ab",(function(){return At})),a.d(t,"r",(function(){return Nt})),a.d(t,"Z",(function(){return Pt})),a.d(t,"Y",(function(){return It})),a.d(t,"N",(function(){return Ft})),a.d(t,"M",(function(){return Dt})),a.d(t,"O",(function(){return jt})),a.d(t,"xb",(function(){return Bt})),a.d(t,"q",(function(){return Gt})),a.d(t,"zb",(function(){return Lt}));var n=a(21),r=a(144),o=a(295),i=a(7),s=a(5),l=a(103),c=a(226),u=a(62),m=a(614),h=a(480),d=a(90),p=a(30),f=a(8),g=a(61),y=a(352),b=a(81),E=a(192),k=a(27),v=a(68),_=a(141),w=a(241),S=a(24),C=a(9),x=a(309),O=a(163),M=a(266),T=a(234),R=a(25),A=a(44),N=a(123),P=a(97),I=a(1189),F=a(1190),D=a(339),j=a(78),B=a(476),G=a(373),L=a(87),W=a(4),H=a(356),U=a(15),q=a(23),K=a(106),$=a(16),z=a(0),V=a.n(z),Y=a(337),J=a(179),X=a(687),Q=a(323);function Z(){const e=Object(N.f)({adminRights:!0,hostname:"home",ip:Object(R.e)(),isConnectedTo:!0,maxRam:8,organizationName:"Home PC",purchasedByPlayer:!0});this.currentServer=P.a.Home,Object(R.a)(e),this.getHomeComputer().programs.push(g.a.NukeProgram.name)}function ee(){this.currentServer=P.a.Home,this.numPeopleKilled=0,this.hacking=1,this.strength=1,this.defense=1,this.dexterity=1,this.agility=1,this.charisma=1,this.hacking_exp=0,this.strength_exp=0,this.defense_exp=0,this.dexterity_exp=0,this.agility_exp=0,this.charisma_exp=0,this.money=1e3,this.city=S.a.Sector12,this.location=C.a.TravelAgency,this.companyName="",this.jobs={},this.purchasedServers=[],this.factions=[],this.factionInvitations=[],this.queuedAugmentations=[],this.resleeves=[];const e=Math.min(3,j.a[10]+(10===this.bitNodeN?1:0))+this.sleevesFromCovenant;this.sleeves.length>e&&(this.sleeves.length=e);for(let t=this.sleeves.length;t=100?this.sleeves[e].synchronize(this):this.sleeves[e].shockRecovery(this));this.isWorking=!1,this.currentWorkFactionName="",this.currentWorkFactionDescription="",this.createProgramName="",this.className="",this.crimeType="",this.workHackExpGainRate=0,this.workStrExpGainRate=0,this.workDefExpGainRate=0,this.workDexExpGainRate=0,this.workAgiExpGainRate=0,this.workChaExpGainRate=0,this.workRepGainRate=0,this.workMoneyGainRate=0,this.workHackExpGained=0,this.workStrExpGained=0,this.workDefExpGained=0,this.workDexExpGained=0,this.workAgiExpGained=0,this.workChaExpGained=0,this.workRepGained=0,this.workMoneyGained=0,this.timeWorked=0,this.lastUpdate=(new Date).getTime(),this.playtimeSinceLastAug=0,this.scriptProdSinceLastAug=0,this.moneySourceA.reset(),this.hacknetNodes.length=0,this.hashManager.prestige(),this.reapplyAllAugmentations(!0),this.hp=this.max_hp}function te(){this.prestigeAugmentation(),this.karma=0;for(let e=0;e0?this.intelligence=Math.floor(this.calculateSkill(this.intelligence_exp)):this.intelligence=0;const e=this.hp/this.max_hp;this.max_hp=Math.floor(10+this.defense/10),this.hp=Math.round(this.max_hp*e)}function ie(){this.hacking_chance_mult=1,this.hacking_speed_mult=1,this.hacking_money_mult=1,this.hacking_grow_mult=1,this.hacking_mult=1,this.strength_mult=1,this.defense_mult=1,this.dexterity_mult=1,this.agility_mult=1,this.charisma_mult=1,this.hacking_exp_mult=1,this.strength_exp_mult=1,this.defense_exp_mult=1,this.dexterity_exp_mult=1,this.agility_exp_mult=1,this.charisma_exp_mult=1,this.company_rep_mult=1,this.faction_rep_mult=1,this.crime_money_mult=1,this.crime_success_mult=1,this.hacknet_node_money_mult=1,this.hacknet_node_purchase_cost_mult=1,this.hacknet_node_ram_cost_mult=1,this.hacknet_node_core_cost_mult=1,this.hacknet_node_level_cost_mult=1,this.work_money_mult=1,this.bladeburner_max_stamina_mult=1,this.bladeburner_stamina_gain_mult=1,this.bladeburner_analysis_mult=1,this.bladeburner_success_chance_mult=1}function se(e){const t=this.getHomeComputer();if(null==t)return!1;for(let a=0;a=e}function he(e,t){this.moneySourceA instanceof H.a||(console.warn("Player.moneySourceA was not properly initialized. Resetting"),this.moneySourceA=new H.a),this.moneySourceB instanceof H.a||(console.warn("Player.moneySourceB was not properly initialized. Resetting"),this.moneySourceB=new H.a),this.moneySourceA.record(e,t),this.moneySourceB.record(e,t)}function de(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainHackingExp()"):(this.hacking_exp+=e,this.hacking_exp<0&&(this.hacking_exp=0),this.hacking=Object(O.b)(this.hacking_exp,this.hacking_mult*s.a.HackingLevelMultiplier))}function pe(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainStrengthExp()"):(this.strength_exp+=e,this.strength_exp<0&&(this.strength_exp=0),this.strength=Object(O.b)(this.strength_exp,this.strength_mult*s.a.StrengthLevelMultiplier))}function fe(e){if(isNaN(e))return void console.error("ERR: NaN passed into player.gainDefenseExp()");this.defense_exp+=e,this.defense_exp<0&&(this.defense_exp=0),this.defense=Object(O.b)(this.defense_exp,this.defense_mult*s.a.DefenseLevelMultiplier);const t=this.hp/this.max_hp;this.max_hp=Math.floor(10+this.defense/10),this.hp=Math.round(this.max_hp*t)}function ge(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainDexterityExp()"):(this.dexterity_exp+=e,this.dexterity_exp<0&&(this.dexterity_exp=0),this.dexterity=Object(O.b)(this.dexterity_exp,this.dexterity_mult*s.a.DexterityLevelMultiplier))}function ye(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainAgilityExp()"):(this.agility_exp+=e,this.agility_exp<0&&(this.agility_exp=0),this.agility=Object(O.b)(this.agility_exp,this.agility_mult*s.a.AgilityLevelMultiplier))}function be(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainCharismaExp()"):(this.charisma_exp+=e,this.charisma_exp<0&&(this.charisma_exp=0),this.charisma=Object(O.b)(this.charisma_exp,this.charisma_mult*s.a.CharismaLevelMultiplier))}function Ee(e){isNaN(e)?console.error("ERROR: NaN passed into Player.gainIntelligenceExp()"):(j.a[5]>0||this.intelligence>0)&&(this.intelligence_exp+=e,this.intelligence=Math.floor(this.calculateSkill(this.intelligence_exp)))}function ke(e){const t=e.toLowerCase();return t.includes("hack")?this.hacking:t.includes("str")?this.strength:t.includes("def")?this.defense:t.includes("dex")?this.dexterity:t.includes("agi")?this.agility:t.includes("cha")?this.charisma:t.includes("int")?this.intelligence:0}function ve(e,t,a){this.workType!==f.a.WorkTypeFaction&&e===this.workType&&t===this.companyName||e===this.workType&&t===this.currentWorkFactionName&&a===this.factionWorkType||(this.isWorking&&this.singularityStopWork(),this.workHackExpGainRate=0,this.workStrExpGainRate=0,this.workDefExpGainRate=0,this.workDexExpGainRate=0,this.workAgiExpGainRate=0,this.workChaExpGainRate=0,this.workRepGainRate=0,this.workMoneyGainRate=0,this.workMoneyLossRate=0,this.workHackExpGained=0,this.workStrExpGained=0,this.workDefExpGained=0,this.workDexExpGained=0,this.workAgiExpGained=0,this.workChaExpGained=0,this.workRepGained=0,this.workMoneyGained=0,this.timeWorked=0,this.timeWorkedCreateProgram=0,this.currentWorkFactionName="",this.currentWorkFactionDescription="",this.createProgramName="",this.className="",this.workType="")}function _e(e=1){let t=1;this.hasAugmentation(i.a.NeuroreceptorManager)||(t=this.focus?1:f.a.BaseFocusBonus);const a=t*this.workHackExpGainRate*e,n=t*this.workStrExpGainRate*e,r=t*this.workDefExpGainRate*e,o=t*this.workDexExpGainRate*e,s=t*this.workAgiExpGainRate*e,l=t*this.workChaExpGainRate*e,c=(this.workMoneyGainRate-this.workMoneyLossRate)*e;this.gainHackingExp(a),this.gainStrengthExp(n),this.gainDefenseExp(r),this.gainDexterityExp(o),this.gainAgilityExp(s),this.gainCharismaExp(l),this.gainMoney(c,this.className?"class":"work"),this.workHackExpGained+=a,this.workStrExpGained+=n,this.workDefExpGained+=r,this.workDexExpGained+=o,this.workAgiExpGained+=s,this.workChaExpGained+=l,this.workRepGained+=t*this.workRepGainRate*e,this.workMoneyGained+=t*this.workMoneyGainRate*e,this.workMoneyGained-=t*this.workMoneyLossRate*e}function we(e){this.resetWorkStatus(f.a.WorkTypeCompany,e),this.isWorking=!0,this.companyName=e,this.workType=f.a.WorkTypeCompany,this.workHackExpGainRate=this.getWorkHackExpGain(),this.workStrExpGainRate=this.getWorkStrExpGain(),this.workDefExpGainRate=this.getWorkDefExpGain(),this.workDexExpGainRate=this.getWorkDexExpGain(),this.workAgiExpGainRate=this.getWorkAgiExpGain(),this.workChaExpGainRate=this.getWorkChaExpGain(),this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.timeNeededToCompleteWork=f.a.MillisecondsPer8Hours}function Se(e,t=1){this.isWorking&&(this.workType==f.a.WorkTypeFaction?this.workForFaction(t)&&e.toFaction():this.workType==f.a.WorkTypeCreateProgram?this.createProgramWork(t)&&e.toTerminal():this.workType==f.a.WorkTypeStudyClass?this.takeClass(t)&&e.toCity():this.workType==f.a.WorkTypeCrime?this.commitCrime(t)&&e.toLocation(w.a[C.a.Slums]):this.workType==f.a.WorkTypeCompanyPartTime?this.workPartTime(t)&&e.toCity():this.work(t)&&e.toCity())}function Ce(){const e=Y.a.find(e=>e.specialName===this.companyName);if(!e)return.5;const t=Object(R.d)(e.hostname);return t instanceof A.a&&t&&t.backdoorInstalled?.75:.5}function xe(e){let t=!1;this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer8Hours&&(t=!0,e=Math.round((f.a.MillisecondsPer8Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.processWorkEarnings(e);const a=u.a[this.companyName];return Object(B.a)(a,this.workRepGainRate,e),!!(t||this.timeWorked>=f.a.MillisecondsPer8Hours)&&(this.finishWork(!1),!0)}function Oe(e,t=!1){e&&(this.workRepGained*=this.cancelationPenalty());const a=.5===this.cancelationPenalty()?"half":"three-quarters";u.a[this.companyName].playerReputation+=this.workRepGained,this.updateSkillLevels();let n=V.a.createElement(V.a.Fragment,null,"You earned a total of: ",V.a.createElement("br",null),V.a.createElement($.a,{money:this.workMoneyGained}),V.a.createElement("br",null),V.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the company ",V.a.createElement("br",null),this.workHackExpGained>0&&V.a.createElement(V.a.Fragment,null,W.a.formatExp(this.workHackExpGained)," hacking exp ",V.a.createElement("br",null)),this.workStrExpGained>0&&V.a.createElement(V.a.Fragment,null,W.a.formatExp(this.workStrExpGained)," strength exp ",V.a.createElement("br",null)),this.workDefExpGained>0&&V.a.createElement(V.a.Fragment,null,W.a.formatExp(this.workDefExpGained)," defense exp ",V.a.createElement("br",null)),this.workDexExpGained>0&&V.a.createElement(V.a.Fragment,null,W.a.formatExp(this.workDexExpGained)," dexterity exp ",V.a.createElement("br",null)),this.workAgiExpGained>0&&V.a.createElement(V.a.Fragment,null,W.a.formatExp(this.workAgiExpGained)," agility exp ",V.a.createElement("br",null)),this.workChaExpGained>0&&V.a.createElement(V.a.Fragment,null,W.a.formatExp(this.workChaExpGained)," charisma exp ",V.a.createElement("br",null)),V.a.createElement("br",null));if(n=e?V.a.createElement(V.a.Fragment,null,"You worked a short shift of ",Object(q.b)(this.timeWorked)," ",V.a.createElement("br",null),V.a.createElement("br",null),"Since you cancelled your work early, you only gained ",a," of the reputation you earned. ",V.a.createElement("br",null),V.a.createElement("br",null),n):V.a.createElement(V.a.Fragment,null,"You worked a full shift of 8 hours! ",V.a.createElement("br",null),V.a.createElement("br",null),n),t||Object(U.a)(n),this.isWorking=!1,this.focus=!1,this.resetWorkStatus(),t){return"You worked a short shift of "+Object(q.b)(this.timeWorked)+" and earned $"+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatReputation(this.workRepGained)+" reputation, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp."}return""}function Me(e){this.resetWorkStatus(f.a.WorkTypeCompanyPartTime,e),this.isWorking=!0,this.companyName=e,this.workType=f.a.WorkTypeCompanyPartTime,this.workHackExpGainRate=this.getWorkHackExpGain(),this.workStrExpGainRate=this.getWorkStrExpGain(),this.workDefExpGainRate=this.getWorkDefExpGain(),this.workDexExpGainRate=this.getWorkDexExpGain(),this.workAgiExpGainRate=this.getWorkAgiExpGain(),this.workChaExpGainRate=this.getWorkChaExpGain(),this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.timeNeededToCompleteWork=f.a.MillisecondsPer8Hours}function Te(e){let t=!1;return this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer8Hours&&(t=!0,e=Math.round((f.a.MillisecondsPer8Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.workRepGainRate=this.getWorkRepGain(),this.processWorkEarnings(e),!!(t||this.timeWorked>=f.a.MillisecondsPer8Hours)&&(this.finishWorkPartTime(),!0)}function Re(e=!1){u.a[this.companyName].playerReputation+=this.workRepGained,this.updateSkillLevels();const t=V.a.createElement(V.a.Fragment,null,"You worked for ",Object(q.b)(this.timeWorked),V.a.createElement("br",null),V.a.createElement("br",null),"You earned a total of: ",V.a.createElement("br",null),V.a.createElement($.a,{money:this.workMoneyGained}),V.a.createElement("br",null),V.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the company ",V.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",V.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",V.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",V.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",V.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",V.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",V.a.createElement("br",null));if(e||Object(U.a)(t),this.isWorking=!1,this.resetWorkStatus(),e){return"You worked for "+Object(q.b)(this.timeWorked)+" and earned a total of $"+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatReputation(this.workRepGained)+" reputation, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp"}return""}function Ae(){this.focus=!0}function Ne(){this.focus=!1}function Pe(e){let t=1+e.favor/100;isNaN(t)&&(t=1),this.workRepGainRate*=t,this.workRepGainRate*=s.a.FactionWorkRepGain,this.isWorking=!0,this.workType=f.a.WorkTypeFaction,this.currentWorkFactionName=e.name,this.timeNeededToCompleteWork=f.a.MillisecondsPer20Hours}function Ie(e){this.resetWorkStatus(f.a.WorkTypeFaction,e.name,f.a.FactionWorkHacking),this.workHackExpGainRate=.15*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.c)(this,e),this.factionWorkType=f.a.FactionWorkHacking,this.currentWorkFactionDescription="carrying out hacking contracts",this.startFactionWork(e)}function Fe(e){this.resetWorkStatus(f.a.WorkTypeFaction,e.name,f.a.FactionWorkField),this.workHackExpGainRate=.1*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workStrExpGainRate=.1*this.strength_exp_mult*s.a.FactionWorkExpGain,this.workDefExpGainRate=.1*this.defense_exp_mult*s.a.FactionWorkExpGain,this.workDexExpGainRate=.1*this.dexterity_exp_mult*s.a.FactionWorkExpGain,this.workAgiExpGainRate=.1*this.agility_exp_mult*s.a.FactionWorkExpGain,this.workChaExpGainRate=.1*this.charisma_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.a)(this,e),this.factionWorkType=f.a.FactionWorkField,this.currentWorkFactionDescription="carrying out field missions",this.startFactionWork(e)}function De(e){this.resetWorkStatus(f.a.WorkTypeFaction,e.name,f.a.FactionWorkSecurity),this.workHackExpGainRate=.05*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workStrExpGainRate=.15*this.strength_exp_mult*s.a.FactionWorkExpGain,this.workDefExpGainRate=.15*this.defense_exp_mult*s.a.FactionWorkExpGain,this.workDexExpGainRate=.15*this.dexterity_exp_mult*s.a.FactionWorkExpGain,this.workAgiExpGainRate=.15*this.agility_exp_mult*s.a.FactionWorkExpGain,this.workChaExpGainRate=0*this.charisma_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.b)(this,e),this.factionWorkType=f.a.FactionWorkSecurity,this.currentWorkFactionDescription="performing security detail",this.startFactionWork(e)}function je(e){const t=k.a[this.currentWorkFactionName];switch(this.factionWorkType){case f.a.FactionWorkHacking:this.workRepGainRate=Object(T.c)(this,t);break;case f.a.FactionWorkField:this.workRepGainRate=Object(T.a)(this,t);break;case f.a.FactionWorkSecurity:this.workRepGainRate=Object(T.b)(this,t)}this.workRepGainRate*=s.a.FactionWorkRepGain;let a=!1;return this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer20Hours&&(a=!0,e=Math.round((f.a.MillisecondsPer20Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.processWorkEarnings(e),!!(a||this.timeWorked>=f.a.MillisecondsPer20Hours)&&(this.finishFactionWork(!1),!0)}function Be(e,t=!1){const a=k.a[this.currentWorkFactionName];if(a.playerReputation+=this.workRepGained,this.updateSkillLevels(),t||Object(U.a)(V.a.createElement(V.a.Fragment,null,"You worked for your faction ",a.name," for a total of ",Object(q.b)(this.timeWorked)," ",V.a.createElement("br",null),V.a.createElement("br",null),"You earned a total of: ",V.a.createElement("br",null),V.a.createElement($.a,{money:this.workMoneyGained}),V.a.createElement("br",null),V.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the faction ",V.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",V.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",V.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",V.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",V.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",V.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",V.a.createElement("br",null))),this.isWorking=!1,this.resetWorkStatus(),t){return"You worked for your faction "+a.name+" for a total of "+Object(q.b)(this.timeWorked)+". You earned "+W.a.formatReputation(this.workRepGained)+" rep, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, and "+W.a.formatExp(this.workChaExpGained)+" cha exp."}return""}function Ge(){let e=1;const t=u.a[this.companyName];j.a[11]>0&&(e=1+t.favor/100);const a=this.jobs[this.companyName],n=d.a[a];return null==n?(console.error(`Could not find CompanyPosition object for ${a}. Work salary will be 0`),0):n.baseSalary*t.salaryMultiplier*this.work_money_mult*s.a.CompanyWorkMoney*e}function Le(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=d.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work hack exp gain will be 0"].join(" ")),0):a.hackingExpGain*e.expMultiplier*this.hacking_exp_mult*s.a.CompanyWorkExpGain}function We(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=d.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work str exp gain will be 0"].join(" ")),0):a.strengthExpGain*e.expMultiplier*this.strength_exp_mult*s.a.CompanyWorkExpGain}function He(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=d.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work def exp gain will be 0"].join(" ")),0):a.defenseExpGain*e.expMultiplier*this.defense_exp_mult*s.a.CompanyWorkExpGain}function Ue(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=d.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work dex exp gain will be 0"].join(" ")),0):a.dexterityExpGain*e.expMultiplier*this.dexterity_exp_mult*s.a.CompanyWorkExpGain}function qe(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=d.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work agi exp gain will be 0"].join(" ")),0):a.agilityExpGain*e.expMultiplier*this.agility_exp_mult*s.a.CompanyWorkExpGain}function Ke(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=d.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work cha exp gain will be 0"].join(" ")),0):a.charismaExpGain*e.expMultiplier*this.charisma_exp_mult*s.a.CompanyWorkExpGain}function $e(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=d.a[t];if(null==e||null==a)return console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work rep gain will be 0"].join(" ")),0;let n=a.calculateJobPerformance(this.hacking,this.strength,this.defense,this.dexterity,this.agility,this.charisma);n+=this.intelligence/f.a.MaxSkillLevel;let r=1+e.favor/100;return isNaN(r)&&(r=1),n*this.company_rep_mult*r}function ze(e,t,a){this.resetWorkStatus(),this.isWorking=!0,this.workType=f.a.WorkTypeCreateProgram,this.createProgramReqLvl=a,this.timeNeededToCompleteWork=t;for(let t=0;t=100)break;this.timeWorkedCreateProgram=n/100*this.timeNeededToCompleteWork,this.getHomeComputer().programs.splice(t,1)}}this.createProgramName=e}function Ve(e){let t=1;this.hasAugmentation(i.a.NeuroreceptorManager)||(t=this.focus?1:f.a.BaseFocusBonus);const a=this.createProgramReqLvl;let n=this.hacking/a*this.getIntelligenceBonus(3);return n=1+(n-1)/5,n*=t,this.timeWorked+=f.a._idleSpeed*e,this.timeWorkedCreateProgram+=f.a._idleSpeed*e*n,this.timeWorkedCreateProgram>=this.timeNeededToCompleteWork&&(this.finishCreateProgramWork(!1),!0)}function Ye(e){const t=this.createProgramName;if(!1===e)Object(U.a)("You've finished creating "+t+"!
The new program can be found on your home computer."),this.getHomeComputer().programs.push(t);else{const e=t+"-"+(Math.floor(this.timeWorkedCreateProgram/this.timeNeededToCompleteWork*1e4)/100).toString()+"%-INC";this.getHomeComputer().programs.push(e)}return e||this.gainIntelligenceExp(f.a.IntelligenceProgramBaseExpGain*this.timeWorked/1e3),this.isWorking=!1,this.resetWorkStatus(),"You've finished creating "+t+"! The new program can be found on your home computer."}function Je(e,t,a){this.resetWorkStatus(),this.isWorking=!0,this.workType=f.a.WorkTypeStudyClass,this.workCostMult=e,this.workExpMult=t,this.className=a;const n=Object(X.a)(this);this.workMoneyLossRate=n.workMoneyLossRate,this.workHackExpGainRate=n.workHackExpGainRate,this.workStrExpGainRate=n.workStrExpGainRate,this.workDefExpGainRate=n.workDefExpGainRate,this.workDexExpGainRate=n.workDexExpGainRate,this.workAgiExpGainRate=n.workAgiExpGainRate,this.workChaExpGainRate=n.workChaExpGainRate}function Xe(e){this.timeWorked+=f.a._idleSpeed*e;const t=Object(X.a)(this);return this.workMoneyLossRate=t.workMoneyLossRate,this.workHackExpGainRate=t.workHackExpGainRate,this.workStrExpGainRate=t.workStrExpGainRate,this.workDefExpGainRate=t.workDefExpGainRate,this.workDexExpGainRate=t.workDexExpGainRate,this.workAgiExpGainRate=t.workAgiExpGainRate,this.workChaExpGainRate=t.workChaExpGainRate,this.processWorkEarnings(e),!1}function Qe(e=!1){if(this.gainIntelligenceExp(f.a.IntelligenceClassBaseExpGain*Math.round(this.timeWorked/1e3)),this.workMoneyGained>0)throw new Error("ERR: Somehow gained money while taking class");if(this.updateSkillLevels(),e||Object(U.a)(V.a.createElement(V.a.Fragment,null,"After ",this.className," for ",Object(q.b)(this.timeWorked),", ",V.a.createElement("br",null),"you spent a total of ",V.a.createElement($.a,{money:-this.workMoneyGained}),". ",V.a.createElement("br",null),V.a.createElement("br",null),"You earned a total of: ",V.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",V.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",V.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",V.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",V.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",V.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",V.a.createElement("br",null))),this.isWorking=!1,e){const e="After "+this.className+" for "+Object(q.b)(this.timeWorked)+", you spent a total of "+W.a.formatMoney(-1*this.workMoneyGained)+". You earned a total of: "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp";return this.resetWorkStatus(),e}return this.resetWorkStatus(),""}function Ze(e,t,a,n,r,o,i,l,c,u,m=null){this.crimeType=t,this.resetWorkStatus(),this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeCrime,null!==m&&(this.committingCrimeThruSingFn=!0,this.singFnCrimeWorkerScript=m),this.workHackExpGained=a*this.hacking_exp_mult*s.a.CrimeExpGain,this.workStrExpGained=n*this.strength_exp_mult*s.a.CrimeExpGain,this.workDefExpGained=r*this.defense_exp_mult*s.a.CrimeExpGain,this.workDexExpGained=o*this.dexterity_exp_mult*s.a.CrimeExpGain,this.workAgiExpGained=i*this.agility_exp_mult*s.a.CrimeExpGain,this.workChaExpGained=l*this.charisma_exp_mult*s.a.CrimeExpGain,this.workMoneyGained=c*this.crime_money_mult*s.a.CrimeMoney,this.timeNeededToCompleteWork=u,e.toWork()}function et(e){return this.timeWorked+=f.a._idleSpeed*e,this.timeWorked>=this.timeNeededToCompleteWork&&(this.finishCrime(!1),!0)}function tt(e){if(!e){if(Object(y.a)(this,this.crimeType)){let e=null;for(const t of Object.keys(b.a))if(b.a[t].type==this.crimeType){e=b.a[t];break}if(null==e)return Object(U.a)(`ERR: Unrecognized crime type (${this.crimeType}). This is probably a bug please contact the developer`),"";this.gainMoney(this.workMoneyGained,"crime"),this.karma-=e.karma,this.numPeopleKilled+=e.kills,e.intelligence_exp>0&&this.gainIntelligenceExp(e.intelligence_exp),this.workHackExpGained*=2,this.workStrExpGained*=2,this.workDefExpGained*=2,this.workDexExpGained*=2,this.workAgiExpGained*=2,this.workChaExpGained*=2;const t=this.singFnCrimeWorkerScript;this.committingCrimeThruSingFn&&null!==t?null==t.disableLogs.ALL&&null==t.disableLogs.commitCrime&&t.scriptRef.log("SUCCESS: Crime successful! Gained "+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatExp(this.workHackExpGained)+" hack exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, "+W.a.formatExp(this.workChaExpGained)+" cha exp."):Object(U.a)(V.a.createElement(V.a.Fragment,null,"Crime successful!",V.a.createElement("br",null),V.a.createElement("br",null),"You gained:",V.a.createElement("br",null),V.a.createElement($.a,{money:this.workMoneyGained}),V.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking experience ",V.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength experience",V.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense experience",V.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity experience",V.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility experience",V.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma experience"))}else{this.workHackExpGained/=2,this.workStrExpGained/=2,this.workDefExpGained/=2,this.workDexExpGained/=2,this.workAgiExpGained/=2,this.workChaExpGained/=2;const e=this.singFnCrimeWorkerScript;this.committingCrimeThruSingFn&&null!==e?null==e.disableLogs.ALL&&null==e.disableLogs.commitCrime&&e.scriptRef.log("FAIL: Crime failed! Gained "+W.a.formatExp(this.workHackExpGained)+" hack exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, "+W.a.formatExp(this.workChaExpGained)+" cha exp."):Object(U.a)(V.a.createElement(V.a.Fragment,null,"Crime failed!",V.a.createElement("br",null),V.a.createElement("br",null),"You gained:",V.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking experience ",V.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength experience",V.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense experience",V.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity experience",V.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility experience",V.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma experience"))}this.gainHackingExp(this.workHackExpGained),this.gainStrengthExp(this.workStrExpGained),this.gainDefenseExp(this.workDefExpGained),this.gainDexterityExp(this.workDexExpGained),this.gainAgilityExp(this.workAgiExpGained),this.gainCharismaExp(this.workChaExpGained)}return this.committingCrimeThruSingFn=!1,this.singFnCrimeWorkerScript=null,this.isWorking=!1,this.crimeType="",this.resetWorkStatus(),""}function at(){if(!this.isWorking)return"";let e="";switch(this.workType){case f.a.WorkTypeStudyClass:e=this.finishClass(!0);break;case f.a.WorkTypeCompany:e=this.finishWork(!0,!0);break;case f.a.WorkTypeCompanyPartTime:e=this.finishWorkPartTime(!0);break;case f.a.WorkTypeFaction:e=this.finishFactionWork(!0,!0);break;case f.a.WorkTypeCreateProgram:e=this.finishCreateProgramWork(!0);break;case f.a.WorkTypeCrime:e=this.finishCrime(!0);break;default:return console.error(`Unrecognized work type (${this.workType})`),""}return e}function nt(e){return"number"!=typeof e?(console.warn("Player.takeDamage() called without a numeric argument: "+e),!1):(this.hp-=e,this.hp<=0&&(this.hospitalize(),!0))}function rt(e){"number"==typeof e?(this.hp+=e,this.hp>this.max_hp&&(this.hp=this.max_hp)):console.warn("Player.regenerateHp() called without a numeric argument: "+e)}function ot(){const e=Object(G.b)(this);return J.b.emit("You've been Hospitalized for "+W.a.formatMoney(e),"warning",2e3),this.loseMoney(e,"hospitalization"),this.hp=this.max_hp,e}function it(e,t=!1){let a=null;""!==this.companyName&&(a=u.a[this.companyName]);const n=this.jobs[this.companyName],r=u.a[this.location];if(!(r instanceof c.a))return console.error(`Could not find company that matches the location: ${this.location}. Player.applyToCompany() failed`),!1;let o=e;if(!this.isQualified(r,o)){const e=Object(h.a)(r,o);return t||Object(U.a)("Unforunately, you do not qualify for this position
"+e),!1}if(!r.hasPosition(o))return!1;for(;;){const e=Object(m.a)(o);if(null==e)break;if(!r.hasPosition(e))break;if(!this.isQualified(r,e))break;o=e}if(null!=a&&a.name==r.name&&o.name==n){const e=Object(m.a)(o);if(null==e)return t||Object(U.a)("You are already at the highest position for your field! No promotion available"),!1;if(r.hasPosition(e)){if(!t){const t=Object(h.a)(r,e);Object(U.a)("Unfortunately, you do not qualify for a promotion
"+t)}return!1}return t||Object(U.a)("You are already at the highest position for your field! No promotion available"),!1}return this.jobs[r.name]=o.name,!this.focus&&this.isWorking&&this.companyName!==this.location&&this.resetWorkStatus(),this.companyName=this.location,t||Object(U.a)("Congratulations! You were offered a new job at "+this.companyName+" as a "+o.name+"!"),!0}function st(e,t){let a=null;if(""!==this.companyName&&(a=u.a[this.companyName]),null==a||a.name!=e.name)return t;const n=this.jobs[this.companyName];if(!n)return t;const r=d.a[n];return r.isSoftwareJob()&&t.isSoftwareJob()||r.isITJob()&&t.isITJob()||r.isBusinessJob()&&t.isBusinessJob()||r.isSecurityEngineerJob()&&t.isSecurityEngineerJob()||r.isNetworkEngineerJob()&&t.isNetworkEngineerJob()||r.isSecurityJob()&&t.isSecurityJob()||r.isAgentJob()&&t.isAgentJob()||r.isSoftwareConsultantJob()&&t.isSoftwareConsultantJob()||r.isBusinessConsultantJob()&&t.isBusinessConsultantJob()||r.isPartTimeJob()&&t.isPartTimeJob()?Object(m.a)(r):t}function lt(e){1==this.isWorking&&this.workType.includes("Working for Company")&&this.companyName==e&&(this.isWorking=!1,this.companyName=""),this.companyName===e&&(this.companyName=""),delete this.jobs[e]}function ct(){return Boolean(Object.keys(this.jobs).length)}function ut(e=!1){return this.applyForJob(d.a[p.j[0]],e)}function mt(e=!1){return this.applyForJob(d.a[p.k[0]],e)}function ht(e=!1){return this.applyForJob(d.a[p.d[0]],e)}function dt(e=!1){const t=u.a[this.location];return this.isQualified(t,d.a[p.i[0]])?this.applyForJob(d.a[p.i[0]],e):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function pt(e=!1){const t=u.a[this.location];if(this.isQualified(t,d.a[p.f[0]])){const t=d.a[p.f[0]];return this.applyForJob(t,e)}return e||Object(U.a)("Unforunately, you do not qualify for this position"),!1}function ft(e=!1){return this.applyForJob(d.a[p.b[0]],e)}function gt(e=!1){return this.applyForJob(d.a[p.c[0]],e)}function yt(e=!1){return this.applyForJob(d.a[p.h[2]],e)}function bt(e=!1){const t=u.a[this.location];if(this.isQualified(t,d.a[p.a[0]])){const t=d.a[p.a[0]];return this.applyForJob(t,e)}return e||Object(U.a)("Unforunately, you do not qualify for this position"),!1}function Et(e=!1){const t=u.a[this.location],a=p.e[1];return!!t.hasPosition(a)&&(this.isQualified(t,d.a[a])?(this.jobs[t.name]=a,!this.focus&&this.isWorking&&this.companyName!==t.name&&this.resetWorkStatus(),this.companyName=t.name,e||Object(U.a)("Congratulations, you are now employed at "+this.location),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1))}function kt(e=!1){const t=u.a[this.location],a=p.g[1];return!!t.hasPosition(a)&&(this.isQualified(t,d.a[a])?(this.jobs[t.name]=a,!this.focus&&this.isWorking&&this.companyName!==t.name&&this.resetWorkStatus(),this.companyName=t.name,e||Object(U.a)("Congratulations, you are now employed part-time at "+this.location),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1))}function vt(e=!1){const t=u.a[this.location],a=p.e[0];return!!t.hasPosition(a)&&(this.isQualified(t,d.a[a])?(this.jobs[t.name]=a,!this.focus&&this.isWorking&&this.companyName!==t.name&&this.resetWorkStatus(),this.companyName=t.name,e||Object(U.a)("Congratulations, you are now employed as a waiter at "+this.location),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1))}function _t(e=!1){const t=u.a[this.location],a=p.g[0];return!!t.hasPosition(a)&&(this.isQualified(t,d.a[a])?(this.jobs[t.name]=a,!this.focus&&this.isWorking&&this.companyName!==t.name&&this.resetWorkStatus(),this.companyName=t.name,e||Object(U.a)("Congratulations, you are now employed as a part-time waiter at "+this.location),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1))}function wt(e,t){const a=e.jobStatReqOffset,n=t.requiredHacking>0?t.requiredHacking+a:0,r=t.requiredStrength>0?t.requiredStrength+a:0,o=t.requiredDefense>0?t.requiredDefense+a:0,i=t.requiredDexterity>0?t.requiredDexterity+a:0,s=t.requiredDexterity>0?t.requiredDexterity+a:0,l=t.requiredCharisma>0?t.requiredCharisma+a:0;return this.hacking>=n&&this.strength>=r&&this.defense>=o&&this.dexterity>=i&&this.agility>=s&&this.charisma>=l&&e.playerReputation>=t.requiredReputation}function St(e=!0){e&&this.resetMultipliers();for(let e=0;et}const o=k.a.Illuminati;!o.isBanned&&!o.isMember&&!o.alreadyInvited&&t>=30&&this.money>=15e10&&this.hacking>=1500&&this.strength>=1200&&this.defense>=1200&&this.dexterity>=1200&&this.agility>=1200&&e.push(o);const i=k.a.Daedalus;!i.isBanned&&!i.isMember&&!i.alreadyInvited&&t>=Math.round(30*s.a.DaedalusAugsRequirement)&&this.money>=1e11&&(this.hacking>=2500||this.strength>=1500&&this.defense>=1500&&this.dexterity>=1500&&this.agility>=1500)&&e.push(i);const l=k.a["The Covenant"];!l.isBanned&&!l.isMember&&!l.alreadyInvited&&t>=20&&this.money>=75e9&&this.hacking>=850&&this.strength>=850&&this.defense>=850&&this.dexterity>=850&&this.agility>=850&&e.push(l);const c=k.a.ECorp;c.isBanned||c.isMember||c.alreadyInvited||!r(C.a.AevumECorp)||e.push(c);const m=k.a.MegaCorp;m.isBanned||m.isMember||m.alreadyInvited||!r(C.a.Sector12MegaCorp)||e.push(m);const h=k.a["Bachman & Associates"];h.isBanned||h.isMember||h.alreadyInvited||!r(C.a.AevumBachmanAndAssociates)||e.push(h);const d=k.a["Blade Industries"];d.isBanned||d.isMember||d.alreadyInvited||!r(C.a.Sector12BladeIndustries)||e.push(d);const p=k.a.NWO;p.isBanned||p.isMember||p.alreadyInvited||!r(C.a.VolhavenNWO)||e.push(p);const g=k.a["Clarke Incorporated"];g.isBanned||g.isMember||g.alreadyInvited||!r(C.a.AevumClarkeIncorporated)||e.push(g);const y=k.a["OmniTek Incorporated"];y.isBanned||y.isMember||y.alreadyInvited||!r(C.a.VolhavenOmniTekIncorporated)||e.push(y);const b=k.a["Four Sigma"];b.isBanned||b.isMember||b.alreadyInvited||!r(C.a.Sector12FourSigma)||e.push(b);const E=k.a["KuaiGong International"];E.isBanned||E.isMember||E.alreadyInvited||!r(C.a.ChongqingKuaiGongInternational)||e.push(E);const v=k.a["Fulcrum Secret Technologies"],_=Object(R.d)(P.a.FulcrumSecretTechnologies);if(!(_ instanceof A.a))throw new Error("Fulcrum Secret Technologies should be normal server");null==_?console.error("Could not find Fulcrum Secret Technologies Server"):v.isBanned||v.isMember||v.alreadyInvited||!_.backdoorInstalled||!r(C.a.AevumFulcrumTechnologies,25e4)||e.push(v);const w=k.a.BitRunners,x=Object(R.d)(P.a.BitRunnersServer);if(!(x instanceof A.a))throw new Error("BitRunners should be normal server");null==x?console.error("Could not find BitRunners Server"):w.isBanned||w.isMember||!x.backdoorInstalled||w.alreadyInvited||e.push(w);const O=k.a["The Black Hand"],M=Object(R.d)(P.a.TheBlackHandServer);if(!(M instanceof A.a))throw new Error("TheBlackHand should be normal server");null==M?console.error("Could not find The Black Hand Server"):O.isBanned||O.isMember||!M.backdoorInstalled||O.alreadyInvited||e.push(O);const T=k.a.NiteSec,N=Object(R.d)(P.a.NiteSecServer);if(!(N instanceof A.a))throw new Error("NiteSec should be normal server");null==N?console.error("Could not find NiteSec Server"):T.isBanned||T.isMember||!N.backdoorInstalled||T.alreadyInvited||e.push(T);const I=k.a.Chongqing;!I.isBanned&&!I.isMember&&!I.alreadyInvited&&this.money>=2e7&&this.city==S.a.Chongqing&&e.push(I);const F=k.a["Sector-12"];!F.isBanned&&!F.isMember&&!F.alreadyInvited&&this.money>=15e6&&this.city==S.a.Sector12&&e.push(F);const D=k.a["New Tokyo"];!D.isBanned&&!D.isMember&&!D.alreadyInvited&&this.money>=2e7&&this.city==S.a.NewTokyo&&e.push(D);const j=k.a.Aevum;!j.isBanned&&!j.isMember&&!j.alreadyInvited&&this.money>=4e7&&this.city==S.a.Aevum&&e.push(j);const B=k.a.Ishima;!B.isBanned&&!B.isMember&&!B.alreadyInvited&&this.money>=3e7&&this.city==S.a.Ishima&&e.push(B);const G=k.a.Volhaven;!G.isBanned&&!G.isMember&&!G.alreadyInvited&&this.money>=5e7&&this.city==S.a.Volhaven&&e.push(G);const W=k.a["Speakers for the Dead"];!W.isBanned&&!W.isMember&&!W.alreadyInvited&&this.hacking>=100&&this.strength>=300&&this.defense>=300&&this.dexterity>=300&&this.agility>=300&&this.numPeopleKilled>=30&&this.karma<=-45&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(W);const H=k.a["The Dark Army"];!H.isBanned&&!H.isMember&&!H.alreadyInvited&&this.hacking>=300&&this.strength>=300&&this.defense>=300&&this.dexterity>=300&&this.agility>=300&&this.city==S.a.Chongqing&&this.numPeopleKilled>=5&&this.karma<=-45&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(H);const U=k.a["The Syndicate"];!U.isBanned&&!U.isMember&&!U.alreadyInvited&&this.hacking>=200&&this.strength>=200&&this.defense>=200&&this.dexterity>=200&&this.agility>=200&&(this.city==S.a.Aevum||this.city==S.a.Sector12)&&this.money>=1e7&&this.karma<=-90&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(U);const q=k.a.Silhouette;!q.isBanned&&!q.isMember&&!q.alreadyInvited&&(n.includes("Chief Technology Officer")||n.includes("Chief Financial Officer")||n.includes("Chief Executive Officer"))&&this.money>=15e6&&this.karma<=-22&&e.push(q);const K=k.a.Tetrads;!K.isBanned&&!K.isMember&&!K.alreadyInvited&&(this.city==S.a.Chongqing||this.city==S.a.NewTokyo||this.city==S.a.Ishima)&&this.strength>=75&&this.defense>=75&&this.dexterity>=75&&this.agility>=75&&this.karma<=-18&&e.push(K);const $=k.a["Slum Snakes"];!$.isBanned&&!$.isMember&&!$.alreadyInvited&&this.strength>=30&&this.defense>=30&&this.dexterity>=30&&this.agility>=30&&this.karma<=-9&&this.money>=1e6&&e.push($);const z=k.a.Netburners;let V=0,Y=0,J=0;for(let e=0;e=80&&V>=8&&Y>=4&&J>=100&&e.push(z);const X=k.a["Tian Di Hui"];!X.isBanned&&!X.isMember&&!X.alreadyInvited&&this.money>=1e6&&this.hacking>=50&&(this.city==S.a.Chongqing||this.city==S.a.NewTokyo||this.city==S.a.Ishima)&&e.push(X);const Q=k.a.CyberSec,Z=Object(R.d)(P.a.CyberSecServer);if(!(Z instanceof A.a))throw new Error("cybersec should be normal server");return null==Z?console.error("Could not find CyberSec Server"):Q.isBanned||Q.isMember||!Z.backdoorInstalled||Q.alreadyInvited||e.push(Q),e}function Ot(e){this.bitNodeN=e}function Mt(e){for(const t of this.queuedAugmentations)if(t.name==e)return void console.warn(`tried to queue ${e} twice, this may be a bug`);for(const t of this.augmentations)if(t.name==e)return void console.warn(`tried to queue ${e} twice, this may be a bug`);this.queuedAugmentations.push(new o.a(e))}function Tt(e,t=1){if(null==e||null==e.type||null==e)return"No reward for this contract";switch(e.type){case l.c.FactionReputation:if(null==e.name||!(k.a[e.name]instanceof E.a))return e.type=l.c.FactionReputationAll,this.gainCodingContractReward(e);const a=f.a.CodingContractBaseFactionRepGain*t;return k.a[e.name].playerReputation+=a,`Gained ${a} faction reputation for ${e.name}`;case l.c.FactionReputationAll:const n=f.a.CodingContractBaseFactionRepGain*t,r=["Bladeburners"],o=this.factions.slice().filter(e=>!r.includes(e));if(0==o.length)return e.type=l.c.Money,this.gainCodingContractReward(e,t);const i=Math.floor(n/o.length);for(const e of o)k.a[e]instanceof E.a&&(k.a[e].playerReputation+=i);return`Gained ${i} reputation for each of the following factions: ${o.toString()}`;case l.c.CompanyReputation:{if(null==e.name||!(u.a[e.name]instanceof c.a))return e.type=l.c.FactionReputationAll,this.gainCodingContractReward(e);const a=f.a.CodingContractBaseCompanyRepGain*t;return u.a[e.name].playerReputation+=a,`Gained ${a} company reputation for ${e.name}`}case l.c.Money:default:{const e=f.a.CodingContractBaseMoneyGain*t*s.a.CodingContractMoney;return this.gainMoney(e,"codingcontract"),"Gained "+W.a.formatMoney(e)}}}function Rt(e){return null==_.a[e]?(console.warn("Player.travel() called with invalid city: "+e),!1):(this.city=e,!0)}function At(e){return null==w.a[e]?(console.warn("Player.gotoLocation() called with invalid location: "+e),!1):(this.location=e,!0)}function Nt(){return 10===this.bitNodeN||j.a[10]>0}function Pt(e){this.exploits.includes(e)||(this.exploits.push(e),J.b.emit("SF -1 acquired!","success",2e3))}function It(e){const t=Q.a[e];t&&(this.achievements.map(e=>e.ID).includes(e)||(this.achievements.push({ID:e,unlockedOn:(new Date).getTime()}),J.b.emit(`Unlocked Achievement: "${t.Name}"`,"success",2e3)))}function Ft(e){return Object(M.a)(this.intelligence,e)}function Dt(){return this.moneySourceA.casino}function jt(e){return this.hasOwnProperty(e)?this[e]:1}function Bt(e,t){this.hasOwnProperty(e)&&(this[e]=t)}function Gt(){return 13===this.bitNodeN||j.a[13]>0}function Lt(e){const t=this.sourceFiles.find(t=>t.n===e);return t?t.lvl:0}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(514),r=a(5),o=a(809),i=a(303),s=a(22);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c extends n.a{constructor(e={hostname:"",ip:Object(i.a)()}){super(e),l(this,"backdoorInstalled",!1),l(this,"baseDifficulty",1),l(this,"hackDifficulty",1),l(this,"minDifficulty",1),l(this,"moneyAvailable",0),l(this,"moneyMax",0),l(this,"numOpenPortsRequired",5),l(this,"openPortCount",0),l(this,"requiredHackingSkill",1),l(this,"serverGrowth",1),this.hostname.startsWith("hacknet-node-")&&(this.hostname=Object(o.a)(10)),this.purchasedByPlayer=null!=e.purchasedByPlayer&&e.purchasedByPlayer,this.maxRam=null!=e.maxRam?e.maxRam:0,this.requiredHackingSkill=null!=e.requiredHackingSkill?e.requiredHackingSkill:1,this.moneyAvailable=null!=e.moneyAvailable?e.moneyAvailable*r.a.ServerStartingMoney:0,this.moneyMax=25*this.moneyAvailable*r.a.ServerMaxMoney,this.hackDifficulty=null!=e.hackDifficulty?e.hackDifficulty*r.a.ServerStartingSecurity:1,this.baseDifficulty=this.hackDifficulty,this.minDifficulty=Math.max(1,Math.round(this.hackDifficulty/3)),this.serverGrowth=null!=e.serverGrowth?e.serverGrowth:1,this.numOpenPortsRequired=null!=e.numOpenPortsRequired?e.numOpenPortsRequired:5}capDifficulty(){this.hackDifficulty100&&(this.hackDifficulty=100)}changeMinimumSecurity(e,t=!1){t?this.minDifficulty*=e:this.minDifficulty+=e,this.minDifficulty=Math.max(1,this.minDifficulty)}changeMaximumMoney(e){if(this.moneyMax>1e13){const t=this.moneyMax-1e13;e=1+(e-1)/Math.log(t)/Math.log(8)}this.moneyMax*=e}fortify(e){this.hackDifficulty+=e,this.capDifficulty()}weaken(e){this.hackDifficulty-=e*r.a.ServerWeakenRate,this.capDifficulty()}toJSON(){return Object(s.b)("Server",this)}static fromJSON(e){return Object(s.a)(c,e.data)}}s.c.constructors.Server=c},function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return i})),a.d(t,"c",(function(){return s}));var n=a(0),r=a.n(n);const o={Corporation:r.a.createContext({}),Division:r.a.createContext({})},i=()=>Object(n.useContext)(o.Corporation),s=()=>Object(n.useContext)(o.Division)},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return u})),a.d(t,"e",(function(){return m}));var n=a(0),r=a.n(n),o=a(121),i=a(129);const s={Energy:"Energy",Utilities:"Water Utilities",Agriculture:"Agriculture",Fishing:"Fishing",Mining:"Mining",Food:"Food",Tobacco:"Tobacco",Chemical:"Chemical",Pharmaceutical:"Pharmaceutical",Computer:"Computer Hardware",Robotics:"Robotics",Software:"Software",Healthcare:"Healthcare",RealEstate:"RealEstate"},l={Energy:225e9,Utilities:15e10,Agriculture:4e10,Fishing:8e10,Mining:3e11,Food:1e10,Tobacco:2e10,Chemical:7e10,Pharmaceutical:2e11,Computer:5e11,Robotics:1e12,Software:25e9,Healthcare:75e10,RealEstate:6e11},c={Energy:e=>r.a.createElement(r.a.Fragment,null,"Engage in the production and distribution of energy.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Energy,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Utilities:e=>r.a.createElement(r.a.Fragment,null,"Distribute water and provide wastewater services.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Utilities,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Agriculture:e=>r.a.createElement(r.a.Fragment,null,"Cultivate crops and breed livestock to produce food.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Agriculture,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Fishing:e=>r.a.createElement(r.a.Fragment,null,"Produce food through the breeding and processing of fish and fish products.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Fishing,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Mining:e=>r.a.createElement(r.a.Fragment,null,"Extract and process metals from the earth.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Mining,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Food:e=>r.a.createElement(r.a.Fragment,null,"Create your own restaurants all around the world.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Food,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Tobacco:e=>r.a.createElement(r.a.Fragment,null,"Create and distribute tobacco and tobacco-related products.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Tobacco,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Chemical:e=>r.a.createElement(r.a.Fragment,null,"Produce industrial chemicals.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Chemical,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Pharmaceutical:e=>r.a.createElement(r.a.Fragment,null,"Discover, develop, and create new pharmaceutical drugs.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Pharmaceutical,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Computer:e=>r.a.createElement(r.a.Fragment,null,"Develop and manufacture new computer hardware and networking infrastructures.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Computer,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Robotics:e=>r.a.createElement(r.a.Fragment,null,"Develop and create robots.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Robotics,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Software:e=>r.a.createElement(r.a.Fragment,null,"Develop computer software and create AI Cores.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Software,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Healthcare:e=>r.a.createElement(r.a.Fragment,null,"Create and manage hospitals.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.Healthcare,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),RealEstate:e=>r.a.createElement(r.a.Fragment,null,"Develop and manage real estate properties.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(i.a,{money:l.RealEstate,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO")},u={Energy:Object(o.a)(),Utilities:Object(o.a)(),Agriculture:Object(o.a)(),Fishing:Object(o.a)(),Mining:Object(o.a)(),Food:Object(o.b)(),Tobacco:Object(o.b)(),Chemical:Object(o.a)(),Pharmaceutical:Object(o.b)(),Computer:Object(o.b)(),Robotics:Object(o.b)(),Software:Object(o.b)(),Healthcare:Object(o.b)(),RealEstate:Object(o.b)()};function m(){u.Energy=Object(o.a)(),u.Utilities=Object(o.a)(),u.Agriculture=Object(o.a)(),u.Fishing=Object(o.a)(),u.Mining=Object(o.a)(),u.Food=Object(o.a)(),u.Tobacco=Object(o.a)(),u.Chemical=Object(o.a)(),u.Pharmaceutical=Object(o.a)(),u.Computer=Object(o.a)(),u.Robotics=Object(o.a)(),u.Software=Object(o.a)(),u.Healthcare=Object(o.a)(),u.RealEstate=Object(o.a)()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Operations:"Operations",Engineer:"Engineer",Business:"Business",Management:"Management",RandD:"Research & Development",Training:"Training",Unassigned:"Unassigned"}},,function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.Company=0]="Company",e[e.Gym=1]="Gym",e[e.Hospital=2]="Hospital",e[e.Slums=3]="Slums",e[e.Special=4]="Special",e[e.StockMarket=5]="StockMarket",e[e.TechVendor=6]="TechVendor",e[e.TravelAgency=7]="TravelAgency",e[e.University=8]="University",e[e.Casino=9]="Casino"}(n||(n={}))},,,,function(e,t,a){"use strict";a.d(t,"g",(function(){return f})),a.d(t,"l",(function(){return g})),a.d(t,"h",(function(){return y})),a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return E})),a.d(t,"e",(function(){return k})),a.d(t,"f",(function(){return v})),a.d(t,"d",(function(){return _})),a.d(t,"c",(function(){return w})),a.d(t,"n",(function(){return S})),a.d(t,"o",(function(){return C})),a.d(t,"k",(function(){return x})),a.d(t,"j",(function(){return O})),a.d(t,"i",(function(){return M})),a.d(t,"p",(function(){return R})),a.d(t,"m",(function(){return A}));var n=a(211),r=a(194),o=a(171),i=a(35),s=a(87),l=a(349),c=a(232),u=a(350),m=a(41),h=a(25),d=a(44),p=a(78);function f(e){return 9===e.bitNodeN||p.a[9]>0}function g(e){if(m.a.isRunning){if(m.a.currStep!==m.f.HacknetNodesIntroduction)return-1;Object(m.c)()}const t=e.hacknetNodes.length;if(f(e)){const a=E(e);if(isNaN(a))throw new Error("Calculated cost of purchasing HacknetServer is NaN");return!e.canAfford(a)||t>=i.b.MaxServers?-1:(e.loseMoney(a,"hacknet_expenses"),e.createHacknetServer(),R(e),t)}{const a=b(e);if(isNaN(a))throw new Error("Calculated cost of purchasing HacknetNode is NaN");if(!e.canAfford(a))return-1;const r="hacknet-node-"+t,o=new n.a(r,e.hacknet_node_money_mult);return e.loseMoney(a,"hacknet_expenses"),e.hacknetNodes.push(o),t}}function y(e){return f(e)&&e.hacknetNodes.length>=i.b.MaxServers}function b(e){return Object(r.d)(e.hacknetNodes.length+1,e.hacknet_node_purchase_cost_mult)}function E(e){return Object(o.f)(e.hacknetNodes.length+1,e.hacknet_node_purchase_cost_mult)}function k(e,t,a){if(null==a)throw new Error("getMaxNumberLevelUpgrades() called without maxLevel arg");if(e.moneyt.calculateLevelUpgradeCost(o,e.hacknet_node_level_cost_mult))return o;for(;n<=r;){const i=(n+r)/2|0;if(i!==a&&e.money>t.calculateLevelUpgradeCost(i,e.hacknet_node_level_cost_mult)&&e.moneyt.calculateLevelUpgradeCost(i,e.hacknet_node_level_cost_mult)))return Math.min(o,i);n=i+1}}return 0}function v(e,t,a){if(null==a)throw new Error("getMaxNumberRamUpgrades() called without maxLevel arg");if(e.moneyt.calculateRamUpgradeCost(n,e.hacknet_node_ram_cost_mult))return n;for(let a=n-1;a>=0;--a)if(e.money>t.calculateRamUpgradeCost(a,e.hacknet_node_ram_cost_mult))return a;return 0}function _(e,t,a){if(null==a)throw new Error("getMaxNumberCoreUpgrades() called without maxLevel arg");if(e.moneyt.calculateCoreUpgradeCost(o,e.hacknet_node_core_cost_mult))return o;for(;n<=r;){const i=(n+r)/2|0;if(i!=a&&e.money>t.calculateCoreUpgradeCost(i,e.hacknet_node_core_cost_mult)&&e.moneyt.calculateCoreUpgradeCost(i,e.hacknet_node_core_cost_mult)))return Math.min(o,i);n=i+1}}return 0}function w(e,t,a){if(null==a)throw new Error("getMaxNumberCacheUpgrades() called without maxLevel arg");if(!e.canAfford(t.calculateCacheUpgradeCost(1)))return 0;let n=1,r=a-1;const o=a-t.cache;if(e.canAfford(t.calculateCacheUpgradeCost(o)))return o;for(;n<=r;){const i=(n+r)/2|0;if(i!=a&&e.canAfford(t.calculateCacheUpgradeCost(i))&&!e.canAfford(t.calculateCacheUpgradeCost(i+1)))return Math.min(o,i);if(e.canAfford(t.calculateCacheUpgradeCost(i))){if(!e.canAfford(t.calculateCacheUpgradeCost(i)))return Math.min(o,i);n=i+1}else r=i-1}return 0}function S(e,t,a=1){const n=Math.round(a),r=t.calculateLevelUpgradeCost(n,e.hacknet_node_level_cost_mult);if(isNaN(r)||r<=0||n<0)return!1;const o=t instanceof s.a;if(t.level>=(o?i.b.MaxLevel:i.a.MaxLevel))return!1;if(t.level+n>(o?i.b.MaxLevel:i.a.MaxLevel)){return S(e,t,Math.max(0,(o?i.b.MaxLevel:i.a.MaxLevel)-t.level))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeLevel(n,e.hacknet_node_money_mult),!0)}function C(e,t,a=1){const r=Math.round(a),o=t.calculateRamUpgradeCost(r,e.hacknet_node_ram_cost_mult);if(isNaN(o)||o<=0||r<0)return!1;if(t instanceof s.a&&t.maxRam>=i.b.MaxRam)return!1;if(t instanceof n.a&&t.ram>=i.a.MaxRam)return!1;if(t instanceof s.a){if(t.maxRam*Math.pow(2,r)>i.b.MaxRam){return C(e,t,Math.max(0,Math.log2(Math.round(i.b.MaxRam/t.maxRam))))}}else if(t instanceof n.a&&t.ram*Math.pow(2,r)>i.a.MaxRam){return C(e,t,Math.max(0,Math.log2(Math.round(i.a.MaxRam/t.ram))))}return!!e.canAfford(o)&&(e.loseMoney(o,"hacknet_expenses"),t.upgradeRam(r,e.hacknet_node_money_mult),!0)}function x(e,t,a=1){const n=Math.round(a),r=t.calculateCoreUpgradeCost(n,e.hacknet_node_core_cost_mult);if(isNaN(r)||r<=0||n<0)return!1;const o=t instanceof s.a;if(t.cores>=(o?i.b.MaxCores:i.a.MaxCores))return!1;if(t.cores+n>(o?i.b.MaxCores:i.a.MaxCores)){return x(e,t,Math.max(0,(o?i.b.MaxCores:i.a.MaxCores)-t.cores))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeCore(n,e.hacknet_node_money_mult),!0)}function O(e,t,a=1){const n=Math.round(a),r=t.calculateCacheUpgradeCost(n);if(isNaN(r)||r<=0||n<0)return!1;if(!(t instanceof s.a))return console.warn("purchaseCacheUpgrade() called for a non-HacknetNode"),!1;if(t.cache+n>i.b.MaxCache){return O(e,t,Math.max(0,i.b.MaxCache-t.cache))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeCache(n),!0)}function M(e,t){return 0===e.hacknetNodes.length?0:f(e)?function(e,t){if(!(e.hashManager instanceof l.a))throw new Error("Player does not have a HashManager (should be in 'hashManager' prop)");let a=0;for(let r=0;r0){const t=c.a["Sell for Money"];if(null===t)throw new Error("Could not get the hash upgrade");if(!t.cost)throw new Error("Upgrade is not properly configured");const a=Math.floor(r/t.cost);a>0&&e.gainMoney(t.value*a,"hacknet")}return a}(e,t):e.hacknetNodes[0]instanceof n.a?function(e,t){let a=0;for(let n=0;n{var t;null!=i[(t=e).name]&&console.warn("Duplicate Company Position being defined: "+t.name),i[t.name]=new r.a(t)});for(const t of Object.keys(i)){const a=i[t];e[t]instanceof r.a?(a.favor=e[t].favor,isNaN(a.favor)&&(a.favor=0)):a.favor=0}}function l(e){i=JSON.parse(e,o.c)}},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"c",(function(){return o})),a.d(t,"b",(function(){return i}));var n=a(22);let r={"Slum Snakes":{power:1,territory:1/7},Tetrads:{power:1,territory:1/7},"The Syndicate":{power:1,territory:1/7},"The Dark Army":{power:1,territory:1/7},"Speakers for the Dead":{power:1,territory:1/7},NiteSec:{power:1,territory:1/7},"The Black Hand":{power:1,territory:1/7}};function o(){r={"Slum Snakes":{power:1,territory:1/7},Tetrads:{power:1,territory:1/7},"The Syndicate":{power:1,territory:1/7},"The Dark Army":{power:1,territory:1/7},"Speakers for the Dead":{power:1,territory:1/7},NiteSec:{power:1,territory:1/7},"The Black Hand":{power:1,territory:1/7}}}function i(e){r=JSON.parse(e,n.c)}},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e.Long="L",e.Short="S"}(n||(n={}))},function(e,t,a){"use strict";let n;function r(e){switch(e){case n.HackingChance:return"+x% hack() success chance";case n.HackingSpeed:return"+x% faster hack(), grow(), and weaken()";case n.HackingMoney:return"+x% hack() power";case n.HackingGrow:return"+x% grow() power";case n.Hacking:return"+x% hacking skill";case n.Strength:return"+x% strength skill";case n.Defense:return"+x% defense skill";case n.Dexterity:return"+x% dexterity skill";case n.Agility:return"+x% agility skill";case n.Charisma:return"+x% charisma skill";case n.HacknetMoney:return"+x% hacknet production";case n.HacknetCost:return"x% cheaper hacknet cost";case n.Rep:return"+x% reputation from factions and companies";case n.WorkMoney:return"+x% work money";case n.Crime:return"+x% crime money";case n.Bladeburner:return"+x% all bladeburner stats"}throw new Error("Calling effect for fragment type that doesn't have an effect "+e)}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r})),function(e){e[e.None=0]="None",e[e.Delete=1]="Delete",e[e.HackingChance=2]="HackingChance",e[e.HackingSpeed=3]="HackingSpeed",e[e.HackingMoney=4]="HackingMoney",e[e.HackingGrow=5]="HackingGrow",e[e.Hacking=6]="Hacking",e[e.Strength=7]="Strength",e[e.Defense=8]="Defense",e[e.Dexterity=9]="Dexterity",e[e.Agility=10]="Agility",e[e.Charisma=11]="Charisma",e[e.HacknetMoney=12]="HacknetMoney",e[e.HacknetCost=13]="HacknetCost",e[e.Rep=14]="Rep",e[e.WorkMoney=15]="WorkMoney",e[e.Crime=16]="Crime",e[e.Bladeburner=17]="Bladeburner",e[e.Booster=18]="Booster"}(n||(n={}))},,,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"l",(function(){return NewIndustry})),__webpack_require__.d(__webpack_exports__,"k",(function(){return NewCity})),__webpack_require__.d(__webpack_exports__,"x",(function(){return UnlockUpgrade})),__webpack_require__.d(__webpack_exports__,"h",(function(){return LevelUpgrade})),__webpack_require__.d(__webpack_exports__,"g",(function(){return IssueDividends})),__webpack_require__.d(__webpack_exports__,"o",(function(){return SellMaterial})),__webpack_require__.d(__webpack_exports__,"p",(function(){return SellProduct})),__webpack_require__.d(__webpack_exports__,"u",(function(){return SetSmartSupply})),__webpack_require__.d(__webpack_exports__,"v",(function(){return SetSmartSupplyUseLeftovers})),__webpack_require__.d(__webpack_exports__,"c",(function(){return BuyMaterial})),__webpack_require__.d(__webpack_exports__,"a",(function(){return AssignJob})),__webpack_require__.d(__webpack_exports__,"y",(function(){return UpgradeOfficeSize})),__webpack_require__.d(__webpack_exports__,"w",(function(){return ThrowParty})),__webpack_require__.d(__webpack_exports__,"m",(function(){return PurchaseWarehouse})),__webpack_require__.d(__webpack_exports__,"z",(function(){return UpgradeWarehouse})),__webpack_require__.d(__webpack_exports__,"b",(function(){return BuyCoffee})),__webpack_require__.d(__webpack_exports__,"f",(function(){return HireAdVert})),__webpack_require__.d(__webpack_exports__,"j",(function(){return MakeProduct})),__webpack_require__.d(__webpack_exports__,"n",(function(){return Research})),__webpack_require__.d(__webpack_exports__,"e",(function(){return ExportMaterial})),__webpack_require__.d(__webpack_exports__,"d",(function(){return CancelExportMaterial})),__webpack_require__.d(__webpack_exports__,"i",(function(){return LimitProductProduction})),__webpack_require__.d(__webpack_exports__,"q",(function(){return SetMaterialMarketTA1})),__webpack_require__.d(__webpack_exports__,"r",(function(){return SetMaterialMarketTA2})),__webpack_require__.d(__webpack_exports__,"s",(function(){return SetProductMarketTA1})),__webpack_require__.d(__webpack_exports__,"t",(function(){return SetProductMarketTA2}));var _IndustryData__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(48),_Industry__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(844),_data_Constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(34),_OfficeSpace__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(353),_Product__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(374),_Warehouse__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(230),_Locations_Cities__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(141),_EmployeePositions__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(49),_IndustryUpgrades__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(305),_ResearchMap__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(267);function NewIndustry(e,t,a){for(let t=0;t_data_Constants__WEBPACK_IMPORTED_MODULE_2__.a.DividendMaxPercentage)throw new Error("Invalid value. Must be an integer between 0 and "+_data_Constants__WEBPACK_IMPORTED_MODULE_2__.a.DividendMaxPercentage);e.dividendPercentage=100*t}function SellMaterial(mat,amt,price){""===price&&(price="0"),""===amt&&(amt="0");let cost=price.replace(/\s+/g,"");cost=cost.replace(/[^-()\d/*+.MPe]/g,"");let temp=cost.replace(/MP/g,mat.bCost+"");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==temp||isNaN(parseFloat(temp))||parseFloat(temp)<0)throw new Error("Invalid value or expression for sell price field");if(cost.includes("MP")?mat.sCost=cost:mat.sCost=temp,amt=amt.toUpperCase(),amt.includes("MAX")||amt.includes("PROD")){let q=amt.replace(/\s+/g,"");q=q.replace(/[^-()\d/*+.MAXPROD]/g,"");let tempQty=q.replace(/MAX/g,"1");tempQty=tempQty.replace(/PROD/g,"1");try{tempQty=eval(tempQty)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==tempQty||isNaN(parseFloat(tempQty))||parseFloat(tempQty)<0)throw new Error("Invalid value or expression for sell price field");mat.sllman[0]=!0,mat.sllman[1]=q}else{if(isNaN(parseFloat(amt))||parseFloat(amt)<0)throw new Error("Invalid value for sell quantity field! Must be numeric or 'MAX'");{let e=parseFloat(amt);isNaN(e)&&(e=0),0===e?(mat.sllman[0]=!1,mat.sllman[1]=0):(mat.sllman[0]=!0,mat.sllman[1]=e)}}}function SellProduct(product,city,amt,price,all){if(price.includes("MP")){price=price.replace(/\s+/g,""),price=price.replace(/[^-()\d/*+.MP]/g,"");let temp=price.replace(/MP/g,"1");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell quantity field: "+e)}if(null==temp||isNaN(parseFloat(temp))||parseFloat(temp)<0)throw new Error("Invalid value or expression for sell quantity field.");product.sCost=price}else{const e=parseFloat(price);if(isNaN(e))throw new Error("Invalid value for sell price field");product.sCost=e}const cities=Object.keys(_Locations_Cities__WEBPACK_IMPORTED_MODULE_6__.a);if(amt=amt.toUpperCase(),amt.includes("MAX")||amt.includes("PROD")){let qty=amt.replace(/\s+/g,"");qty=qty.replace(/[^-()\d/*+.MAXPROD]/g,"");let temp=qty.replace(/MAX/g,"1");temp=temp.replace(/PROD/g,"1");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==temp||isNaN(parseFloat(temp))||parseFloat(temp)<0)throw new Error("Invalid value or expression for sell price field");if(all)for(let e=0;e]/g,""),createCity:a,designCost:r,advCost:o});if(t.products[i.name]instanceof _Product__WEBPACK_IMPORTED_MODULE_4__.a)throw new Error("You already have a product with this name!");e.funds=e.funds-(r+o),t.products[i.name]=i}function Research(e,t){const a=_IndustryData__WEBPACK_IMPORTED_MODULE_0__.c[e.type];if(void 0===a)throw new Error(`No research tree for industry '${e.type}'`);if(!a.getAllNodes().includes(t))throw new Error(`No research named '${t}'`);const n=_ResearchMap__WEBPACK_IMPORTED_MODULE_9__.a[t];if(e.sciResearch.qty{var t;null!=o[(t=e).name]&&console.warn("Duplicate Company Position being defined: "+t.name),o[t.name]=new r.a(t)})},function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}));const n=[".js",".script",".ns"];function r(e){return n.some(t=>e.endsWith(t))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(9);const r={};r[n.a.AevumECorp]="ECP",r[n.a.Sector12MegaCorp]="MGCP",r[n.a.Sector12BladeIndustries]="BLD",r[n.a.AevumClarkeIncorporated]="CLRK",r[n.a.VolhavenOmniTekIncorporated]="OMTK",r[n.a.Sector12FourSigma]="FSIG",r[n.a.ChongqingKuaiGongInternational]="KGI",r[n.a.AevumFulcrumTechnologies]="FLCM",r[n.a.IshimaStormTechnologies]="STM",r[n.a.NewTokyoDefComm]="DCOMM",r[n.a.VolhavenHeliosLabs]="HLS",r[n.a.NewTokyoVitaLife]="VITA",r[n.a.Sector12IcarusMicrosystems]="ICRS",r[n.a.Sector12UniversalEnergy]="UNV",r[n.a.AevumAeroCorp]="AERO",r[n.a.VolhavenOmniaCybersystems]="OMN",r[n.a.ChongqingSolarisSpaceSystems]="SLRS",r[n.a.NewTokyoGlobalPharmaceuticals]="GPH",r[n.a.IshimaNovaMedical]="NVMD",r[n.a.AevumWatchdogSecurity]="WDS",r[n.a.VolhavenLexoCorp]="LXO",r[n.a.AevumRhoConstruction]="RHOC",r[n.a.Sector12AlphaEnterprises]="APHE",r[n.a.VolhavenSysCoreSecurities]="SYSC",r[n.a.VolhavenCompuTek]="CTK",r[n.a.AevumNetLinkTechnologies]="NTLK",r[n.a.IshimaOmegaSoftware]="OMGA",r[n.a.Sector12FoodNStuff]="FNS",r[n.a.Sector12JoesGuns]="JGN",r["Sigma Cosmetics"]="SGC",r["Catalyst Ventures"]="CTYS",r["Microdyne Technologies"]="MDYN",r["Titan Laboratories"]="TITN"},function(e,t,a){"use strict";a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return i})),a.d(t,"e",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"f",(function(){return u}));var n=a(5),r=a(266);function o(e,t){const a=(100-e.hackDifficulty)/100,n=1.75*t.hacking,o=(n-e.requiredHackingSkill)/n*a*t.hacking_chance_mult*Object(r.a)(t.intelligence,1);return o>1?1:o<0?0:o}function i(e,t){null==e.baseDifficulty&&(e.baseDifficulty=e.hackDifficulty);let a=3;return a+=e.baseDifficulty*t.hacking_exp_mult*.3,a*n.a.HackExpGain}function s(e,t){const a=(100-e.hackDifficulty)/100*((t.hacking-(e.requiredHackingSkill-1))/t.hacking)*t.hacking_money_mult*n.a.ScriptHackMoney/240;return a<0?0:a>1?1:a}function l(e,t){let a=2.5*(e.requiredHackingSkill*e.hackDifficulty)+500;a/=t.hacking+50;return 5*a/(t.hacking_speed_mult*Object(r.a)(t.intelligence,1))}function c(e,t){return 3.2*l(e,t)}function u(e,t){return 4*l(e,t)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return g})),a.d(t,"b",(function(){return y})),a.d(t,"j",(function(){return b})),a.d(t,"c",(function(){return E})),a.d(t,"i",(function(){return k})),a.d(t,"d",(function(){return v})),a.d(t,"f",(function(){return _})),a.d(t,"h",(function(){return w})),a.d(t,"k",(function(){return C})),a.d(t,"g",(function(){return x})),a.d(t,"e",(function(){return O}));var n=a(660),r=a(314),o=a(140),i=a(594),s=a(830),l=a(104),c=a(69),u=a(92),m=a(8),h=a(122),d=a(4),p=a(15),f=a(22);let g={lastUpdate:0,Orders:{},storedCycles:0,ticksUntilCycle:0};const y={};function b(e,t,a,i,s,l=null){if(!(e instanceof o.a))return l?l.log("stock.placeOrder",()=>`Invalid stock: '${e}'`):Object(p.a)("ERROR: Invalid stock passed to placeOrder() function"),!1;if("number"!=typeof t||"number"!=typeof a)return l?l.log("stock.placeOrder",()=>`Invalid arguments: shares='${t}' price='${a}'`):Object(p.a)("ERROR: Invalid numeric value provided for either 'shares' or 'price' argument"),!1;const c=new n.a(e.symbol,t,a,i,s);if(null==g.Orders){const e={};for(const t of Object.keys(g)){const a=g[t];a instanceof o.a&&(e[a.symbol]=[])}g.Orders=e}g.Orders[e.symbol].push(c);const u={stockMarket:g,symbolToStockMap:y};return Object(r.a)(e,c.type,c.pos,u),!0}function E(e,t=null){if(null==g.Orders)return!1;if(e.order&&e.order instanceof n.a){const t=e.order,a=g.Orders[t.stockSymbol];for(let e=0;e=t.cap&&(i=.1,t.b=!1),isNaN(i)&&(i=.5);const s=Math.random(),u={stockMarket:g,symbolToStockMap:y};sObject(k.a)({root:{"-ms-overflow-style":"none","scrollbar-width":"none",margin:e.spacing(0),flexGrow:1,display:"block",padding:"8px",minHeight:"100vh",boxSizing:"border-box"}}));let ge={page:()=>{throw new Error("Router called before initialization")},toActiveScripts:()=>{throw new Error("Router called before initialization")},toAugmentations:()=>{throw new Error("Router called before initialization")},toBitVerse:()=>{throw new Error("Router called before initialization")},toBladeburner:()=>{throw new Error("Router called before initialization")},toStats:()=>{throw new Error("Router called before initialization")},toCity:()=>{throw new Error("Router called before initialization")},toCorporation:()=>{throw new Error("Router called before initialization")},toCreateProgram:()=>{throw new Error("Router called before initialization")},toDevMenu:()=>{throw new Error("Router called before initialization")},toFaction:()=>{throw new Error("Router called before initialization")},toFactions:()=>{throw new Error("Router called before initialization")},toGameOptions:()=>{throw new Error("Router called before initialization")},toGang:()=>{throw new Error("Router called before initialization")},toHacknetNodes:()=>{throw new Error("Router called before initialization")},toInfiltration:()=>{throw new Error("Router called before initialization")},toJob:()=>{throw new Error("Router called before initialization")},toMilestones:()=>{throw new Error("Router called before initialization")},toResleeves:()=>{throw new Error("Router called before initialization")},toScriptEditor:()=>{throw new Error("Router called before initialization")},toSleeves:()=>{throw new Error("Router called before initialization")},toStockMarket:()=>{throw new Error("Router called before initialization")},toTerminal:()=>{throw new Error("Router called before initialization")},toTravel:()=>{throw new Error("Router called before initialization")},toTutorial:()=>{throw new Error("Router called before initialization")},toWork:()=>{throw new Error("Router called before initialization")},toBladeburnerCinematic:()=>{throw new Error("Router called before initialization")},toLocation:()=>{throw new Error("Router called before initialization")},toStaneksGift:()=>{throw new Error("Router called before initialization")},toAchievements:()=>{throw new Error("Router called before initialization")}};function ye({player:e,engine:t,terminal:a}){const E=fe(),[{files:k,vim:ye},be]=Object(n.useState)({files:{},vim:!1}),[Ee,ke]=Object(n.useState)(function(e){return ue.b?w.a.Recovery:e.isWorking?w.a.Work:w.a.Terminal}(e)),ve=Object(n.useState)(0)[1],[_e,we]=Object(n.useState)(e.currentWorkFactionName?g.a[e.currentWorkFactionName]:void 0);if(void 0===_e&&Ee===w.a.Faction)throw new Error("Trying to go to a page without the proper setup");const[Se,Ce]=Object(n.useState)(!1),[xe,Oe]=Object(n.useState)(!1),[Me,Te]=Object(n.useState)(void 0);if(void 0===Me&&(Ee===w.a.Infiltration||Ee===w.a.Location||Ee===w.a.Job))throw new Error("Trying to go to a page without the proper setup");const[Re,Ae]=Object(n.useState)(""),[Ne,Pe]=Object(n.useState)(0),[Ie,Fe]=Object(n.useState)(de.a.IsSidebarOpened);function De(){ve(e=>e+1)}function je(){for(const e of Object(f.c)())e.runningScripts=[];i.c.saveGame(),setTimeout(()=>pe.reload(),2e3)}function Be(){Object(p.a)("Soft Reset!"),Object(d.a)(),Pe(Ne+1),ge.toTerminal()}Object(n.useEffect)(()=>h.a.subscribe(De),[]),ge={page:()=>Ee,toActiveScripts:()=>ke(w.a.ActiveScripts),toAugmentations:()=>ke(w.a.Augmentations),toBladeburner:()=>ke(w.a.Bladeburner),toStats:()=>ke(w.a.Stats),toCorporation:()=>ke(w.a.Corporation),toCreateProgram:()=>ke(w.a.CreateProgram),toDevMenu:()=>ke(w.a.DevMenu),toFaction:e=>{ke(w.a.Faction),e&&we(e)},toFactions:()=>ke(w.a.Factions),toGameOptions:()=>ke(w.a.Options),toGang:()=>ke(w.a.Gang),toHacknetNodes:()=>ke(w.a.Hacknet),toMilestones:()=>ke(w.a.Milestones),toResleeves:()=>ke(w.a.Resleeves),toScriptEditor:(e,t)=>{be({files:e,vim:!(null==t||!t.vim)}),ke(w.a.ScriptEditor)},toSleeves:()=>ke(w.a.Sleeves),toStockMarket:()=>ke(w.a.StockMarket),toTerminal:()=>ke(w.a.Terminal),toTutorial:()=>ke(w.a.Tutorial),toJob:()=>{Te(c.a[e.companyName]),ke(w.a.Job)},toCity:()=>{ke(w.a.City)},toTravel:()=>{e.gotoLocation(l.a.TravelAgency),ke(w.a.Travel)},toBitVerse:(e,t)=>{Ce(e),Oe(t),ke(w.a.BitVerse)},toInfiltration:e=>{Te(e),ke(w.a.Infiltration)},toWork:()=>ke(w.a.Work),toBladeburnerCinematic:()=>{ke(w.a.BladeburnerCinematic),Ae(Re)},toLocation:e=>{Te(e),ke(w.a.Location)},toStaneksGift:()=>{ke(w.a.StaneksGift)},toAchievements:()=>{ke(w.a.Achievements)}},Object(n.useEffect)(()=>{Ee!==w.a.Terminal&&window.scrollTo(0,0)});let Ge=r.a.createElement(_.a,null,"Cannot load"),Le=!0,We=!0;switch(Ee){case w.a.Recovery:Ge=r.a.createElement(ue.c,{router:ge,softReset:Be}),Le=!1,We=!1;break;case w.a.BitVerse:Ge=r.a.createElement(J.a,{flume:Se,enter:le.a,quick:xe}),Le=!1,We=!1;break;case w.a.Infiltration:Ge=r.a.createElement(A.a,{location:Me}),Le=!1,We=!1;break;case w.a.BladeburnerCinematic:Ge=r.a.createElement(ee.a,null),Le=!1,We=!1;break;case w.a.Work:Ge=r.a.createElement(P.a,null),Le=!1;break;case w.a.Terminal:Ge=r.a.createElement(H.a,{terminal:a,router:ge,player:e});break;case w.a.Sleeves:Ge=r.a.createElement(F.a,null);break;case w.a.StaneksGift:Ge=r.a.createElement(X.a,{staneksGift:Q.b});break;case w.a.Stats:Ge=r.a.createElement(z.a,null);break;case w.a.ScriptEditor:Ge=r.a.createElement(L.a,{files:k,hostname:e.getCurrentServer().hostname,player:e,router:ge,vim:ye});break;case w.a.ActiveScripts:Ge=r.a.createElement(q.a,{workerScripts:te.a});break;case w.a.Hacknet:Ge=r.a.createElement(D.a,{player:e});break;case w.a.CreateProgram:Ge=r.a.createElement(G.a,null);break;case w.a.Factions:Ge=r.a.createElement(K.a,{player:e,router:ge});break;case w.a.Faction:Ge=r.a.createElement($.a,{faction:_e});break;case w.a.Milestones:Ge=r.a.createElement(W.a,{player:e});break;case w.a.Tutorial:Ge=r.a.createElement(U.a,{reactivateTutorial:()=>{Object(d.a)(),ge.toTerminal(),Object(u.e)()}});break;case w.a.DevMenu:Ge=r.a.createElement(O.a,{player:e,engine:t,router:ge});break;case w.a.Gang:Ge=r.a.createElement(T.a,null);break;case w.a.Corporation:Ge=r.a.createElement(R.a,null);break;case w.a.Bladeburner:Ge=r.a.createElement(M.a,null);break;case w.a.Resleeves:Ge=r.a.createElement(N.a,null);break;case w.a.Travel:Ge=r.a.createElement(V.a,{p:e,router:ge});break;case w.a.StockMarket:Ge=r.a.createElement(Y.a,{buyStockLong:y.a,buyStockShort:y.d,cancelOrder:b.c,eventEmitterForReset:b.e,initStockMarket:b.g,p:e,placeOrder:b.j,sellStockLong:y.c,sellStockShort:y.b,stockMarket:b.a});break;case w.a.City:Ge=r.a.createElement(B.a,null);break;case w.a.Job:case w.a.Location:Ge=r.a.createElement(j.a,{loc:Me});break;case w.a.Options:Ge=r.a.createElement(I.a,{player:e,save:()=>i.c.saveGame(),export:()=>{Object(s.c)(e),i.c.exportGame()},forceKill:je,softReset:Be});break;case w.a.Augmentations:Ge=r.a.createElement(x.a,{exportGameFn:()=>{Object(s.c)(e),i.c.exportGame()},installAugmentationsFn:()=>{Object(o.d)(),ge.toTerminal()}});break;case w.a.Achievements:Ge=r.a.createElement(me.a,null)}return r.a.createElement(ce.a.Player.Provider,{value:e},r.a.createElement(ce.a.Router.Provider,{value:ge},r.a.createElement(he.a,{key:Ne,router:ge,softReset:Be},r.a.createElement(ne.c,null,r.a.createElement(S.a,{mode:u.a.isRunning?"tutorial":"overview"},u.a.isRunning?r.a.createElement(m.a,null):r.a.createElement(Z.a,{save:()=>i.c.saveGame(),killScripts:je})),Le?r.a.createElement(v.a,{display:"flex",flexDirection:"row",width:"100%"},r.a.createElement(C.a,{player:e,router:ge,page:Ee,opened:Ie,onToggled:e=>{Fe(e),de.a.IsSidebarOpened=e}}),r.a.createElement(v.a,{className:E.root},Ge)):r.a.createElement(v.a,{className:E.root},Ge),r.a.createElement(ae.a,null),We&&r.a.createElement(r.a.Fragment,null,r.a.createElement(re.c,null),r.a.createElement(oe.b,null),r.a.createElement(ie.b,null),r.a.createElement(se.b,null),r.a.createElement(ne.a,null))))))}},,function(e,t,a){"use strict";a.d(t,"c",(function(){return o})),a.d(t,"b",(function(){return i})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return l}));var n=a(126),r=a(25);function o(e,t){return t.delayReject&&t.delayReject(),new Promise((function(a,n){t.delay=window.setTimeout(()=>{t.delay=null,t.delayReject=void 0,t.env.stopFlag?n(t):a()},e),t.delayReject=n}))}function i(e,t){const a=Object(r.d)(e.hostname);if(null==a)throw new Error("WorkerScript constructed with invalid server ip: "+e.hostname);for(const a of e.scriptRef.dependencies){var n,o;t=null!==(n=null===(o=t)||void 0===o?void 0:o.replace(new RegExp(a.url,"g"),a.filename))&&void 0!==n?n:t}return"|DELIMITER|"+a.hostname+"|DELIMITER|"+e.name+"|DELIMITER|"+t}function s(e,t,a){const n=e.scriptRef.threads;if(!a)return isNaN(n)||n<1?1:n;const r=0|a;if(isNaN(a)||r<1)throw i(e,`Invalid thread count passed to ${t}: ${a}. Threads must be a positive number.`);if(r>n)throw i(e,`Too many threads requested by ${t}. Requested: ${a}. Has: ${n}.`);return r}function l(e){if(!Object(n.a)(e))return!1;return 4==e.split("|DELIMITER|").length}},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a.n(n),o=a(4),i=a(16);function s({money:e}){return r.a.createElement(i.a,{money:o.a.formatMoney(e)+" / sec"})}},function(e,t,a){"use strict";a.d(t,"d",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"b",(function(){return c})),a.d(t,"a",(function(){return u}));var n=a(761),r=a(22),o=a(515);class i{constructor(e,t,a,n,r,o){this.name=e,this.desc=t,this.generate=a,this.solver=n,this.difficulty=r,this.numTries=o}}const s={};for(const e of n.a)s[e.name]=new i(e.name,e.desc,e.gen,e.solver,e.difficulty,e.numTries);let l,c;!function(e){e[e.FactionReputation=0]="FactionReputation",e[e.FactionReputationAll=1]="FactionReputationAll",e[e.CompanyReputation=2]="CompanyReputation",e[e.Money=3]="Money"}(l||(l={})),function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure",e[e.Cancelled=2]="Cancelled"}(c||(c={}));class u{constructor(e="",t="Find Largest Prime Factor",a=null){var n,r,o;if(o=0,(r="tries")in(n=this)?Object.defineProperty(n,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[r]=o,this.fn=e,this.fn.endsWith(".cct")||(this.fn+=".cct"),null==s[t])throw new Error(`Error: invalid contract type: ${t} please contact developer`);this.type=t,this.data=s[t].generate(),this.reward=a}getData(){return this.data}getDescription(){return s[this.type].desc(this.data)}getDifficulty(){return s[this.type].difficulty}getMaxNumTries(){return s[this.type].numTries}getType(){return s[this.type].name}isSolution(e){return s[this.type].solver(this.data,e)}async prompt(){return new Promise(e=>{const t={c:this,onClose:()=>{e(c.Cancelled)},onAttempt:t=>{this.isSolution(t)?e(c.Success):e(c.Failure)}};o.a.emit(t)})}toJSON(){return Object(r.b)("CodingContract",this)}static fromJSON(e){return Object(r.a)(u,e.data)}}r.c.constructors.CodingContract=u},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e.LimitBuy="Limit Buy Order",e.LimitSell="Limit Sell Order",e.StopBuy="Stop Buy Order",e.StopSell="Stop Sell Order"}(n||(n={}))},,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(4),o=a(111),i=a(135);const s=Object(o.a)(e=>Object(i.a)({reputation:{color:e.colors.rep}}));function l({reputation:e}){const t=s();return n.createElement("span",{className:t.reputation},"number"==typeof e?r.a.formatReputation(e):e)}},,,function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return i})),function(e){e.Bypass="Bypass",e.PrototypeTampering="PrototypeTampering",e.Unclickable="Unclickable",e.UndocumentedFunctionCall="UndocumentedFunctionCall",e.TimeCompression="TimeCompression",e.RealityAlteration="RealityAlteration",e.N00dles="N00dles",e.YoureNotMeantToAccessThis="YoureNotMeantToAccessThis",e.EditSaveFile="EditSaveFile"}(n||(n={}));const r={Bypass:"by circumventing the ram cost of document.",EditSaveFile:"by editing your save file.",PrototypeTampering:"by tampering with Numbers prototype.",TimeCompression:"by compressing time.",Unclickable:"by clicking the unclickable.",UndocumentedFunctionCall:"by looking beyond the documentation.",RealityAlteration:"by altering reality to suit your whims.",N00dles:"by harnessing the power of the n00dles.",YoureNotMeantToAccessThis:"by accessing the dev menu."};function o(e){return r[e]}function i(e){return e=e.filter(e=>Object.keys(n).includes(e)),[...new Set(e)]}},function(e,t,a){"use strict";a.d(t,"b",(function(){return o})),a.d(t,"a",(function(){return i}));var n=a(22),r=a(661);let o=new r.a;function i(e){o=e?JSON.parse(e,n.c):new r.a}},,,,,,,,,,function(e,t,a){"use strict";a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return y})),a.d(t,"b",(function(){return b})),a.d(t,"f",(function(){return E})),a.d(t,"a",(function(){return k})),a.d(t,"e",(function(){return v}));var n=a(21),r=a(295),o=a(7),i=a(5),s=a(8),l=a(192),c=a(27),u=a(2),m=a(11),h=a(234),d=a(78),p=a(15),f=a(531);function g(e){u.a.receiveInvite(e.name),e.alreadyInvited=!0,m.a.SuppressFactionInvites||f.a.emit(e)}function y(e){if(e.isMember)return;e.isMember=!0,u.a.factions.push(e.name);const t=e.getInfo();for(const e of t.enemies)c.a[e]instanceof l.a&&(c.a[e].isBanned=!0);for(let t=0;t0)for(let a=0;a=e.baseCost*l.augmentationPriceMult){const t=new r.a(e.name);if(e.name==o.a.NeuroFluxGovernor&&(t.level=k()),u.a.queuedAugmentations.push(t),u.a.loseMoney(e.baseCost*l.augmentationPriceMult,"augmentations"),e.name==o.a.NeuroFluxGovernor){let t=k();--t;const a=Math.pow(s.a.NeuroFluxGovernorLevelMult,t);e.baseRepRequirement=500*a*i.a.AugmentationRepCost,e.baseCost=75e4*a*i.a.AugmentationMoneyCost;for(let t=0;t{delete this.subscribers[t]}}emit(...e){for(const t in this.subscribers){const a=this.subscribers[t];void 0!==a&&a(...e)}}}},function(e,t,a){"use strict";a.d(t,"f",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"e",(function(){return d})),a.d(t,"d",(function(){return p})),a.d(t,"a",(function(){return f})),a.d(t,"b",(function(){return g}));var n=a(25),r=a(44),o=a(537),i=a(5),s=a(8),l=a(61),c=a(60),u=a(659);function m(e){let t=e.hostname.replace(/ /g,"-");if(null!=e.ip&&Object(n.g)(e.ip)&&(e.ip=Object(n.e)()),null!=Object(n.d)(t)){t+="-0";for(let e=0;e<200&&(t=t.replace(/-[0-9]+$/,"-"+e),null!=Object(n.d)(t));++e);}return e.hostname=t,new r.a(e)}function h(e,t,a,n=1){let r=1+(s.a.ServerBaseGrowthRate-1)/e.hackDifficulty;r>s.a.ServerMaxGrowthRate&&(r=s.a.ServerMaxGrowthRate);const o=e.serverGrowth/100,l=1+(n-1)/16;return Math.log(t)/(Math.log(r)*a.hacking_grow_mult*o*i.a.ServerGrowthRate*l)}function d(e,t,a,n=1){let r=Object(o.a)(e,t,a,n);r<1&&(console.warn("serverGrowth calculated to be less than 1"),r=1);const i=e.moneyAvailable;if(e.moneyAvailable+=1*t,e.moneyAvailable*=r,Object(u.a)(e.moneyMax)&&isNaN(e.moneyAvailable)&&(e.moneyAvailable=e.moneyMax),Object(u.a)(e.moneyMax)&&e.moneyAvailable>e.moneyMax&&(e.moneyAvailable=e.moneyMax),i!==e.moneyAvailable){let r=h(e,e.moneyAvailable/i,a,n);r=Math.min(Math.max(0,Math.ceil(r)),t),e.fortify(2*s.a.ServerFortifyAmount*r)}return e.moneyAvailable/i}function p(e,t){const a=t.programs.includes(l.a.BitFlume.name);t.programs.length=0,t.runningScripts=[],t.serversOnNetwork=[],t.isConnectedTo=!0,t.ramUsed=0,t.programs.push(l.a.NukeProgram.name),a&&t.programs.push(l.a.BitFlume.name),t.scripts.forEach((function(a){a.updateRamUsage(e,t.scripts)})),t.messages.length=0,t.messages.push(c.a.HackersStartingHandbook)}function f(e,t){return t>e.serversOnNetwork.length?(console.error("Tried to get server on network that was out of range"),null):Object(n.d)(e.serversOnNetwork[t])}function g(e){return e instanceof r.a&&e.backdoorInstalled}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={BladesIntuition:"Blade's Intuition",Cloak:"Cloak",Marksman:"Marksman",WeaponProficiency:"Weapon Proficiency",ShortCircuit:"Short-Circuit",DigitalObserver:"Digital Observer",Tracer:"Tracer",Overclock:"Overclock",Reaper:"Reaper",EvasiveSystem:"Evasive System",Datamancer:"Datamancer",CybersEdge:"Cyber's Edge",HandsOfMidas:"Hands of Midas",Hyperdrive:"Hyperdrive"}},,function(e,t,a){"use strict";function n(e){return"string"==typeof e||e instanceof String}a.d(t,"a",(function(){return n}))},,function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(327),r=a(22);class o extends n.a{constructor(e=null){super(e),this.count=1}getActionTimePenalty(){return 1.5}getChaosCompetencePenalty(){return 1}getChaosDifficultyBonus(){return 1}toJSON(){return Object(r.b)("BlackOperation",this)}static fromJSON(e){return Object(r.a)(o,e.data)}}r.c.constructors.BlackOperation=o},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(4),o=a(111),i=a(135);const s=Object(o.a)(e=>Object(i.a)({unbuyable:{color:e.palette.action.disabled},money:{color:e.colors.money}}));function l(e){const t=s();return e.corp.funds>e.money?n.createElement("span",{className:t.money},r.a.formatMoney(e.money)):n.createElement("span",{className:t.unbuyable},r.a.formatMoney(e.money))}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),o=a(42),i=a(166),s=a(238),l=a(54),c=a(1);function u({rows:e,title:t,wide:a}){const n=a?s.a:o.a;return r.a.createElement(r.a.Fragment,null,t&&r.a.createElement(c.a,null,t),r.a.createElement(n,{size:"small",padding:"none"},r.a.createElement(i.a,null,e.map((e,t)=>r.a.createElement(l.a,{key:t},e.map((e,t)=>r.a.createElement(o.b,{key:t,align:0!==t?"right":"left"},r.a.createElement(c.a,{noWrap:!0},e))))))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return h}));var n=a(255),r=a(169),o=a(278),i=a(340),s=a(25),l=a(304),c=a(15),u=a(535),m=a(2);function h(e,t,a){if(null!=a&&"boolean"==typeof a||(a=!0),e instanceof n.a)return p(e),!0;if(e instanceof i.a&&"string"==typeof t){const n=d(e.pid,a);if(n)return n;for(const n of r.a.values())if(n.name==e.filename&&n.hostname==t&&Object(l.a)(n.args,e.args))return p(n,a),!0;return!1}return"number"==typeof e?d(e,a):(console.error("killWorkerScript() called with invalid argument:"),console.error(e),!1)}function d(e,t=!0){const a=r.a.get(e);return a instanceof n.a&&(p(a,t),!0)}function p(e,t=!0){if("function"==typeof e.atExit){try{e.atExit()}catch(t){Object(c.a)(`Error trying to call atExit for script ${e.name} on ${e.hostname} ${e.scriptRef.args} ${t}`)}e.atExit=void 0}e.env.stopFlag=!0,function(e){e instanceof n.a&&e.delay&&(clearTimeout(e.delay),e.delayReject&&e.delayReject(e))}(e),function(e,t=!0){const a=e.hostname,n=e.name,i=Object(s.d)(a);if(null==i)return void console.error("Could not find server on which this script is running: "+a);for(let t=0;tu("string"!=typeof t?t:0),size:"large"},r.a.createElement(i.a,null)))),endAdornment:r.a.createElement(r.a.Fragment,null,r.a.createElement(f.a,{title:"Remove"},r.a.createElement(c.a,{onClick:()=>h("string"!=typeof t?t:0),size:"large"},r.a.createElement(l.a,null))),r.a.createElement(f.a,{title:"Reset"},r.a.createElement(c.a,{onClick:g,size:"large"},r.a.createElement(m.a,null))))}}))}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return o}));var n=a(0);const r={Gang:a.n(n).a.createContext({})},o=()=>Object(n.useContext)(r.Gang)},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(22),r=a(32);const o={b:!0,initPrice:1e4,marketCap:1e12,mv:1,name:"",otlkMag:0,spreadPerc:0,shareTxForMovement:1e6,symbol:""};function i(e){let t;switch(typeof e){case"number":return e;case"object":{const a=e;t=Object(r.a)(a.min,a.max);break}default:throw Error(`Do not know how to convert the type '${typeof e}' to a number`)}return"object"==typeof e&&"number"==typeof e.divisor?t/e.divisor:t}class s{constructor(e=o){this.name=e.name,this.symbol=e.symbol,this.price=i(e.initPrice),this.lastPrice=this.price,this.playerShares=0,this.playerAvgPx=0,this.playerShortShares=0,this.playerAvgShortPx=0,this.mv=i(e.mv),this.b=e.b,this.otlkMag=e.otlkMag,this.otlkMagForecast=this.getAbsoluteForecast(),this.cap=Object(r.a)(1e3*this.price,25e3*this.price),this.spreadPerc=i(e.spreadPerc),this.shareTxForMovement=i(e.shareTxForMovement),this.shareTxUntilMovement=this.shareTxForMovement;const t=e.marketCap/this.price;this.totalShares=1e5*Math.round(t/1e5);this.maxShares=1e5*Math.round(.2*this.totalShares/1e5)}changeForecastForecast(e){this.otlkMagForecast=e,this.otlkMagForecast>100?this.otlkMagForecast=100:this.otlkMagForecast<0&&(this.otlkMagForecast=0)}changePrice(e){this.lastPrice=this.price,this.price=e}cycleForecast(e=.1){const t=this.getForecastIncreaseChance();Math.random()5&&(this.otlkMag=Math.max(5,this.otlkMag-e))}influenceForecastForecast(e){this.otlkMagForecast>50?(this.otlkMagForecast-=e,this.otlkMagForecast=Math.max(50,this.otlkMagForecast)):this.otlkMagForecast<50&&(this.otlkMagForecast+=e,this.otlkMagForecast=Math.min(50,this.otlkMagForecast))}toJSON(){return Object(n.b)("Stock",this)}static fromJSON(e){return Object(n.a)(s,e.data)}}n.c.constructors.Stock=s},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={}},,,function(e,t,a){"use strict";a.d(t,"e",(function(){return C})),a.d(t,"d",(function(){return w})),a.d(t,"c",(function(){return k})),a.d(t,"a",(function(){return _})),a.d(t,"b",(function(){return S}));var n=a(36),r=a(21),o=a(295),i=a(7),s=a(5),l=a(8),c=a(27),u=a(2),m=a(322),h=a(61),d=a(78),p=a(15),f=a(1188),g=a(345),y=a(0),b=a.n(y);function E(e){const t=e.name;r.a[t]=e}function k(){for(const e of Object.keys(c.a))c.a.hasOwnProperty(e)&&(c.a[e].augmentations=[]);Object(f.a)(r.a);const e=function(){const e=[{bonuses:{hacking_chance_mult:1.25,hacking_speed_mult:1.1,hacking_money_mult:1.25,hacking_grow_mult:1.1},description:"Increases the player's hacking chance by 25%.
Increases the player's hacking speed by 10%.
Increases the amount of money the player's gains from hacking by 25%.
Improves grow() by 10%."},{bonuses:{hacking_mult:1.15,hacking_exp_mult:2},description:"Increases the player's hacking skill by 15%.
Increases the player's hacking experience gain rate by 100%."},{bonuses:{strength_mult:1.25,strength_exp_mult:2,defense_mult:1.25,defense_exp_mult:2,dexterity_mult:1.25,dexterity_exp_mult:2,agility_mult:1.25,agility_exp_mult:2},description:"Increases all of the player's combat stats by 25%.
Increases all of the player's combat stat experience gain rate by 100%."},{bonuses:{charisma_mult:1.5,charisma_exp_mult:2},description:"This augmentation increases the player's charisma by 50%.
Increases the player's charisma experience gain rate by 100%."},{bonuses:{hacknet_node_money_mult:1.2,hacknet_node_purchase_cost_mult:.85,hacknet_node_ram_cost_mult:.85,hacknet_node_core_cost_mult:.85,hacknet_node_level_cost_mult:.85},description:"Increases the amount of money produced by Hacknet Nodes by 20%.
Decreases all costs related to Hacknet Node by 15%."},{bonuses:{company_rep_mult:1.25,faction_rep_mult:1.15,work_money_mult:1.7},description:"Increases the amount of money the player gains from working by 70%.
Increases the amount of reputation the player gains when working for a company by 25%.
Increases the amount of reputation the player gains for a faction by 15%."},{bonuses:{crime_success_mult:2,crime_money_mult:2},description:"Increases the player's crime success rate by 100%.
Increases the amount of money the player gains from crimes by 100%."}],t=new g.b(Math.floor(u.a.lastUpdate/36e5));for(let e=0;e<5;e++)t.step();return e[Math.floor(e.length*t.random())]}(),t={name:i.a.UnstableCircadianModulator,moneyCost:5e9,repCost:362500,info:"An experimental nanobot injection. Its unstable nature leads to unpredictable results based on your circadian rhythm."};Object.keys(e.bonuses).forEach(a=>t[a]=e.bonuses[a]);const a=new n.a(t);a.addToFactions(["Speakers for the Dead"]),S(i.a.UnstableCircadianModulator)&&delete r.a[i.a.UnstableCircadianModulator],E(a);const o=new n.a({name:i.a.HemoRecirculator,moneyCost:45e6,repCost:1e4,info:"A heart implant that greatly increases the body's ability to effectively use and pump blood.",strength_mult:1.08,defense_mult:1.08,agility_mult:1.08,dexterity_mult:1.08});o.addToFactions(["Tetrads","The Dark Army","The Syndicate"]),S(i.a.HemoRecirculator)&&delete r.a[i.a.HemoRecirculator],E(o);const m=new n.a({name:i.a.Targeting1,moneyCost:15e6,repCost:5e3,info:"A cranial implant that is embedded within the inner ear structures and optic nerves. It regulates and enhances balance and hand-eye coordination.",dexterity_mult:1.1});m.addToFactions(["Slum Snakes","The Dark Army","The Syndicate","Sector-12","Ishima","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(i.a.Targeting1)&&delete r.a[i.a.Targeting1],E(m);const p=new n.a({name:i.a.Targeting2,moneyCost:425e5,repCost:8750,info:"This upgraded version of the 'Augmented Targeting' implant is capable of augmenting reality by digitally displaying weaknesses and vital signs of threats.",prereqs:[i.a.Targeting1],dexterity_mult:1.2});p.addToFactions(["The Dark Army","The Syndicate","Sector-12","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(i.a.Targeting2)&&delete r.a[i.a.Targeting2],E(p);const y=new n.a({name:i.a.Targeting3,moneyCost:115e6,repCost:27500,info:"The latest version of the 'Augmented Targeting' implant adds the ability to lock-on and track threats.",prereqs:[i.a.Targeting2],dexterity_mult:1.3});y.addToFactions(["The Dark Army","The Syndicate","OmniTek Incorporated","KuaiGong International","Blade Industries","The Covenant"]),S(i.a.Targeting3)&&delete r.a[i.a.Targeting3],E(y);const k=new n.a({name:i.a.SyntheticHeart,moneyCost:2875e6,repCost:75e4,info:"This advanced artificial heart, created from plasteel and graphene, is capable of pumping blood more efficiently than an organic heart.",agility_mult:1.5,strength_mult:1.5});k.addToFactions(["KuaiGong International","Fulcrum Secret Technologies","Speakers for the Dead","NWO","The Covenant","Daedalus","Illuminati"]),S(i.a.SyntheticHeart)&&delete r.a[i.a.SyntheticHeart],E(k);const _=new n.a({name:i.a.SynfibrilMuscle,repCost:437500,moneyCost:1125e6,info:"The myofibrils in human muscles are injected with special chemicals that react with the proteins inside the myofibrils, altering their underlying structure. The end result is muscles that are stronger and more elastic. Scientists have named these artificially enhanced units 'synfibrils'.",strength_mult:1.3,defense_mult:1.3});_.addToFactions(["KuaiGong International","Fulcrum Secret Technologies","Speakers for the Dead","NWO","The Covenant","Daedalus","Illuminati","Blade Industries"]),S(i.a.SynfibrilMuscle)&&delete r.a[i.a.SynfibrilMuscle],E(_);const w=new n.a({name:i.a.CombatRib1,repCost:7500,moneyCost:2375e4,info:"The rib cage is augmented to continuously release boosters into the bloodstream which increase the oxygen-carrying capacity of blood.",strength_mult:1.1,defense_mult:1.1});w.addToFactions(["Slum Snakes","The Dark Army","The Syndicate","Volhaven","Ishima","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(i.a.CombatRib1)&&delete r.a[i.a.CombatRib1],E(w);const C=new n.a({name:i.a.CombatRib2,repCost:18750,moneyCost:65e6,info:"An upgraded version of the 'Combat Rib' augmentation that adds potent stimulants which improve focus and endurance while decreasing reaction time and fatigue.",prereqs:[i.a.CombatRib1],strength_mult:1.14,defense_mult:1.14});C.addToFactions(["The Dark Army","The Syndicate","Volhaven","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(i.a.CombatRib2)&&delete r.a[i.a.CombatRib2],E(C);const x=new n.a({name:i.a.CombatRib3,repCost:35e3,moneyCost:12e7,info:"The latest version of the 'Combat Rib' augmentation releases advanced anabolic steroids that improve muscle mass and physical performance while being safe and free of side effects.",prereqs:[i.a.CombatRib2],strength_mult:1.18,defense_mult:1.18});x.addToFactions(["The Dark Army","The Syndicate","OmniTek Incorporated","KuaiGong International","Blade Industries","The Covenant"]),S(i.a.CombatRib3)&&delete r.a[i.a.CombatRib3],E(x);const O=new n.a({name:i.a.NanofiberWeave,repCost:37500,moneyCost:125e6,info:"Synthetic nanofibers are woven into the skin's extracellular matrix using electrospinning, which improves its regenerative and extracellular homeostasis abilities.",strength_mult:1.2,defense_mult:1.2});O.addToFactions(["Tian Di Hui","The Syndicate","The Dark Army","Speakers for the Dead","Blade Industries","Fulcrum Secret Technologies","OmniTek Incorporated"]),S(i.a.NanofiberWeave)&&delete r.a[i.a.NanofiberWeave],E(O);const M=new n.a({name:i.a.SubdermalArmor,repCost:875e3,moneyCost:325e7,info:"The NEMEAN Subdermal Weave is a thin, light-weight, graphene plating that houses a dilatant fluid. The material is implanted underneath the skin, and is the most advanced form of defensive enhancement that has ever been created. The dilatant fluid, despite being thin and light, is extremely effective at stopping piercing blows and reducing blunt trauma. The properties of graphene allow the plating to mitigate damage from any fire or electrical traumas.",defense_mult:2.2});M.addToFactions(["The Syndicate","Fulcrum Secret Technologies","Illuminati","Daedalus","The Covenant"]),S(i.a.SubdermalArmor)&&delete r.a[i.a.SubdermalArmor],E(M);const T=new n.a({name:i.a.WiredReflexes,repCost:1250,moneyCost:25e5,info:"Synthetic nerve-enhancements are injected into all major parts of the somatic nervous system, supercharging the spread of neural signals and increasing reflex speed.",agility_mult:1.05,dexterity_mult:1.05});T.addToFactions(["Tian Di Hui","Slum Snakes","Sector-12","Volhaven","Aevum","Ishima","The Syndicate","The Dark Army","Speakers for the Dead"]),S(i.a.WiredReflexes)&&delete r.a[i.a.WiredReflexes],E(T);const R=new n.a({name:i.a.GrapheneBoneLacings,repCost:1125e3,moneyCost:425e7,info:"Graphene is grafted and fused into the skeletal structure, enhancing bone density and tensile strength.",strength_mult:1.7,defense_mult:1.7});R.addToFactions(["Fulcrum Secret Technologies","The Covenant"]),S(i.a.GrapheneBoneLacings)&&delete r.a[i.a.GrapheneBoneLacings],E(R);const A=new n.a({name:i.a.BionicSpine,repCost:45e3,moneyCost:125e6,info:"The spine is reconstructed using plasteel and carbon fibers. It is now capable of stimulating and regulating neural signals passing through the spinal cord, improving senses and reaction speed. The 'Bionic Spine' also interfaces with all other 'Bionic' implants.",strength_mult:1.15,defense_mult:1.15,agility_mult:1.15,dexterity_mult:1.15});A.addToFactions(["Speakers for the Dead","The Syndicate","KuaiGong International","OmniTek Incorporated","Blade Industries"]),S(i.a.BionicSpine)&&delete r.a[i.a.BionicSpine],E(A);const N=new n.a({name:i.a.GrapheneBionicSpine,repCost:1625e3,moneyCost:6e9,info:"An upgrade to the 'Bionic Spine' augmentation. The spine is fused with graphene which enhances durability and supercharges all body functions.",prereqs:[i.a.BionicSpine],strength_mult:1.6,defense_mult:1.6,agility_mult:1.6,dexterity_mult:1.6});N.addToFactions(["Fulcrum Secret Technologies","ECorp"]),S(i.a.GrapheneBionicSpine)&&delete r.a[i.a.GrapheneBionicSpine],E(N);const P=new n.a({name:i.a.BionicLegs,repCost:15e4,moneyCost:375e6,info:"Cybernetic legs, created from plasteel and carbon fibers, enhance running speed.",agility_mult:1.6});P.addToFactions(["Speakers for the Dead","The Syndicate","KuaiGong International","OmniTek Incorporated","Blade Industries"]),S(i.a.BionicLegs)&&delete r.a[i.a.BionicLegs],E(P);const I=new n.a({name:i.a.GrapheneBionicLegs,repCost:75e4,moneyCost:45e8,info:"An upgrade to the 'Bionic Legs' augmentation. The legs are fused with graphene, greatly enhancing jumping ability.",prereqs:[i.a.BionicLegs],agility_mult:2.5});I.addToFactions(["MegaCorp","ECorp","Fulcrum Secret Technologies"]),S(i.a.GrapheneBionicLegs)&&delete r.a[i.a.GrapheneBionicLegs],E(I);const F=new n.a({name:i.a.SpeechProcessor,repCost:7500,moneyCost:5e7,info:"A cochlear implant with an embedded computer that analyzes incoming speech. The embedded computer processes characteristics of incoming speech, such as tone and inflection, to pick up on subtle cues and aid in social interactions.",charisma_mult:1.2});F.addToFactions(["Tian Di Hui","Chongqing","Sector-12","New Tokyo","Aevum","Ishima","Volhaven","Silhouette"]),S(i.a.SpeechProcessor)&&delete r.a[i.a.SpeechProcessor],E(F);const D=new n.a({name:i.a.TITN41Injection,repCost:25e3,moneyCost:19e7,info:"TITN is a series of viruses that targets and alters the sequences of human DNA in genes that control personality. The TITN-41 strain alters these genes so that the subject becomes more outgoing and socialable.",charisma_mult:1.15,charisma_exp_mult:1.15});D.addToFactions(["Silhouette"]),S(i.a.TITN41Injection)&&delete r.a[i.a.TITN41Injection],E(D);const j=new n.a({name:i.a.EnhancedSocialInteractionImplant,repCost:375e3,moneyCost:1375e6,info:"A cranial implant that greatly assists in the user's ability to analyze social situations and interactions. The system uses a wide variety of factors such as facial expressions, body language, and the voice tone, and inflection to determine the best course of action during socialsituations. The implant also uses deep learning software to continuously learn new behaviorpatterns and how to best respond.",charisma_mult:1.6,charisma_exp_mult:1.6});j.addToFactions(["Bachman & Associates","NWO","Clarke Incorporated","OmniTek Incorporated","Four Sigma"]),S(i.a.EnhancedSocialInteractionImplant)&&delete r.a[i.a.EnhancedSocialInteractionImplant],E(j);const B=new n.a({name:i.a.BitWire,repCost:3750,moneyCost:1e7,info:"A small brain implant embedded in the cerebrum. This regulates and improves the brain's computing capabilities.",hacking_mult:1.05});B.addToFactions(["CyberSec","NiteSec"]),S(i.a.BitWire)&&delete r.a[i.a.BitWire],E(B);const G=new n.a({name:i.a.ArtificialBioNeuralNetwork,repCost:275e3,moneyCost:3e9,info:"A network consisting of millions of nanoprocessors is embedded into the brain. The network is meant to mimic the way a biological brain solves a problem, with each nanoprocessor acting similar to the way a neuron would in a neural network. However, these nanoprocessors are programmed to perform computations much faster than organic neurons, allowing the user to solve much more complex problems at a much faster rate.",hacking_speed_mult:1.03,hacking_money_mult:1.15,hacking_mult:1.12});G.addToFactions(["BitRunners","Fulcrum Secret Technologies"]),S(i.a.ArtificialBioNeuralNetwork)&&delete r.a[i.a.ArtificialBioNeuralNetwork],E(G);const L=new n.a({name:i.a.ArtificialSynapticPotentiation,repCost:6250,moneyCost:8e7,info:"The body is injected with a chemical that artificially induces synaptic potentiation, otherwise known as the strengthening of synapses. This results in enhanced cognitive abilities.",hacking_speed_mult:1.02,hacking_chance_mult:1.05,hacking_exp_mult:1.05});L.addToFactions(["The Black Hand","NiteSec"]),S(i.a.ArtificialSynapticPotentiation)&&delete r.a[i.a.ArtificialSynapticPotentiation],E(L);const W=new n.a({name:i.a.EnhancedMyelinSheathing,repCost:1e5,moneyCost:1375e6,info:"Electrical signals are used to induce a new, artificial form of myelinogenesis in the human body. This process results in the proliferation of new, synthetic myelin sheaths in the nervous system. These myelin sheaths can propogate neuro-signals much faster than their organic counterparts, leading to greater processing speeds and better brain function.",hacking_speed_mult:1.03,hacking_exp_mult:1.1,hacking_mult:1.08});W.addToFactions(["Fulcrum Secret Technologies","BitRunners","The Black Hand"]),S(i.a.EnhancedMyelinSheathing)&&delete r.a[i.a.EnhancedMyelinSheathing],E(W);const H=new n.a({name:i.a.SynapticEnhancement,repCost:2e3,moneyCost:75e5,info:"A small cranial implant that continuously uses weak electrical signals to stimulate the brain and induce stronger synaptic activity. This improves the user's cognitive abilities.",hacking_speed_mult:1.03});H.addToFactions(["CyberSec","Aevum"]),S(i.a.SynapticEnhancement)&&delete r.a[i.a.SynapticEnhancement],E(H);const U=new n.a({name:i.a.NeuralRetentionEnhancement,repCost:2e4,moneyCost:25e7,info:"Chemical injections are used to permanently alter and strengthen the brain's neuronal circuits, strengthening the ability to retain information.",hacking_exp_mult:1.25});U.addToFactions(["NiteSec"]),S(i.a.NeuralRetentionEnhancement)&&delete r.a[i.a.NeuralRetentionEnhancement],E(U);const q=new n.a({name:i.a.DataJack,repCost:112500,moneyCost:45e7,info:"A brain implant that provides an interface for direct, wireless communication between a computer's main memory and the mind. This implant allows the user to not only access a computer's memory, but also alter and delete it.",hacking_money_mult:1.25});q.addToFactions(["BitRunners","The Black Hand","NiteSec","Chongqing","New Tokyo"]),S(i.a.DataJack)&&delete r.a[i.a.DataJack],E(q);const K=new n.a({name:i.a.ENM,repCost:15e3,moneyCost:25e7,info:"A thin device embedded inside the arm containing a wireless module capable of connecting to nearby networks. Once connected, the Netburner Module is capable of capturing and processing all of the traffic on that network. By itself, the Embedded Netburner Module does not do much, but a variety of very powerful upgrades can be installed that allow you to fully control the traffic on a network.",hacking_mult:1.08});K.addToFactions(["BitRunners","The Black Hand","NiteSec","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries"]),S(i.a.ENM)&&delete r.a[i.a.ENM],E(K);const $=new n.a({name:i.a.ENMCore,repCost:175e3,moneyCost:25e8,info:"The Core library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgrade allows the Embedded Netburner Module to generate its own data on a network.",prereqs:[i.a.ENM],hacking_speed_mult:1.03,hacking_money_mult:1.1,hacking_chance_mult:1.03,hacking_exp_mult:1.07,hacking_mult:1.07});$.addToFactions(["BitRunners","The Black Hand","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries"]),S(i.a.ENMCore)&&delete r.a[i.a.ENMCore],E($);const z=new n.a({name:i.a.ENMCoreV2,repCost:1e6,moneyCost:45e8,info:"The Core V2 library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgraded firmware allows the Embedded Netburner Module to control information on a network by re-routing traffic, spoofing IP addresses, and altering the data inside network packets.",prereqs:[i.a.ENMCore],hacking_speed_mult:1.05,hacking_money_mult:1.3,hacking_chance_mult:1.05,hacking_exp_mult:1.15,hacking_mult:1.08});z.addToFactions(["BitRunners","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries","OmniTek Incorporated","KuaiGong International"]),S(i.a.ENMCoreV2)&&delete r.a[i.a.ENMCoreV2],E(z);const V=new n.a({name:i.a.ENMCoreV3,repCost:175e4,moneyCost:75e8,info:"The Core V3 library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgraded firmware allows the Embedded Netburner Module to seamlessly inject code into any device on a network.",prereqs:[i.a.ENMCoreV2],hacking_speed_mult:1.05,hacking_money_mult:1.4,hacking_chance_mult:1.1,hacking_exp_mult:1.25,hacking_mult:1.1});V.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(i.a.ENMCoreV3)&&delete r.a[i.a.ENMCoreV3],E(V);const Y=new n.a({name:i.a.ENMAnalyzeEngine,repCost:625e3,moneyCost:6e9,info:"Installs the Analyze Engine for the Embedded Netburner Module, which is a CPU cluster that vastly outperforms the Netburner Module's native single-core processor.",prereqs:[i.a.ENM],hacking_speed_mult:1.1});Y.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(i.a.ENMAnalyzeEngine)&&delete r.a[i.a.ENMAnalyzeEngine],E(Y);const J=new n.a({name:i.a.ENMDMA,repCost:1e6,moneyCost:7e9,info:"This implant installs a Direct Memory Access (DMA) controller into the Embedded Netburner Module. This allows the Module to send and receive data directly to and from the main memory of devices on a network.",prereqs:[i.a.ENM],hacking_money_mult:1.4,hacking_chance_mult:1.2});J.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(i.a.ENMDMA)&&delete r.a[i.a.ENMDMA],E(J);const X=new n.a({name:i.a.Neuralstimulator,repCost:5e4,moneyCost:3e9,info:"A cranial implant that intelligently stimulates certain areas of the brain in order to improve cognitive functions.",hacking_speed_mult:1.02,hacking_chance_mult:1.1,hacking_exp_mult:1.12});X.addToFactions(["The Black Hand","Chongqing","Sector-12","New Tokyo","Aevum","Ishima","Volhaven","Bachman & Associates","Clarke Incorporated","Four Sigma"]),S(i.a.Neuralstimulator)&&delete r.a[i.a.Neuralstimulator],E(X);const Q=new n.a({name:i.a.NeuralAccelerator,repCost:2e5,moneyCost:175e7,info:"A microprocessor that accelerates the processing speed of biological neural networks. This is a cranial implant that is embedded inside the brain.",hacking_mult:1.1,hacking_exp_mult:1.15,hacking_money_mult:1.2});Q.addToFactions(["BitRunners"]),S(i.a.NeuralAccelerator)&&delete r.a[i.a.NeuralAccelerator],E(Q);const Z=new n.a({name:i.a.CranialSignalProcessorsG1,repCost:1e4,moneyCost:7e7,info:"The first generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",hacking_speed_mult:1.01,hacking_mult:1.05});Z.addToFactions(["CyberSec"]),S(i.a.CranialSignalProcessorsG1)&&delete r.a[i.a.CranialSignalProcessorsG1],E(Z);const ee=new n.a({name:i.a.CranialSignalProcessorsG2,repCost:18750,moneyCost:125e6,info:"The second generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[i.a.CranialSignalProcessorsG1],hacking_speed_mult:1.02,hacking_chance_mult:1.05,hacking_mult:1.07});ee.addToFactions(["CyberSec","NiteSec"]),S(i.a.CranialSignalProcessorsG2)&&delete r.a[i.a.CranialSignalProcessorsG2],E(ee);const te=new n.a({name:i.a.CranialSignalProcessorsG3,repCost:5e4,moneyCost:55e7,info:"The third generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[i.a.CranialSignalProcessorsG2],hacking_speed_mult:1.02,hacking_money_mult:1.15,hacking_mult:1.09});te.addToFactions(["NiteSec","The Black Hand","BitRunners"]),S(i.a.CranialSignalProcessorsG3)&&delete r.a[i.a.CranialSignalProcessorsG3],E(te);const ae=new n.a({name:i.a.CranialSignalProcessorsG4,repCost:125e3,moneyCost:11e8,info:"The fourth generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[i.a.CranialSignalProcessorsG3],hacking_speed_mult:1.02,hacking_money_mult:1.2,hacking_grow_mult:1.25});ae.addToFactions(["The Black Hand","BitRunners"]),S(i.a.CranialSignalProcessorsG4)&&delete r.a[i.a.CranialSignalProcessorsG4],E(ae);const ne=new n.a({name:i.a.CranialSignalProcessorsG5,repCost:25e4,moneyCost:225e7,info:"The fifth generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[i.a.CranialSignalProcessorsG4],hacking_mult:1.3,hacking_money_mult:1.25,hacking_grow_mult:1.75});ne.addToFactions(["BitRunners"]),S(i.a.CranialSignalProcessorsG5)&&delete r.a[i.a.CranialSignalProcessorsG5],E(ne);const re=new n.a({name:i.a.NeuronalDensification,repCost:187500,moneyCost:1375e6,info:"The brain is surgically re-engineered to have increased neuronal density by decreasing the neuron gap junction. Then, the body is genetically modified to enhance the production and capabilities of its neural stem cells.",hacking_mult:1.15,hacking_exp_mult:1.1,hacking_speed_mult:1.03});re.addToFactions(["Clarke Incorporated"]),S(i.a.NeuronalDensification)&&delete r.a[i.a.NeuronalDensification],E(re);const oe=new n.a({name:i.a.NuoptimalInjectorImplant,repCost:5e3,moneyCost:2e7,info:"This torso implant automatically injects nootropic supplements into the bloodstream to improve memory, increase focus, and provide other cognitive enhancements.",company_rep_mult:1.2});oe.addToFactions(["Tian Di Hui","Volhaven","New Tokyo","Chongqing","Clarke Incorporated","Four Sigma","Bachman & Associates"]),S(i.a.NuoptimalInjectorImplant)&&delete r.a[i.a.NuoptimalInjectorImplant],E(oe);const ie=new n.a({name:i.a.SpeechEnhancement,repCost:2500,moneyCost:125e5,info:"An advanced neural implant that improves your speaking abilities, making you more convincing and likable in conversations and overall improving your social interactions.",company_rep_mult:1.1,charisma_mult:1.1});ie.addToFactions(["Tian Di Hui","Speakers for the Dead","Four Sigma","KuaiGong International","Clarke Incorporated","Bachman & Associates"]),S(i.a.SpeechEnhancement)&&delete r.a[i.a.SpeechEnhancement],E(ie);const se=new n.a({name:i.a.FocusWire,repCost:75e3,moneyCost:9e8,info:"A cranial implant that stops procrastination by blocking specific neural pathways in the brain.",hacking_exp_mult:1.05,strength_exp_mult:1.05,defense_exp_mult:1.05,dexterity_exp_mult:1.05,agility_exp_mult:1.05,charisma_exp_mult:1.05,company_rep_mult:1.1,work_money_mult:1.2});se.addToFactions(["Bachman & Associates","Clarke Incorporated","Four Sigma","KuaiGong International"]),S(i.a.FocusWire)&&delete r.a[i.a.FocusWire],E(se);const le=new n.a({name:i.a.PCDNI,repCost:375e3,moneyCost:375e7,info:"Installs a Direct-Neural Interface jack into your arm that is compatible with most computers. Connecting to a computer through this jack allows you to interface with it using the brain's electrochemical signals.",company_rep_mult:1.3,hacking_mult:1.08});le.addToFactions(["Four Sigma","OmniTek Incorporated","ECorp","Blade Industries"]),S(i.a.PCDNI)&&delete r.a[i.a.PCDNI],E(le);const ce=new n.a({name:i.a.PCDNIOptimizer,repCost:5e5,moneyCost:45e8,info:"This is a submodule upgrade to the PC Direct-Neural Interface augmentation. It improves the performance of the interface and gives the user more control options to a connected computer.",prereqs:[i.a.PCDNI],company_rep_mult:1.75,hacking_mult:1.1});ce.addToFactions(["Fulcrum Secret Technologies","ECorp","Blade Industries"]),S(i.a.PCDNIOptimizer)&&delete r.a[i.a.PCDNIOptimizer],E(ce);const ue=new n.a({name:i.a.PCDNINeuralNetwork,repCost:15e5,moneyCost:75e8,info:"This is an additional installation that upgrades the functionality of the PC Direct-Neural Interface augmentation. When connected to a computer, The Neural Network upgrade allows the user to use their own brain's processing power to aid the computer in computational tasks.",prereqs:[i.a.PCDNI],company_rep_mult:2,hacking_mult:1.1,hacking_speed_mult:1.05});ue.addToFactions(["Fulcrum Secret Technologies"]),S(i.a.PCDNINeuralNetwork)&&delete r.a[i.a.PCDNINeuralNetwork],E(ue);const me=new n.a({name:i.a.ADRPheromone1,repCost:3750,moneyCost:175e5,info:"The body is genetically re-engineered so that it produces the ADR-V1 pheromone, an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, triggers feelings of admiration and approval in other people.",company_rep_mult:1.1,faction_rep_mult:1.1});me.addToFactions(["Tian Di Hui","The Syndicate","NWO","MegaCorp","Four Sigma"]),S(i.a.ADRPheromone1)&&delete r.a[i.a.ADRPheromone1],E(me);const he=new n.a({name:i.a.ADRPheromone2,repCost:62500,moneyCost:55e7,info:"The body is genetically re-engineered so that it produces the ADR-V2 pheromone, which is similar to but more potent than ADR-V1. This pheromone, when excreted, triggers feelings of admiration, approval, and respect in others.",company_rep_mult:1.2,faction_rep_mult:1.2});he.addToFactions(["Silhouette","Four Sigma","Bachman & Associates","Clarke Incorporated"]),S(i.a.ADRPheromone2)&&delete r.a[i.a.ADRPheromone2],E(he);const de=new n.a({name:i.a.ShadowsSimulacrum,repCost:37500,moneyCost:4e8,info:"A crude but functional matter phase-shifter module that is embedded in the brainstem and cerebellum. This augmentation was developed by criminal organizations and allows the user to project and control holographic simulacrums within a large radius. These simulacrums are commonly used for espionage and surveillance work.",company_rep_mult:1.15,faction_rep_mult:1.15});de.addToFactions(["The Syndicate","The Dark Army","Speakers for the Dead"]),S(i.a.ShadowsSimulacrum)&&delete r.a[i.a.ShadowsSimulacrum],E(de);const pe=new n.a({name:i.a.HacknetNodeCPUUpload,repCost:3750,moneyCost:11e6,info:"Uploads the architecture and design details of a Hacknet Node's CPU into the brain. This allows the user to engineer custom hardware and software for the Hacknet Node that provides better performance.",hacknet_node_money_mult:1.15,hacknet_node_purchase_cost_mult:.85});pe.addToFactions(["Netburners"]),S(i.a.HacknetNodeCPUUpload)&&delete r.a[i.a.HacknetNodeCPUUpload],E(pe);const fe=new n.a({name:i.a.HacknetNodeCacheUpload,repCost:2500,moneyCost:55e5,info:"Uploads the architecture and design details of a Hacknet Node's main-memory cache into the brain. This allows the user to engineer custom cache hardware for the Hacknet Node that offers better performance.",hacknet_node_money_mult:1.1,hacknet_node_level_cost_mult:.85});fe.addToFactions(["Netburners"]),S(i.a.HacknetNodeCacheUpload)&&delete r.a[i.a.HacknetNodeCacheUpload],E(fe);const ge=new n.a({name:i.a.HacknetNodeNICUpload,repCost:1875,moneyCost:45e5,info:"Uploads the architecture and design details of a Hacknet Node's Network Interface Card (NIC) into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that offers better performance.",hacknet_node_money_mult:1.1,hacknet_node_purchase_cost_mult:.9});ge.addToFactions(["Netburners"]),S(i.a.HacknetNodeNICUpload)&&delete r.a[i.a.HacknetNodeNICUpload],E(ge);const ye=new n.a({name:i.a.HacknetNodeKernelDNI,repCost:7500,moneyCost:4e7,info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a Hacknet Node. This lets the user access and manipulate the Node's kernel using electrochemical signals.",hacknet_node_money_mult:1.25});ye.addToFactions(["Netburners"]),S(i.a.HacknetNodeKernelDNI)&&delete r.a[i.a.HacknetNodeKernelDNI],E(ye);const be=new n.a({name:i.a.HacknetNodeCoreDNI,repCost:12500,moneyCost:6e7,info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a Hacknet Node. This lets the user access and manipulate the Node's processing logic using electrochemical signals.",hacknet_node_money_mult:1.45});be.addToFactions(["Netburners"]),S(i.a.HacknetNodeCoreDNI)&&delete r.a[i.a.HacknetNodeCoreDNI],E(be);const Ee=new n.a({name:i.a.NeuroFluxGovernor,repCost:1250,moneyCost:375e4,info:"A device that is embedded in the back of the neck. The NeuroFlux Governor monitors and regulates nervous impulses coming to and from the spinal column, essentially 'governing' the body. By doing so, it improves the functionality of the body's nervous system.",stats:b.a.createElement(b.a.Fragment,null,"This special augmentation can be leveled up infinitely. Each level of this augmentation increases MOST multipliers by 1%, stacking multiplicatively."),hacking_chance_mult:1.01,hacking_speed_mult:1.01,hacking_money_mult:1.01,hacking_grow_mult:1.01,hacking_mult:1.01,strength_mult:1.01,defense_mult:1.01,dexterity_mult:1.01,agility_mult:1.01,charisma_mult:1.01,hacking_exp_mult:1.01,strength_exp_mult:1.01,defense_exp_mult:1.01,dexterity_exp_mult:1.01,agility_exp_mult:1.01,charisma_exp_mult:1.01,company_rep_mult:1.01,faction_rep_mult:1.01,crime_money_mult:1.01,crime_success_mult:1.01,hacknet_node_money_mult:1.01,hacknet_node_purchase_cost_mult:.99,hacknet_node_ram_cost_mult:.99,hacknet_node_core_cost_mult:.99,hacknet_node_level_cost_mult:.99,work_money_mult:1.01});let ke=0;for(let e=0;e=0;e--)if(u.a.queuedAugmentations[e].name===i.a.NeuroFluxGovernor){t=e;break}for(let a=0;a"}return u.a.queuedAugmentations=[],Object(p.a)("You slowly drift to sleep as scientists put you under in order to install the following Augmentations:
"+e+"
You wake up in your home...you feel different..."),Object(m.a)(),!0}function S(e){return r.a.hasOwnProperty(e)}function C(e){return(e instanceof n.a?e.name:e)===i.a.NeuroFluxGovernor}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return i})),a.d(t,"d",(function(){return s})),a.d(t,"f",(function(){return l})),a.d(t,"e",(function(){return c})),a.d(t,"g",(function(){return h})),a.d(t,"h",(function(){return d}));var n=a(83);let r={},o={};function i(e){r=""===e?{}:JSON.parse(e)}function s(e){o=""===e?{}:JSON.parse(e)}function l(){for(const e of Object.keys(r))r.hasOwnProperty(e)&&n.a.print("alias "+e+"="+r[e]);for(const e of Object.keys(o))o.hasOwnProperty(e)&&n.a.print("global alias "+e+"="+o[e])}function c(e,t=!1){const a=e.match(/^([\w|!|%|,|@|-]+)=(("(.+)")|('(.+)'))$/);return null!=a&&7==a.length&&(t?function(e,t){e in r&&delete r[e];o[e]=t.trim()}(a[1],a[4]||a[6]):function(e,t){e in o&&delete o[e];r[e]=t.trim()}(a[1],a[4]||a[6]),!0)}function u(e){return r.hasOwnProperty(e)?r[e]:null}function m(e){return o.hasOwnProperty(e)?o[e]:null}function h(e){return r.hasOwnProperty(e)?(delete r[e],!0):!!o.hasOwnProperty(e)&&(delete o[e],!0)}function d(e){const t=e.split(" ");if(t.length>0){if("unalias"===t[0]||"alias"===t[0])return t.join(" ");let e=!0,r=0;for(;e&&r<10;){var a;r++,e=!1;const o=null===(a=u(t[0]))||void 0===a?void 0:a.split(" ");null!=o&&(e=!0,t.splice(0,1,...o));for(let a=0;aa(!1),1e3)}},e.value))}},function(e,t,a){"use strict";a.d(t,"c",(function(){return T})),a.d(t,"b",(function(){return x})),a.d(t,"a",(function(){return M}));var n=a(145),r=a(62),o=a(8),i=a(27),s=a(68),l=a(254),c=a(2),u=a(25),m=a(11),h=a(78),d=a(94),p=a(110),f=a(179),g=a(325),y=a(15),b=a(22),E=a(296),k=a(858),v=a(7),_=a(295),w=a(9);function S(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class C{constructor(){S(this,"PlayerSave",""),S(this,"AllServersSave",""),S(this,"CompaniesSave",""),S(this,"FactionsSave",""),S(this,"AliasesSave",""),S(this,"GlobalAliasesSave",""),S(this,"MessagesSave",""),S(this,"StockMarketSave",""),S(this,"SettingsSave",""),S(this,"VersionSave",""),S(this,"AllGangsSave",""),S(this,"LastExportBonus",""),S(this,"StaneksGiftSave",""),S(this,"SaveTimestamp","")}getSaveString(e=!1){this.PlayerSave=JSON.stringify(c.a),this.AllServersSave=Object(u.j)(e),this.CompaniesSave=JSON.stringify(r.a),this.FactionsSave=JSON.stringify(i.a),this.AliasesSave=JSON.stringify(n.a),this.GlobalAliasesSave=JSON.stringify(n.b),this.MessagesSave=JSON.stringify(l.a),this.StockMarketSave=JSON.stringify(d.a),this.SettingsSave=JSON.stringify(m.a),this.VersionSave=JSON.stringify(o.a.VersionNumber),this.LastExportBonus=JSON.stringify(g.a),this.StaneksGiftSave=JSON.stringify(p.b),this.SaveTimestamp=(new Date).getTime().toString(),c.a.inGang()&&(this.AllGangsSave=JSON.stringify(s.a));return btoa(unescape(encodeURIComponent(JSON.stringify(this))))}saveGame(e=!0){const t=this.getSaveString(m.a.ExcludeRunningScriptsFromSave);Object(E.c)(t).then(()=>{e&&f.b.emit("Game Saved!","info",2e3)}).catch(e=>console.error(e))}exportGame(){const e=this.getSaveString(m.a.ExcludeRunningScriptsFromSave),t=Math.round(Date.now()/1e3),a=c.a.bitNodeN;M(`bitburnerSave_${t}_BN${a}x${h.a[a]}.json`,e)}toJSON(){return Object(b.b)("BitburnerSaveObject",this)}static fromJSON(e){return Object(b.a)(C,e.data)}}function x(e){if(!e)return!1;e=decodeURIComponent(escape(atob(e)));const t=JSON.parse(e,b.c);if(Object(c.b)(t.PlayerSave),Object(u.h)(t.AllServersSave),Object(r.c)(t.CompaniesSave),Object(i.d)(t.FactionsSave),t.hasOwnProperty("StaneksGiftSave")?Object(p.a)(t.StaneksGiftSave):(console.warn("Could not load Staneks Gift from save"),Object(p.a)("")),t.hasOwnProperty("AliasesSave"))try{Object(n.c)(t.AliasesSave)}catch(e){console.warn("Could not load Aliases from save"),Object(n.c)("")}else console.warn("Save file did not contain an Aliases property"),Object(n.c)("");if(t.hasOwnProperty("GlobalAliasesSave"))try{Object(n.d)(t.GlobalAliasesSave)}catch(e){console.warn("Could not load GlobalAliases from save"),Object(n.d)("")}else console.warn("Save file did not contain a GlobalAliases property"),Object(n.d)("");if(t.hasOwnProperty("MessagesSave"))try{Object(l.d)(t.MessagesSave)}catch(e){console.warn("Could not load Messages from save"),Object(l.c)()}else console.warn("Save file did not contain a Messages property"),Object(l.c)();if(t.hasOwnProperty("StockMarketSave"))try{Object(d.i)(t.StockMarketSave)}catch(e){Object(d.i)("")}else Object(d.i)("");if(t.hasOwnProperty("SettingsSave"))try{m.a.load(t.SettingsSave)}catch(e){console.error("ERROR: Failed to parse Settings. Re-initing default values"),m.a.init()}else m.a.init();if(t.hasOwnProperty("LastExportBonus"))try{g.d(JSON.parse(t.LastExportBonus))}catch(e){g.d((new Date).getTime()),console.error("ERROR: Failed to parse last export bonus Settings "+e)}if(c.a.inGang()&&t.hasOwnProperty("AllGangsSave"))try{Object(s.b)(t.AllGangsSave)}catch(e){console.error("ERROR: Failed to parse AllGangsSave: "+e)}if(t.hasOwnProperty("VersionSave"))try{const e=JSON.parse(t.VersionSave,b.c);!function(e){const t=c.a;if("string"==typeof e){if(e<="0.41.2"){null!=t.companyPosition&&"string"!=typeof t.companyPosition&&(t.companyPosition=t.companyPosition.data.positionName,null==t.companyPosition&&(t.companyPosition=""));for(const e of Object.keys(r.a)){const t=r.a[e];if(0==t.name&&null!=t.companyName&&(t.name=t.companyName),t.companyPositions instanceof Array){const e={};for(let a=0;ae.name===v.a.NeuroFluxGovernor);if(e)e.level+=10;else{const e=new _.a(v.a.NeuroFluxGovernor);e.level=10,c.a.augmentations.push(e)}c.a.reapplyAllAugmentations(!0),c.a.reapplyAllSourceFiles()}if(e<3&&(t.money=parseFloat(t.money),t.corporation)){t.corporation.funds=parseFloat(t.corporation.funds),t.corporation.revenue=parseFloat(t.corporation.revenue),t.corporation.expenses=parseFloat(t.corporation.expenses);for(let e=0;e0)for(const e of t.sleeves)if(e.augmentations&&0!==e.augmentations.length)for(const t of e.augmentations)"Graphene BranchiBlades Upgrade"===t.name&&(t.name="Graphene BrachiBlades Upgrade")}}(e),window.location.href.toLowerCase().includes("bitburner-beta")?Object(y.a)("You are playing on the beta environment! This branch of the game features the latest developments in the game. This version may be unstable.
Please report any bugs/issues through the github repository (https://github.com/danielyxie/bitburner/issues) or the Bitburner subreddit (reddit.com/r/bitburner).

"+o.a.LatestUpdate):e!==o.a.VersionNumber&&O()}catch(e){O()}else O();return!0}function O(){setTimeout(()=>Object(y.a)("New update!
Please report any bugs/issues through the github repository or the Bitburner subreddit (reddit.com/r/bitburner).

"+o.a.LatestUpdate),1e3)}function M(e,t){const a=new Blob([t],{type:"text/plain"}),n=window.navigator;if(n.msSaveOrOpenBlob)n.msSaveOrOpenBlob(a,e);else{const t=document.createElement("a"),n=URL.createObjectURL(a);t.href=n,t.download=e,document.body.appendChild(t),t.click(),setTimeout((function(){document.body.removeChild(t),window.URL.revokeObjectURL(n)}),0)}}b.c.constructors.BitburnerSaveObject=C;const T=new C},function(e,t,a){"use strict";function n(e,t=1){return Math.max(Math.floor(t*(32*Math.log(e+534.5)-200)),1)}function r(e,t=1){return Math.exp((e/t+200)/32)-534.6}function o(e,t=1){const a=n(e,t),o=a+1;let i=r(a,t);i<0&&(i=0);let s=r(o,t);s<0&&(s=0);let l=s-i!=0?100*(e-i)/(s-i):99.99;l<0&&(l=0),l>100&&(l=100);let c=e-i,u=s-e;return c<0&&(c=0),u<0&&(u=0),{currentSkill:a,nextSkill:o,baseExperience:i,experience:e,nextExperience:s,currentExperience:c,remainingExperience:u,progress:l}}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r})),a.d(t,"c",(function(){return o}))},,function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return r})),function(e){e.Weapon="w",e.Armor="a",e.Vehicle="v",e.Rootkit="r",e.Augmentation="g"}(n||(n={}));const r=[{cost:1e6,mults:{str:1.04,def:1.04},name:"Baseball Bat",upgType:n.Weapon},{cost:12e6,mults:{str:1.08,def:1.08,dex:1.08},name:"Katana",upgType:n.Weapon},{cost:25e6,mults:{str:1.1,def:1.1,dex:1.1,agi:1.1},name:"Glock 18C",upgType:n.Weapon},{cost:5e7,mults:{str:1.12,def:1.1,agi:1.1},name:"P90C",upgType:n.Weapon},{cost:6e7,mults:{str:1.2,def:1.15},name:"Steyr AUG",upgType:n.Weapon},{cost:1e8,mults:{str:1.25,def:1.2},name:"AK-47",upgType:n.Weapon},{cost:15e7,mults:{str:1.3,def:1.25},name:"M15A10 Assault Rifle",upgType:n.Weapon},{cost:225e6,mults:{str:1.3,dex:1.25,agi:1.3},name:"AWM Sniper Rifle",upgType:n.Weapon},{cost:2e6,mults:{def:1.04},name:"Bulletproof Vest",upgType:n.Armor},{cost:5e6,mults:{def:1.08},name:"Full Body Armor",upgType:n.Armor},{cost:25e6,mults:{def:1.15,agi:1.15},name:"Liquid Body Armor",upgType:n.Armor},{cost:4e7,mults:{def:1.2},name:"Graphene Plating Armor",upgType:n.Armor},{cost:3e6,mults:{agi:1.04,cha:1.04},name:"Ford Flex V20",upgType:n.Vehicle},{cost:9e6,mults:{agi:1.08,cha:1.08},name:"ATX1070 Superbike",upgType:n.Vehicle},{cost:18e6,mults:{agi:1.12,cha:1.12},name:"Mercedes-Benz S9001",upgType:n.Vehicle},{cost:3e7,mults:{agi:1.16,cha:1.16},name:"White Ferrari",upgType:n.Vehicle},{cost:5e6,mults:{hack:1.05},name:"NUKE Rootkit",upgType:n.Rootkit},{cost:25e6,mults:{hack:1.1},name:"Soulstealer Rootkit",upgType:n.Rootkit},{cost:75e6,mults:{hack:1.15},name:"Demon Rootkit",upgType:n.Rootkit},{cost:4e7,mults:{hack:1.12},name:"Hmap Node",upgType:n.Rootkit},{cost:75e6,mults:{hack:1.15},name:"Jack the Ripper",upgType:n.Rootkit},{cost:1e10,mults:{str:1.3,dex:1.3},name:"Bionic Arms",upgType:n.Augmentation},{cost:1e10,mults:{agi:1.6},name:"Bionic Legs",upgType:n.Augmentation},{cost:15e9,mults:{str:1.15,def:1.15,dex:1.15,agi:1.15},name:"Bionic Spine",upgType:n.Augmentation},{cost:2e10,mults:{str:1.4,def:1.4},name:"BrachiBlades",upgType:n.Augmentation},{cost:12e9,mults:{str:1.2,def:1.2},name:"Nanofiber Weave",upgType:n.Augmentation},{cost:25e9,mults:{str:1.5,agi:1.5},name:"Synthetic Heart",upgType:n.Augmentation},{cost:15e9,mults:{str:1.3,def:1.3},name:"Synfibril Muscle",upgType:n.Augmentation},{cost:5e9,mults:{hack:1.05},name:"BitWire",upgType:n.Augmentation},{cost:1e10,mults:{hack:1.15},name:"Neuralstimulator",upgType:n.Augmentation},{cost:75e8,mults:{hack:1.1},name:"DataJack",upgType:n.Augmentation},{cost:5e10,mults:{str:1.7,def:1.7},name:"Graphene Bone Lacings",upgType:n.Augmentation}]},,,function(e,t,a){"use strict";a.d(t,"b",(function(){return C})),a.d(t,"a",(function(){return x})),a.d(t,"c",(function(){return M})),a.d(t,"d",(function(){return R}));var n=a(0),r=a.n(n),o=a(122),i=a(133),s=a(1),l=a(26),c=a(10),u=a(72),m=a(409),h=a.n(m),d=a(831),p=a(111),f=a(135),g=a(538),y=a.n(g),b=a(169),E=a(181),k=a(25),v=a(222),_=a(2),w=a(208);let S=0;const C=new o.a,x=new o.a;let O=[];function M(){const e=Object(n.useState)(!0)[1];function t(){e(e=>!e)}return Object(n.useEffect)(()=>C.subscribe(e=>{const a=e.server+"-"+e.filename+e.args.map(e=>""+e).join("-");O.find(e=>e.id===a)||(O.push({id:a,script:e}),t())}),[]),Object(n.useEffect)(()=>x.subscribe(()=>{O=[],t()})),r.a.createElement(r.a.Fragment,null,O.map(e=>r.a.createElement(A,{key:e.id,script:e.script,id:e.id,onClose:()=>{return a=e.id,O=O.filter(e=>e.id!==a),void t();var a}})))}const T=Object(p.a)(e=>Object(f.a)({title:{"&.is-minimized + *":{border:"none",margin:0,"max-height":0,padding:0,"pointer-events":"none",visibility:"hidden"}},logs:{overflowY:"scroll",overflowX:"hidden",scrollbarWidth:"auto",display:"flex",flexDirection:"column-reverse"},success:{color:e.colors.success},error:{color:e.palette.error.main},primary:{color:e.palette.primary.main},info:{color:e.palette.info.main},warning:{color:e.palette.warning.main}})),R=1500;function A(e){const t=Object(n.useRef)(null),a=Object(n.useRef)(null),[o,m]=Object(n.useState)(e.script),p=T(),f=Object(n.useRef)(null),g=Object(n.useState)(!1)[1],[C,x]=Object(n.useState)(!1);function O(){g(e=>!e)}function M(){const e=f.current;null!==e&&(e.style.zIndex=R+S+"",S++,O())}function A(e=!1){const t=`${o.filename} ${o.args.map(e=>""+e).join(" ")}`;return e||t.length<=30?t:t.slice(0,27)+"..."}Object(n.useEffect)(()=>{M();const e=setInterval(O,1e3);return()=>clearInterval(e)},[]),Object(n.useEffect)(()=>(window.addEventListener("resize",N),()=>{window.removeEventListener("resize",N)}),[]);const N=Object(w.debounce)(()=>{const e=null==t?void 0:t.current;e&&(P(e)||I())},100),P=e=>{const t=e.getBoundingClientRect();return!(t.right<0||t.bottom<0||t.left>innerWidth||t.top>outerWidth)},I=()=>{const e=null==a?void 0:a.current;if(!e)return;const t=e.state;t.x=0,t.y=0,e.setState(t)};return r.a.createElement(h.a,{handle:".drag",onDrag:e=>{if(e.clientX<0||e.clientY<0||e.clientX>innerWidth||e.clientY>innerHeight)return!1},ref:a},r.a.createElement(u.a,{style:{display:"flex",flexFlow:"column",position:"fixed",left:"40%",top:"30%",zIndex:1400},ref:f},r.a.createElement("div",{onMouseDown:M},r.a.createElement(u.a,{className:p.title+" "+(C?"is-minimized":""),style:{cursor:"grab"}},r.a.createElement(l.a,{className:"drag",display:"flex",alignItems:"center",ref:t},r.a.createElement(s.a,{color:"primary",variant:"h6",title:A(!0)},A()),r.a.createElement(l.a,{position:"absolute",right:0},!b.a.has(o.pid)&&r.a.createElement(c.a,{onClick:function(){const e=Object(k.d)(o.server);if(null===e)return;const t=Object(v.a)(o.filename,o.args,e);null===t?Object(E.e)(_.a,o,e):m(t)}},"Run"),b.a.has(o.pid)&&r.a.createElement(c.a,{onClick:function(){Object(i.a)(o,o.server,!0)}},"Kill"),r.a.createElement(c.a,{onClick:function(){x(!C)}},C?"🗖":"🗕"),r.a.createElement(c.a,{onClick:e.onClose},"Close")))),r.a.createElement(u.a,{sx:{overflow:"scroll",overflowWrap:"break-word",whiteSpace:"pre-wrap"}},r.a.createElement(d.ResizableBox,{className:p.logs,height:500,width:500,handle:r.a.createElement("span",{style:{position:"absolute",right:"-10px",bottom:"-13px",cursor:"nw-resize"}},r.a.createElement(y.a,{color:"primary",style:{transform:"rotate(45deg)"}}))},r.a.createElement(l.a,null,o.logs.map((e,t)=>{return r.a.createElement(s.a,{key:t,className:(a=e,a.match(/(^\[[^\]]+\] )?ERROR/)||a.match(/(^\[[^\]]+\] )?FAIL/)?p.error:a.match(/(^\[[^\]]+\] )?SUCCESS/)?p.success:a.match(/(^\[[^\]]+\] )?WARN/)?p.warning:a.match(/(^\[[^\]]+\] )?INFO/)?p.info:p.primary)},e,r.a.createElement("br",null));var a})))))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new Map},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Water:.05,Energy:.01,Food:.03,Plants:.05,Metal:.1,Hardware:.06,Chemicals:.05,Drugs:.02,Robots:.5,AICores:.1,RealEstate:.005,"Real Estate":.005,"AI Cores":.1}},function(e,t,a){"use strict";a.d(t,"c",(function(){return o})),a.d(t,"d",(function(){return i})),a.d(t,"e",(function(){return s})),a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"f",(function(){return u}));var n=a(5),r=a(35);function o(e,t,a,o,i){return r.b.HashesPerLevel*e*Math.pow(1.07,Math.log2(a))*(1+(o-1)/5)*(1-t/a)*i*n.a.HacknetNodeMoney}function i(e,t=1,a=1){const n=Math.round(t);if(isNaN(n)||n<1)return 0;if(e>=r.b.MaxLevel)return 1/0;const o=r.b.UpgradeLevelMult;let i=0,s=e;for(let e=0;e=r.b.MaxRam)return 1/0;let o=0,i=Math.round(Math.log2(e)),s=e;for(let e=0;e=r.b.MaxCores)return 1/0;const o=r.b.UpgradeCoreMult;let i=0,s=e;for(let e=0;e=r.b.MaxCache)return 1/0;const n=r.b.UpgradeCacheMult;let o=0,i=e;for(let e=0;e=r.b.MaxServers?1/0:r.b.BaseCost*Math.pow(r.b.PurchaseMult,e-1)*t}},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.Field=0]="Field",e[e.Hacking=1]="Hacking",e[e.None=2]="None",e[e.Security=3]="Security"}(n||(n={}))},,,function(e,t,a){"use strict";function n(e){const t=Object.assign({},{progress:0,totalTicks:20},e);t.progress=Math.max(Math.min(t.progress,1),0);const a=Math.max(Math.floor(t.progress/(1/t.totalTicks)),1),n=Math.max(t.totalTicks-a,0);return`[${"|".repeat(a)}${"-".repeat(n)}]`}a.d(t,"a",(function(){return n}))},,,,function(e,t,a){"use strict";a.d(t,"c",(function(){return h})),a.d(t,"b",(function(){return d})),a.d(t,"a",(function(){return p}));var n=a(0),r=a.n(n),o=a(663),i=a(111),s=a(122),l=a(1381),c=a(72),u=a(168);const m=Object(i.a)(()=>({snackbar:{zIndex:u.d+1e3+" !important"}}));function h(e){const t=m();return r.a.createElement(o.a,{dense:!0,maxSnack:9,anchorOrigin:{horizontal:"right",vertical:"bottom"},autoHideDuration:2e3,classes:{containerRoot:t.snackbar}},e.children)}const d=new s.a;function p(){const{enqueueSnackbar:e,closeSnackbar:t}=Object(o.b)();return Object(n.useEffect)(()=>d.subscribe((a,n,o)=>{const i=e(r.a.createElement(l.a,{severity:n},a),{content:(e,t)=>r.a.createElement(c.a,{key:e},t),variant:n,autoHideDuration:o,onClick:()=>t(i)})})),r.a.createElement(r.a.Fragment,null)}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return R})),a.d(t,"c",(function(){return A})),a.d(t,"e",(function(){return P})),a.d(t,"f",(function(){return F})),a.d(t,"b",(function(){return D})),a.d(t,"d",(function(){return j}));var n=a(133),r=a(255),o=a(169),i=a(278),s=a(474),l=a(8),c=a(536),u=a(101),m=a(475),h=a(576),d=a(1187),p=a(340),f=a(582),g=a(222),y=a(25),b=a(11),E=a(613),k=a(15),v=a(243),_=a(471),w=a(126),S=a(435),C=a(242),x=a(283),O=a(79),M=a(2),T=a(83);const R=[];for(let e=0;e{o=!0;let t=e.source.value;t.startsWith("./")&&(t=t.slice(2));const a=function(e){for(let t=0;t{a.push(e.id.name),n.push(e)}}),r+="var "+t+";\n(function (namespace) {\n",n.forEach(e=>{r+=Object(E.generate)(e),r+="\n"}),a.forEach(e=>{r+="namespace."+e+" = "+e,r+="\n"}),r+="})("+t+" || ("+t+" = {}));\n"}else{const t=[];e.specifiers.forEach(e=>{t.push(e.local.name)});const a=[];Object(x.b)(i,{FunctionDeclaration:e=>{t.includes(e.id.name)&&a.push(e)}}),a.forEach(e=>{r+=Object(E.generate)(e),r+="\n"})}}}),!o)return{code:e,lineOffset:0};let i=0;if("Program"!==a.type||null==a.body)throw new Error("Code could not be properly parsed");for(let e=a.body.length-1;e>=0;--e)"ImportDeclaration"===a.body[e].type&&(a.body.splice(e,1),++i);const s=(r.match(/\n/g)||[]).length-i;e=Object(E.generate)(a);return{code:e=r+e,lineOffset:s}}(t,e);a=n.code,o=n.lineOffset}catch(t){return Object(k.a)("Error processing Imports in "+e.name+":
"+t),e.env.stopFlag=!0,e.running=!1,Object(n.a)(e),Promise.resolve(e)}const i=function(t,a){const n=Object(m.a)(e);for(const e of Object.keys(n)){const o=n[e];if("function"==typeof o)if(["hack","grow","weaken","sleep","prompt","manualHack","scp","write","share"].includes(e)){const n=function(...e){const a=[];for(let n=0;n"+t),e.env.stopFlag=!0,e.running=!1,Object(n.a)(e),Promise.resolve(e)}return new Promise((function(t,a){try{!function n(){try{if(e.env.stopFlag)return a(e);let r=!0,o=0;for(;o<3&&r;)r=r&&s.step(),o++;r?setTimeout(n,b.a.CodeInstructionRunTime):t(e)}catch(t){return t=t.toString(),Object(u.a)(t)||(t=Object(u.b)(e,t)),e.errorMessage=t,a(e)}}()}catch(t){return Object(w.a)(t)?(e.errorMessage=t,a(e)):t instanceof r.a?a(t):a(e)}}))}function P(e,t,a,n){return I(e,t,a,n)?(a.runScript(t),t.pid):0}function I(e,t,a,l){let c=1;t.threads&&!isNaN(t.threads)?c=t.threads:t.threads=1;const d=Object(f.a)(t),p=Object(_.a)(d*c);if(p>a.maxRam-a.ramUsed)return Object(k.a)(`Not enough RAM to run script ${t.filename} with args `+Object(v.a)(t.args)+". This likely occurred because you re-loaded the game and the script's RAM usage increased (either because of an update to the game or your changes to the script.)"),!1;a.updateRamUsed(Object(_.a)(a.ramUsed+p),M.a);const g=Object(s.a)();if(-1===g)throw new Error("Failed to start script because could not find available PID. This is most because you have too many scripts running.");const y=new r.a(t,g,m.a);y.ramUsage=d,o.a.set(g,y),i.a.emit();let b=null;if(y.name.endsWith(".js")||y.name.endsWith(".ns"))b=function(e,t){t.running=!0;let a=null;function n(e,n){return function(...r){if(t.env.stopFlag)throw t;if("asleep"===e)return n(...r);if(a)throw t.errorMessage=Object(u.b)(t,Object(S.sprintf)("Concurrent calls to Netscript functions are not allowed! Did you forget to await hack(), grow(), or some other promise-returning function? (Currently running: %s tried to run: %s)",a,e)),t;let o;a=e;try{o=n(...r)}catch(e){throw a=null,e}return o&&void 0!==o.finally?o.finally((function(){a=null})):(a=null,o)}}for(const e of Object.keys(t.env.vars))"function"==typeof t.env.vars[e]&&(t.env.vars[e]=n(e,t.env.vars[e]));return t.env.vars.stanek.charge=n("stanek.charge",t.env.vars.stanek.charge),new Promise((a,n)=>{Object(h.b)(e,t.getServer().scripts,t).then(()=>{a(t)}).catch(e=>n(e))}).catch(e=>{if(e instanceof Error)throw e instanceof SyntaxError?t.errorMessage=Object(u.b)(t,e.message+" (sorry we can't be more helpful)"):t.errorMessage=Object(u.b)(t,e.message+(e.stack&&"\nstack:\n"+e.stack.toString()||"")),t;if(Object(u.a)(e))throw t.errorMessage=e,t;if(e instanceof r.a)throw e;throw t.errorMessage=Object(u.b)(t,e),t})}(e,y);else if(b=N(y),!(b instanceof Promise))return!1;return b.then((function(e){e.running=!1,e.env.stopFlag=!0,void 0!==l&&l.running&&(l.scriptRef.onlineExpGained+=t.onlineExpGained,l.scriptRef.onlineMoneyMade+=t.onlineMoneyMade),Object(n.a)(y),e.log("",()=>"Script finished running")})).catch((function(e){if(e instanceof Error)return Object(k.a)("Script runtime unknown error. This is a bug please contact game developer"),void console.error("Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: "+e.toString());if(e instanceof r.a){if(!Object(u.a)(e.errorMessage))return void e.log("",()=>"Script killed");{const t=e.errorMessage.split("|DELIMITER|");if(4!=t.length)return console.error("ERROR: Something wrong with Error text in evaluator..."),void console.error("Error text: "+e.errorMessage);const a=t[1],n=t[2],r=t[3];let o=`RUNTIME ERROR
${n}@${a}
`;e.args.length>0&&(o+=`Args: ${Object(v.a)(e.args)}
`),o+="
",o+=r,Object(k.a)(o),e.log("",()=>"Script crashed with runtime error")}}else{if(Object(u.a)(e))return Object(k.a)("Script runtime unknown error. This is a bug please contact game developer"),void console.error("ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: "+e.toString());Object(k.a)("An unknown script died for an unknown reason. This is a bug please contact game dev"),console.error(e)}Object(n.a)(y)})),!0}function F(e=1){const t=e*l.a._idleSpeed/1e3;for(const e of o.a.values())e.scriptRef.onlineRunningTime+=t}function D(e){const t=-1!==window.location.href.toLowerCase().indexOf("?noscripts");t&&(T.a.warn("Skipped loading player scripts during startup"),console.info("Skipping the load of any scripts during startup"));for(const a of Object(y.c)()){a.ramUsed=0;for(let e=0;e`Invalid arguments: scriptname='${n} args='${o}'`),console.error("runScriptFromScript() failed due to invalid arguments"),0;o.forEach((e,t)=>{if("string"!=typeof e&&"number"!=typeof e&&"boolean"!=typeof e)throw new Error(`Only strings, numbers, and booleans can be passed as arguments to other scripts.\n${n} argument index ${t} is of type ${typeof e} and value ${JSON.stringify(e)}`)});if(null!=a.getRunningScript(n,o))return i.log(t,()=>`'${n}' is already running on '${a.hostname}'`),0;for(let e=0;e"Cannot execute a script with null/undefined as an argument"),0;for(let r=0;r`You do not have root access on '${a.hostname}'`),0;if(c>u)return i.log(t,()=>`Cannot run script '${n}' (t=${s}) on '${a.hostname}' because there is not enough available RAM!`),0;{i.log(t,()=>`'${n}' on '${a.hostname}' with ${s} threads and args: ${Object(v.a)(o)}.`);const r=new p.a(l,o);return r.threads=s,r.server=a.hostname,P(e,r,a,i)}}return i.log(t,()=>`Could not find script '${n}' on '${a.hostname}'`),0}},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return d}));var n=a(0),r=a.n(n),o=a(584),i=a(738),s=a(1354),l=a(122),c=a(11);const u=new l.a;let m;function h(){var e,t;m=Object(o.a)({colors:{hp:c.a.theme.hp,money:c.a.theme.money,hack:c.a.theme.hack,combat:c.a.theme.combat,cha:c.a.theme.cha,int:c.a.theme.int,rep:c.a.theme.rep,backgroundprimary:c.a.theme.backgroundprimary,backgroundsecondary:c.a.theme.backgroundsecondary,button:c.a.theme.button,successlight:c.a.theme.successlight,success:c.a.theme.success,successdark:c.a.theme.successdark,white:c.a.theme.white,black:c.a.theme.black},palette:{primary:{light:c.a.theme.primarylight,main:c.a.theme.primary,dark:c.a.theme.primarydark},secondary:{light:c.a.theme.secondarylight,main:c.a.theme.secondary,dark:c.a.theme.secondarydark},error:{light:c.a.theme.errorlight,main:c.a.theme.error,dark:c.a.theme.errordark},info:{light:c.a.theme.infolight,main:c.a.theme.info,dark:c.a.theme.infodark},warning:{light:c.a.theme.warninglight,main:c.a.theme.warning,dark:c.a.theme.warningdark},success:{light:c.a.theme.successlight,main:c.a.theme.success,dark:c.a.theme.successdark},background:{default:c.a.theme.backgroundprimary,paper:c.a.theme.well},action:{disabled:c.a.theme.disabled}},typography:{fontFamily:c.a.styles.fontFamily,button:{textTransform:"none"}},components:{MuiInputBase:{styleOverrides:{root:{backgroundColor:c.a.theme.well,color:c.a.theme.primary},input:{"&::placeholder":{userSelect:"none",color:c.a.theme.primarydark}}}},MuiInput:{styleOverrides:{root:{backgroundColor:c.a.theme.well,borderBottomColor:"#fff"},underline:{"&:hover":{borderBottomColor:c.a.theme.primarydark},"&:before":{borderBottomColor:c.a.theme.primary},"&:after":{borderBottomColor:c.a.theme.primarylight}}}},MuiInputLabel:{styleOverrides:{root:{color:c.a.theme.primarydark,userSelect:"none","&:before":{color:c.a.theme.primarylight}}}},MuiButtonGroup:{styleOverrides:{root:{"& .MuiButton-root:not(:last-of-type)":{marginRight:"1px"}}}},MuiButton:{styleOverrides:{root:{backgroundColor:c.a.theme.button,border:"1px solid "+c.a.theme.well,"&:hover":{backgroundColor:c.a.theme.backgroundsecondary},borderRadius:0}}},MuiSelect:{styleOverrides:{icon:{color:c.a.theme.primary}},defaultProps:{variant:"standard"}},MuiTextField:{defaultProps:{variant:"standard"}},MuiTypography:{defaultProps:{color:"primary"},styleOverrides:{root:{lineHeight:c.a.styles.lineHeight}}},MuiMenu:{styleOverrides:{list:{backgroundColor:c.a.theme.well}}},MuiMenuItem:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiAccordionSummary:{styleOverrides:{root:{backgroundColor:"#111"}}},MuiAccordionDetails:{styleOverrides:{root:{backgroundColor:c.a.theme.backgroundsecondary}}},MuiIconButton:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiTooltip:{styleOverrides:{tooltip:{fontSize:"1em",color:c.a.theme.primary,backgroundColor:c.a.theme.well,borderRadius:0,border:"2px solid white",maxWidth:"100vh"}},defaultProps:{disableInteractive:!0}},MuiSlider:{styleOverrides:{valueLabel:{color:c.a.theme.primary,backgroundColor:c.a.theme.well}}},MuiDrawer:{styleOverrides:{paper:{"&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none",backgroundColor:c.a.theme.backgroundsecondary},paperAnchorDockedLeft:{borderRight:"1px solid "+c.a.theme.welllight}}},MuiDivider:{styleOverrides:{root:{backgroundColor:c.a.theme.welllight}}},MuiFormControlLabel:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiSwitch:{styleOverrides:{switchBase:{color:c.a.theme.primarydark},track:{backgroundColor:c.a.theme.welllight}}},MuiPaper:{styleOverrides:{root:{borderRadius:0,backgroundColor:c.a.theme.backgroundsecondary,border:"1px solid "+c.a.theme.welllight}}},MuiTablePagination:{styleOverrides:{select:{color:c.a.theme.primary},selectLabel:{color:c.a.theme.primary},displayedRows:{color:c.a.theme.primary}}},MuiTab:{styleOverrides:{textColorPrimary:{color:c.a.theme.secondary,"&.Mui-selected":{color:c.a.theme.primary}}}},MuiAlert:{styleOverrides:{root:{backgroundColor:c.a.theme.black,borderRadius:0,border:"1px solid "+c.a.theme.well},standardSuccess:{color:c.a.theme.successlight},standardError:{color:c.a.theme.errorlight},standardWarning:{color:c.a.theme.warninglight},standardInfo:{color:c.a.theme.infolight}}}}}),document.body.style.backgroundColor=null!==(e=null===(t=m.colors.backgroundprimary)||void 0===t?void 0:t.toString())&&void 0!==e?e:"black"}h();const d=({children:e})=>r.a.createElement(i.a,{injectFirst:!0},r.a.createElement(s.a,{theme:m},e))},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(22);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class o{constructor(e={}){r(this,"name","InitName"),r(this,"qty",0),r(this,"qlt",0),r(this,"dmd",0),r(this,"dmdR",[0,0]),r(this,"cmp",0),r(this,"cmpR",[0,0]),r(this,"mv",0),r(this,"mku",0),r(this,"buy",0),r(this,"sll",0),r(this,"prd",0),r(this,"imp",0),r(this,"exp",[]),r(this,"totalExp",0),r(this,"bCost",0),r(this,"sCost",0),r(this,"prdman",[!1,0]),r(this,"sllman",[!1,0]),r(this,"marketTa1",!1),r(this,"marketTa2",!1),r(this,"marketTa2Price",0),e.name&&(this.name=e.name),this.init()}getMarkupLimit(){return this.qlt/this.mku}init(){switch(this.name){case"Water":this.dmd=75,this.dmdR=[65,85],this.cmp=50,this.cmpR=[40,60],this.bCost=1500,this.mv=.2,this.mku=6;break;case"Energy":this.dmd=90,this.dmdR=[80,99],this.cmp=80,this.cmpR=[65,95],this.bCost=2e3,this.mv=.2,this.mku=6;break;case"Food":this.dmd=80,this.dmdR=[70,90],this.cmp=60,this.cmpR=[35,85],this.bCost=5e3,this.mv=1,this.mku=3;break;case"Plants":this.dmd=70,this.dmdR=[20,90],this.cmp=50,this.cmpR=[30,70],this.bCost=3e3,this.mv=.6,this.mku=3.75;break;case"Metal":this.dmd=80,this.dmdR=[75,85],this.cmp=70,this.cmpR=[60,80],this.bCost=2650,this.mv=1,this.mku=6;break;case"Hardware":this.dmd=85,this.dmdR=[80,90],this.cmp=80,this.cmpR=[65,95],this.bCost=8e3,this.mv=.5,this.mku=1;break;case"Chemicals":this.dmd=55,this.dmdR=[40,70],this.cmp=60,this.cmpR=[40,80],this.bCost=9e3,this.mv=1.2,this.mku=2;break;case"Real Estate":this.dmd=50,this.dmdR=[5,99],this.cmp=50,this.cmpR=[25,75],this.bCost=8e4,this.mv=1.5,this.mku=1.5;break;case"Drugs":this.dmd=60,this.dmdR=[45,75],this.cmp=70,this.cmpR=[40,99],this.bCost=4e4,this.mv=1.6,this.mku=1;break;case"Robots":this.dmd=90,this.dmdR=[80,9],this.cmp=90,this.cmpR=[80,9],this.bCost=75e3,this.mv=.5,this.mku=1;break;case"AI Cores":this.dmd=90,this.dmdR=[80,99],this.cmp=90,this.cmpR=[80,9],this.bCost=15e3,this.mv=.8,this.mku=.5;break;case"Scientific Research":case"InitName":break;default:console.error("Invalid material type in init(): "+this.name)}}processMarket(){const e=1+Math.random()*this.mv/300,t=1+Math.random()*this.mv/100;Math.random()<.5?(this.cmp*=t,this.cmp>this.cmpR[1]&&(this.cmp=this.cmpR[1]),this.bCost*=1/e):(this.cmp*=1/t,this.cmpthis.dmdR[1]&&(this.dmd=this.dmdR[1]),this.bCost*=e):(this.dmd*=1/a,this.dmd=r.a.MaxLevel)return 1/0;const o=r.a.UpgradeLevelMult;let i=0,s=e;for(let e=0;e=r.a.MaxRam)return 1/0;let o=0,i=Math.round(Math.log2(e)),s=e;for(let e=0;e=r.a.MaxCores)return 1/0;const o=r.a.CoreBaseCost,i=r.a.UpgradeCoreMult;let s=0,l=e;for(let e=0;e1e10;return t&&Object(r.a)(n.createElement(n.Fragment,null,"Alright cheater get out of here. You're not allowed here anymore.")),t}class s extends n.Component{win(e,t){e.gainMoney(t,"casino")}reachedLimit(e){const t=e.getCasinoWinnings()>1e10;return t&&Object(r.a)(n.createElement(n.Fragment,null,"Alright cheater get out of here. You're not allowed here anymore.")),t}}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));const n=!1,r=!0,o={O:[[r,r],[r,r]],I:[[r,r,r,r]],L:[[n,n,r],[r,r,r]],J:[[r,n,n],[r,r,r]],S:[[n,r,r],[r,r,n]],Z:[[r,r,n],[n,r,r]],T:[[r,r,r],[n,r,n]]}},,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a.n(n);function o(e){return Object(n.useEffect)(()=>{function t(t){if(!t.isTrusted)return;e.onKeyDown.bind(this)(t)}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)}),r.a.createElement(r.a.Fragment,null)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(1254),r=a(0),o=a.n(r),i=a(1386),s=a(53);const l=Object(i.a)(e=>({root:{backgroundColor:e.palette.background.paper},bar:{transition:"none",backgroundColor:e.palette.primary.main}}))(n.a);function c(e){const[t,a]=Object(r.useState)(100);return Object(r.useEffect)(()=>{const t=setInterval(()=>{a(t=>(t<=0&&e.onExpire(),t-200/e.millis*100))},200);return()=>{clearInterval(t)}},[]),o.a.createElement(s.a,{item:!0,xs:12},o.a.createElement(l,{variant:"determinate",value:t,color:"primary"}))}},function(e,t,a){"use strict";function n(e,t,a){function n(e,t,n){function r(e,t,a){return(1-a)*e+a*t}for(const o of Object.keys(e))a[o]=r(e[o],t[o],n);return e}return t<0?n(e.Trivial,e.Trivial,0):t>=0&&t<1?n(e.Trivial,e.Normal,t):t>=1&&t<2?n(e.Normal,e.Hard,t-1):t>=2&&t<3?n(e.Hard,e.Impossible,t-2):n(e.Impossible,e.Impossible,0)}a.d(t,"a",(function(){return n}))},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(470),r=a(22),o=a(471);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}let s=0;class l{constructor(e=null,t="",a="",n="",r=[]){i(this,"code",""),i(this,"filename",""),i(this,"url",""),i(this,"module",""),i(this,"dependencies",[]),i(this,"dependents",[]),i(this,"ramUsage",0),i(this,"server",""),this.filename=t,this.code=a,this.ramUsage=0,this.server=n,this.module="",this.moduleSequenceNumber=++s,""!==this.code&&null!==e&&this.updateRamUsage(e,r)}download(){const e=this.filename,t=new Blob([this.code],{type:"text/plain"}),a=window.navigator;if(a.msSaveOrOpenBlob)a.msSaveOrOpenBlob(t,e);else{const a=document.createElement("a"),n=URL.createObjectURL(t);a.href=n,a.download=e,document.body.appendChild(a),a.click(),setTimeout((function(){document.body.removeChild(a),window.URL.revokeObjectURL(n)}),0)}}markUpdated(){this.module="",this.moduleSequenceNumber=++s}saveScript(e,t,a,n,r){this.code=l.formatCode(a),this.filename=t,this.server=n,this.updateRamUsage(e,r),this.markUpdated();for(const e of this.dependents){const[t]=r.filter(t=>t.filename===e.filename&&t.server==e.server);null!==t&&t.markUpdated()}}async updateRamUsage(e,t){const a=await Object(n.a)(e,this.code,t);a.cost>0&&(this.ramUsage=Object(o.a)(a.cost),this.ramUsageEntries=a.entries),this.markUpdated()}imports(){return[]}toJSON(){return Object(r.b)("Script",this)}static fromJSON(e){const t=Object(r.a)(l,e.data);return t.url="",t.dependents=[],t}static formatCode(e){return e.replace(/^\s+|\s+$/g,"")}}r.c.constructors.Script=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(8),r=a(194),o=a(35),i=a(15),s=a(22),l=a(355);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e="",t=1){c(this,"cores",1),c(this,"level",1),c(this,"moneyGainRatePerSecond",0),c(this,"onlineTimeSeconds",0),c(this,"ram",1),c(this,"totalMoneyGenerated",0),this.name=e,this.updateMoneyGainRate(t)}calculateCoreUpgradeCost(e=1,t){return Object(r.a)(this.cores,e,t)}calculateLevelUpgradeCost(e=1,t){return Object(r.b)(this.level,e,t)}calculateRamUpgradeCost(e=1,t){return Object(r.e)(this.ram,e,t)}process(e=1){const t=e*n.a.MilliPerCycle/1e3;let a=this.moneyGainRatePerSecond*t;return isNaN(a)&&(console.error(`Hacknet Node ${this.name} calculated earnings of NaN`),a=0),this.totalMoneyGenerated+=a,this.onlineTimeSeconds+=t,a}upgradeCore(e=1,t){this.cores=Math.min(o.a.MaxCores,Math.round(this.cores+e)),this.updateMoneyGainRate(t)}upgradeLevel(e=1,t){this.level=Math.min(o.a.MaxLevel,Math.round(this.level+e)),this.updateMoneyGainRate(t)}upgradeRam(e=1,t){for(let t=0;t{document.body.removeChild(e),window.URL.revokeObjectURL(a)},0)}}read(){return this.text}show(){Object(n.a)(`${this.fn}

${this.text}`)}toJSON(){return Object(r.b)("TextFile",this)}write(e){this.text=e}static fromJSON(e){return Object(r.a)(i,e.data)}}function s(e,t){let a=e.endsWith(".txt")?e:e+".txt";Object(o.h)(a)&&(a=Object(o.k)(a));for(const e of t.textFiles)if(e.fn===a)return e;return null}function l(e,t,a){if(null!==s(e,a))return void console.error(`A file named "${e}" already exists on server ${a.hostname}.`);const n=new i(e,t);return a.textFiles.push(n),n}r.c.constructors.TextFile=i},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(237),r=a(124);const o={};o[r.a.BladesIntuition]=new n.a({name:r.a.BladesIntuition,desc:"Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%",baseCost:3,costInc:2.1,successChanceAll:3}),o[r.a.Cloak]=new n.a({name:r.a.Cloak,desc:"Each level of this skill increases your success chance in stealth-related Contracts, Operations, and BlackOps by 5.5%",baseCost:2,costInc:1.1,successChanceStealth:5.5}),o[r.a.ShortCircuit]=new n.a({name:r.a.ShortCircuit,desc:"Each level of this skill increases your success chance in Contracts, Operations, and BlackOps that involve retirement by 5.5%",baseCost:2,costInc:2.1,successChanceKill:5.5}),o[r.a.DigitalObserver]=new n.a({name:r.a.DigitalObserver,desc:"Each level of this skill increases your success chance in all Operations and BlackOps by 4%",baseCost:2,costInc:2.1,successChanceOperation:4}),o[r.a.Tracer]=new n.a({name:r.a.Tracer,desc:"Each level of this skill increases your success chance in all Contracts by 4%",baseCost:2,costInc:2.1,successChanceContract:4}),o[r.a.Overclock]=new n.a({name:r.a.Overclock,desc:"Each level of this skill decreases the time it takes to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 90)",baseCost:3,costInc:1.4,maxLvl:90,actionTime:1}),o[r.a.Reaper]=new n.a({name:r.a.Reaper,desc:"Each level of this skill increases your effective combat stats for Bladeburner actions by 2%",baseCost:2,costInc:2.1,effStr:2,effDef:2,effDex:2,effAgi:2}),o[r.a.EvasiveSystem]=new n.a({name:r.a.EvasiveSystem,desc:"Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%",baseCost:2,costInc:2.1,effDex:4,effAgi:4}),o[r.a.Datamancer]=new n.a({name:r.a.Datamancer,desc:"Each level of this skill increases your effectiveness in synthoid population analysis and investigation by 5%. This affects all actions that can potentially increase the accuracy of your synthoid population/community estimates.",baseCost:3,costInc:1,successChanceEstimate:5}),o[r.a.CybersEdge]=new n.a({name:r.a.CybersEdge,desc:"Each level of this skill increases your max stamina by 2%",baseCost:1,costInc:3,stamina:2}),o[r.a.HandsOfMidas]=new n.a({name:r.a.HandsOfMidas,desc:"Each level of this skill increases the amount of money you receive from Contracts by 10%",baseCost:2,costInc:2.5,money:10}),o[r.a.Hyperdrive]=new n.a({name:r.a.Hyperdrive,desc:"Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 10%",baseCost:1,costInc:2.5,expGain:10})},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(165),r=a(821);const o={};n.b.forEach(e=>{o[e.name]=new r.a(e.name,e.cost,e.upgType,e.mults)})},function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"c",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c}));var n=a(140),r=a(69),o=a(8);function i(e,t,a){if(isNaN(t)||t<=0||!(e instanceof n.a))return null;t=Math.min(t,e.maxShares);return a===r.a.Long?t*e.getAskPrice()+o.a.StockMarketCommission:t*e.getBidPrice()+o.a.StockMarketCommission}function s(e,t,a){if(isNaN(t)||t<=0||!(e instanceof n.a))return null;t=Math.min(t,e.maxShares);if(a===r.a.Long)return t*e.getBidPrice()-o.a.StockMarketCommission;return t*e.playerAvgShortPx+((e.playerAvgShortPx-e.getAskPrice())*t-o.a.StockMarketCommission)}function l(e,t){if(isNaN(t)||t<=0||!(e instanceof n.a))return;t=Math.min(t,e.maxShares);const a=e.shareTxUntilMovement;if(t<=a)return e.shareTxUntilMovement-=t,void(e.shareTxUntilMovement<=0&&(e.shareTxUntilMovement=e.shareTxForMovement,e.influenceForecast(.006),e.influenceForecastForecast(e.mv/100*.006)));const r=t-a;let o=1+Math.ceil(r/e.shareTxForMovement);e.shareTxUntilMovement=e.shareTxForMovement-(t-e.shareTxUntilMovement)%e.shareTxForMovement,(e.shareTxUntilMovement===e.shareTxForMovement||e.shareTxUntilMovement<=0)&&(++o,e.shareTxUntilMovement=e.shareTxForMovement);const i=.006*(o-1),s=i*(e.mv/100);e.influenceForecast(i),e.influenceForecastForecast(s)}function c(e,t,a){if(!(e instanceof n.a))return 0;const i=t===r.a.Long,s=a-o.a.StockMarketCommission,l=i?e.getAskPrice():e.getBidPrice();return Math.floor(s/l)}},function(e,t,a){"use strict";a.d(t,"b",(function(){return c})),a.d(t,"a",(function(){return u}));var n=a(5),r=a(24),o=a(8),i=a(163),s=a(266);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(){return{hack:0,str:0,def:0,dex:0,agi:0,cha:0,money:0}}class u{constructor(){l(this,"hacking",1),l(this,"strength",1),l(this,"defense",1),l(this,"dexterity",1),l(this,"agility",1),l(this,"charisma",1),l(this,"intelligence",1),l(this,"hp",10),l(this,"max_hp",10),l(this,"hacking_exp",0),l(this,"strength_exp",0),l(this,"defense_exp",0),l(this,"dexterity_exp",0),l(this,"agility_exp",0),l(this,"charisma_exp",0),l(this,"intelligence_exp",0),l(this,"hacking_mult",1),l(this,"strength_mult",1),l(this,"defense_mult",1),l(this,"dexterity_mult",1),l(this,"agility_mult",1),l(this,"charisma_mult",1),l(this,"hacking_exp_mult",1),l(this,"strength_exp_mult",1),l(this,"defense_exp_mult",1),l(this,"dexterity_exp_mult",1),l(this,"agility_exp_mult",1),l(this,"charisma_exp_mult",1),l(this,"hacking_chance_mult",1),l(this,"hacking_speed_mult",1),l(this,"hacking_money_mult",1),l(this,"hacking_grow_mult",1),l(this,"company_rep_mult",1),l(this,"faction_rep_mult",1),l(this,"crime_money_mult",1),l(this,"crime_success_mult",1),l(this,"work_money_mult",1),l(this,"hacknet_node_money_mult",1),l(this,"hacknet_node_purchase_cost_mult",1),l(this,"hacknet_node_ram_cost_mult",1),l(this,"hacknet_node_core_cost_mult",1),l(this,"hacknet_node_level_cost_mult",1),l(this,"bladeburner_max_stamina_mult",1),l(this,"bladeburner_stamina_gain_mult",1),l(this,"bladeburner_analysis_mult",1),l(this,"bladeburner_success_chance_mult",1),l(this,"augmentations",[]),l(this,"queuedAugmentations",[]),l(this,"city",r.a.Sector12)}applyAugmentation(e){for(const t of Object.keys(e.mults))null==this[t]?console.warn("Augmentation has unrecognized multiplier property: "+t):this[t]*=e.mults[t]}calculateStat(e,t=1){return Object(i.b)(e,t)}getFactionFieldWorkRepGain(){return.9*(this.hacking/o.a.MaxSkillLevel+this.strength/o.a.MaxSkillLevel+this.defense/o.a.MaxSkillLevel+this.dexterity/o.a.MaxSkillLevel+this.agility/o.a.MaxSkillLevel+this.charisma/o.a.MaxSkillLevel)/5.5*this.faction_rep_mult}getFactionHackingWorkRepGain(){return this.hacking/o.a.MaxSkillLevel*this.faction_rep_mult}getFactionSecurityWorkRepGain(){return.9*(this.hacking/o.a.MaxSkillLevel+this.strength/o.a.MaxSkillLevel+this.defense/o.a.MaxSkillLevel+this.dexterity/o.a.MaxSkillLevel+this.agility/o.a.MaxSkillLevel)/4.5*this.faction_rep_mult}resetMultipliers(){this.hacking_mult=1,this.strength_mult=1,this.defense_mult=1,this.dexterity_mult=1,this.agility_mult=1,this.charisma_mult=1,this.hacking_exp_mult=1,this.strength_exp_mult=1,this.defense_exp_mult=1,this.dexterity_exp_mult=1,this.agility_exp_mult=1,this.charisma_exp_mult=1,this.company_rep_mult=1,this.faction_rep_mult=1,this.crime_money_mult=1,this.crime_success_mult=1,this.work_money_mult=1}updateStatLevels(){this.hacking=Math.max(1,Math.floor(this.calculateStat(this.hacking_exp,this.hacking_mult*n.a.HackingLevelMultiplier))),this.strength=Math.max(1,Math.floor(this.calculateStat(this.strength_exp,this.strength_mult*n.a.StrengthLevelMultiplier))),this.defense=Math.max(1,Math.floor(this.calculateStat(this.defense_exp,this.defense_mult*n.a.DefenseLevelMultiplier))),this.dexterity=Math.max(1,Math.floor(this.calculateStat(this.dexterity_exp,this.dexterity_mult*n.a.DexterityLevelMultiplier))),this.agility=Math.max(1,Math.floor(this.calculateStat(this.agility_exp,this.agility_mult*n.a.AgilityLevelMultiplier))),this.charisma=Math.max(1,Math.floor(this.calculateStat(this.charisma_exp,this.charisma_mult*n.a.CharismaLevelMultiplier)));const e=this.hp/this.max_hp;this.max_hp=Math.floor(10+this.defense/10),this.hp=Math.round(this.max_hp*e)}getIntelligenceBonus(e){return Object(s.a)(this.intelligence,e)}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(317),r=a(261),o=a(20),i=a(1),s=a(0),l=a.n(s);function c({checked:e,onChange:t,text:a,tooltip:c}){const[u,m]=Object(s.useState)(e);return Object(s.useEffect)(()=>t(u),[u]),l.a.createElement(n.a,{control:l.a.createElement(r.a,{checked:u,onChange:function(e){m(e.target.checked)}}),label:l.a.createElement(o.a,{title:l.a.createElement(i.a,null,c)},l.a.createElement(i.a,null,a))})}},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return l}));var n=a(0),r=a.n(n),o=a(5);class i{constructor(e,t,a,n="",o=r.a.createElement(r.a.Fragment,null)){this.number=e,this.difficulty=t,this.name=a,this.desc=n,this.info=o}}const s={};function l(e){null==e.bitNodeN&&(e.bitNodeN=1);for(const e of Object.keys(o.a))o.a.hasOwnProperty(e)&&(o.a[e]=1);switch(o.a.StaneksGiftExtraSize=0,e.bitNodeN){case 1:break;case 2:o.a.HackingLevelMultiplier=.8,o.a.ServerGrowthRate=.8,o.a.ServerMaxMoney=.2,o.a.ServerStartingMoney=.4,o.a.CrimeMoney=3,o.a.InfiltrationMoney=3,o.a.FactionWorkRepGain=.5,o.a.FactionPassiveRepGain=0,o.a.StaneksGiftPowerMultiplier=2,o.a.StaneksGiftExtraSize=-6,o.a.PurchasedServerSoftcap=1.3,o.a.CorporationSoftCap=.9,o.a.WorldDaemonDifficulty=5;break;case 3:o.a.HackingLevelMultiplier=.8,o.a.RepToDonateToFaction=.5,o.a.AugmentationRepCost=3,o.a.AugmentationMoneyCost=3,o.a.ServerMaxMoney=.2,o.a.ServerStartingMoney=.2,o.a.ServerGrowthRate=.2,o.a.ScriptHackMoney=.2,o.a.CompanyWorkMoney=.25,o.a.CrimeMoney=.25,o.a.HacknetNodeMoney=.25,o.a.HomeComputerRamCost=1.5,o.a.PurchasedServerCost=2,o.a.StaneksGiftPowerMultiplier=.75,o.a.StaneksGiftExtraSize=-2,o.a.PurchasedServerSoftcap=1.3,o.a.GangSoftcap=.9,o.a.WorldDaemonDifficulty=2;break;case 4:o.a.ServerMaxMoney=.15,o.a.ServerStartingMoney=.75,o.a.ScriptHackMoney=.2,o.a.CompanyWorkMoney=.1,o.a.CrimeMoney=.2,o.a.HacknetNodeMoney=.05,o.a.CompanyWorkExpGain=.5,o.a.ClassGymExpGain=.5,o.a.FactionWorkExpGain=.5,o.a.HackExpGain=.4,o.a.CrimeExpGain=.5,o.a.FactionWorkRepGain=.75,o.a.StaneksGiftPowerMultiplier=1.5,o.a.StaneksGiftExtraSize=0,o.a.PurchasedServerSoftcap=1.2,o.a.WorldDaemonDifficulty=3;break;case 5:o.a.ServerMaxMoney=2,o.a.ServerStartingSecurity=2,o.a.ServerStartingMoney=.5,o.a.ScriptHackMoney=.15,o.a.HacknetNodeMoney=.2,o.a.CrimeMoney=.5,o.a.InfiltrationRep=1.5,o.a.InfiltrationMoney=1.5,o.a.AugmentationMoneyCost=2,o.a.HackExpGain=.5,o.a.CorporationValuation=.5,o.a.StaneksGiftPowerMultiplier=1.3,o.a.StaneksGiftExtraSize=0,o.a.PurchasedServerSoftcap=1.2,o.a.WorldDaemonDifficulty=1.5;break;case 6:o.a.HackingLevelMultiplier=.35,o.a.ServerMaxMoney=.4,o.a.ServerStartingMoney=.5,o.a.ServerStartingSecurity=1.5,o.a.ScriptHackMoney=.75,o.a.CompanyWorkMoney=.5,o.a.CrimeMoney=.75,o.a.InfiltrationMoney=.75,o.a.CorporationValuation=.2,o.a.HacknetNodeMoney=.2,o.a.FactionPassiveRepGain=0,o.a.HackExpGain=.25,o.a.DaedalusAugsRequirement=1.166,o.a.PurchasedServerSoftcap=2,o.a.StaneksGiftPowerMultiplier=.5,o.a.StaneksGiftExtraSize=2,o.a.GangSoftcap=.7,o.a.CorporationSoftCap=.9,o.a.WorldDaemonDifficulty=2;break;case 7:o.a.BladeburnerRank=.6,o.a.BladeburnerSkillCost=2,o.a.AugmentationMoneyCost=3,o.a.HackingLevelMultiplier=.35,o.a.ServerMaxMoney=.4,o.a.ServerStartingMoney=.5,o.a.ServerStartingSecurity=1.5,o.a.ScriptHackMoney=.5,o.a.CompanyWorkMoney=.5,o.a.CrimeMoney=.75,o.a.InfiltrationMoney=.75,o.a.CorporationValuation=.2,o.a.HacknetNodeMoney=.2,o.a.FactionPassiveRepGain=0,o.a.HackExpGain=.25,o.a.FourSigmaMarketDataCost=2,o.a.FourSigmaMarketDataApiCost=2,o.a.DaedalusAugsRequirement=1.166,o.a.PurchasedServerSoftcap=2,o.a.StaneksGiftPowerMultiplier=.9,o.a.StaneksGiftExtraSize=-1,o.a.GangSoftcap=.7,o.a.CorporationSoftCap=.9,o.a.WorldDaemonDifficulty=2;break;case 8:o.a.ScriptHackMoney=.3,o.a.ScriptHackMoneyGain=0,o.a.ManualHackMoney=0,o.a.CompanyWorkMoney=0,o.a.CrimeMoney=0,o.a.HacknetNodeMoney=0,o.a.InfiltrationMoney=0,o.a.RepToDonateToFaction=0,o.a.CorporationValuation=0,o.a.CodingContractMoney=0,o.a.StaneksGiftExtraSize=-7,o.a.PurchasedServerSoftcap=4,o.a.GangSoftcap=0,o.a.CorporationSoftCap=0;break;case 9:o.a.HackingLevelMultiplier=.5,o.a.StrengthLevelMultiplier=.45,o.a.DefenseLevelMultiplier=.45,o.a.DexterityLevelMultiplier=.45,o.a.AgilityLevelMultiplier=.45,o.a.CharismaLevelMultiplier=.45,o.a.PurchasedServerLimit=0,o.a.HomeComputerRamCost=5,o.a.CrimeMoney=.5,o.a.ScriptHackMoney=.1,o.a.HackExpGain=.05,o.a.ServerStartingMoney=.1,o.a.ServerMaxMoney=.1,o.a.ServerStartingSecurity=2.5,o.a.CorporationValuation=.5,o.a.FourSigmaMarketDataCost=5,o.a.FourSigmaMarketDataApiCost=4,o.a.BladeburnerRank=.9,o.a.BladeburnerSkillCost=1.2,o.a.StaneksGiftPowerMultiplier=.5,o.a.StaneksGiftExtraSize=2,o.a.GangSoftcap=.8,o.a.CorporationSoftCap=.7,o.a.WorldDaemonDifficulty=2;break;case 10:o.a.HackingLevelMultiplier=.35,o.a.StrengthLevelMultiplier=.4,o.a.DefenseLevelMultiplier=.4,o.a.DexterityLevelMultiplier=.4,o.a.AgilityLevelMultiplier=.4,o.a.CharismaLevelMultiplier=.4,o.a.CompanyWorkMoney=.5,o.a.CrimeMoney=.5,o.a.HacknetNodeMoney=.5,o.a.ManualHackMoney=.5,o.a.ScriptHackMoney=.5,o.a.CodingContractMoney=.5,o.a.InfiltrationMoney=.5,o.a.CorporationValuation=.5,o.a.AugmentationMoneyCost=5,o.a.AugmentationRepCost=2,o.a.HomeComputerRamCost=1.5,o.a.PurchasedServerCost=5,o.a.PurchasedServerLimit=.6,o.a.PurchasedServerMaxRam=.5,o.a.BladeburnerRank=.8,o.a.StaneksGiftPowerMultiplier=.75,o.a.StaneksGiftExtraSize=-3,o.a.PurchasedServerSoftcap=1.1,o.a.GangSoftcap=.9,o.a.CorporationSoftCap=.9,o.a.WorldDaemonDifficulty=2;break;case 11:o.a.HackingLevelMultiplier=.6,o.a.HackExpGain=.5,o.a.ServerMaxMoney=.1,o.a.ServerStartingMoney=.1,o.a.ServerGrowthRate=.2,o.a.ServerWeakenRate=2,o.a.CrimeMoney=3,o.a.CompanyWorkMoney=.5,o.a.HacknetNodeMoney=.1,o.a.AugmentationMoneyCost=2,o.a.InfiltrationMoney=2.5,o.a.InfiltrationRep=2.5,o.a.CorporationValuation=.1,o.a.CodingContractMoney=.25,o.a.FourSigmaMarketDataCost=4,o.a.FourSigmaMarketDataApiCost=4,o.a.PurchasedServerSoftcap=2,o.a.CorporationSoftCap=.9,o.a.WorldDaemonDifficulty=1.5;break;case 12:{let t=0;for(let a=0;a