High performance/FPS Autoexec!


(BMXer) #21

file didn’t attach or something…lol


(OWNED NEWBIE) #22

:penguin:
hej sveri vad gr duh?


(09wejg-02394jg) #23

[QUOTE=timestart;265864]Here you go. Should give you an unmeasurable fraction of an FPS more than Dthwsh’s config.
[/QUOTE]

FPS is not the be-all end-all. U play like this and u will pay a price in visual recognition cuz of the high pixelation.

The link posted in OP is a better balance of FPS and acutally being able to see stuff properly. Borders on hax TBH.

Both are degenerate.


(king_troll) #24

download this autoexec.cfg and the game will run fine looking like this on a AMD barton 2500+


(timestart) #25

[QUOTE=09wejg-02394jg;295504]FPS is not the be-all end-all. U play like this and u will pay a price in visual recognition cuz of the high pixelation.

The link posted in OP is a better balance of FPS and acutally being able to see stuff properly. Borders on hax TBH.

Both are degenerate.[/QUOTE]

The OP did ask for maximum FPS. And, as I remarked in post you quoted, many of the most visible graphical tweaks (like texture filtering, LOD bias, MegaTexture streaming limiting, etc.) don’t make any measurable difference to my FPS.

I don’t see how this “borders on hax” though.


(king_troll) #26

uploaded a new autoexec.cfg… it does a few more things, and sets the correct detail levels in the options screen

download this autoexec.cfg and the game will run fine looking like this on a AMD barton 2500+


(brbrbr) #27

another good reason to keep “Com_unlockFPS” cvar in Read-Only state locking.
c’mon, 60 FPS cap is good enough, while extreme lags and huge server resources consumption isn’t.

hardly consider “0” timing method acceptable. yes, its provide 10-20% more FPS, but at what cost ? both server-side and client-side. suffocated CPU will make other parts of engine sucks and even NIC’s/firewall will scream, screwed.
stick with default “2” - its works. and works Good.


(king_troll) #28

just use my autoexec, you will have perfect megatextures, alot of detail, the only slow down if you have a barton 2500+ athlon XP or similar intel, is polys of the terrain on area22 and slipgate will make the game choppy if you dont havfe enough ram for 1024 megatexture tiles, which makes the megatexture perfect with no abnormalities

the autoexec is better on athlon 64 or better with more then 800x600

net_clientMaxPrediction will needs to have 0. put infront of, its the limit of ping before the game is lagged
net_predictionErrorDecay is better at 0.10, and part of clientside thinking and stop players warping


(Genuinek) #29

sorrry this post


(Genuinek) #30

seta bse_simple “1”
seta bse_rateCost “1.0”
seta bse_rateLimit “0”
seta bse_detailLevel “0”
seta net_maxQoSRequests “12”
seta net_QoSTimeout “999”
seta net_useUPnP “1”
seta m_rawInput “1”
seta s_decompressionLimit “6”
seta s_libOpenAL “openal32.dll”
seta s_micDevice “1764686884”
seta s_voiceDevice “1024797962”
seta s_primaryDevice “1024797962”
seta s_driver “dsound”
seta net_socksPassword “”
seta net_socksUsername “”
seta net_socksPort “1080”
seta net_socksServer “”
seta net_socksEnabled “0”
seta win_ypos “0”
seta win_xpos “0”
seta win_notaskkeys “1”
seta sys_lang “english”
seta in_joy4_device “232429”
seta in_joy3_device “232429”
seta in_joy2_device “232429”
seta in_joy1_device “232429”
seta ri_maxViewers “0”
seta net_spawnRepeater “0”
seta net_httpServerPlayerBW “0”
seta net_httpServerGlobalBW “0”
seta net_httpServerPort “0”
seta net_httpProxyMode “1”
seta net_httpProxy “”
seta net_updateAutoExecute “1”
seta net_updateAutoDownload “1”
seta net_serverSpeexEnabled “1”
seta net_serverSpeexQuality “6”
seta net_serverPunkbusterEnabled “0”
seta net_clientPunkbusterEnabled “1”
seta net_clientUseroriginTime “100”
seta net_clientPrediction “-20”
seta net_clientServerTimeout “99999”
seta net_serverClientTimeout “99999”
seta net_clientMaxRate “25000”
seta net_serverMaxClientRate “25000”
seta net_serverMaxRepeaterRate “32000”
seta net_serverSnapshotDelay “1”
seta net_clientRepeaterAutoDownload “0”
seta net_clientRepeaterDelay “0”
seta m_strafeSmooth “4”
seta m_smooth “1”
seta m_strafeScale “6.25”
seta m_yaw “0.022”
seta m_pitch “0.022”
seta sensitivity “9”
seta in_toggleSprint “0”
seta in_toggleRun “0”
seta in_freeLook “1”
seta in_anglespeedkey “1.5”
seta in_pitchspeed “140”
seta in_yawspeed “140”
seta r_customAspectRatioV “10”
seta r_customAspectRatioH “16”
seta r_aspectRatio “0”
seta r_customHeight “800”
seta r_customWidth “1280”
seta r_fullscreen “1”
seta r_displayRefresh “75”
seta r_mode “4”
seta r_multiSamples “0”
seta com_unlock_maxFPS “60”
seta com_unlock_timingMethod “2”
seta com_unlockFPS “1”
seta com_useFastVidRestart “1”
seta com_videoRam “512”
seta com_showTPS “0”
seta com_showBPS “0”
seta com_showFPS “0”
seta com_allowConsole “1”
seta com_purgeAll “0”
seta com_gpuSpec “0”
seta com_machineSpec “0”
seta com_useBinaryDecls “2”
seta s_maxLowPrioritySounds “8”
seta s_useAdpcmCompression “1”
seta s_numberOfSpeakers “2”
seta s_globalFraction “0.8”
seta s_subFraction “0.75”
seta s_playDefaultSound “1”
seta s_volume_VoIPScale “0.5”
seta s_volume_VoIPOut_dB “10”
seta s_volume_VoIPIn_dB “10”
seta s_volume_dB “-15.399965”
seta s_meterTopTime “2000”
seta s_esa1_maxWindow “0.4”
seta s_esa1_minVolume “0.15”
seta s_earSeperationAlgo “0”
seta s_reverse “0”
seta s_spatializationDecay “2”
seta s_maxSoundsPerShader “0”
seta r_megaTilesPerSecond “0”
seta r_megaUpscale “0”
seta r_megaStreamFromDVD “0”
seta r_megaFadeTime “600”
seta r_megaStreamBlocks “4”
seta r_detailFade “0”
seta r_detailTexture “0”
seta r_imposterFade “80”
seta r_imposterFadeStart “130”
seta r_imposterCutoff “80”
seta r_visDistMult “1.2”
seta r_useThreadedRenderer “0”
seta r_shaderSkipSpecCubeMaps “1”
seta r_normalizeNormalMaps “1”
seta r_shaderPreferALU “1”
seta r_shaderQuality “2”
seta r_useFBODestinationBuffer “0”
seta r_useAlphaToCoverage “0”
seta r_inhibitEXTGPP “0”
seta r_debugArrowStep “120”
seta r_debugLineWidth “1”
seta r_debugLineDepthTest “0”
seta r_skipRefractCopy “0”
seta r_skipDepthAmbient “0”
seta r_useShadowVisDistMult “1.0”
seta r_trisColor “1.0 1.0 1.0 1.0”
seta r_forceLoadImages “0”
seta r_megatexturePreferALU “1”
seta r_shadows “0”
seta r_shadowPolygonFactorMT “0”
seta r_shadowPolygonOffsetMT “-1”
seta r_shadowPolygonFactor “0”
seta r_shadowPolygonOffset “-1”
seta r_offsetunits “-600”
seta r_useDitherMask “0”
seta r_brightness “1.3”
seta r_gamma “1.3”
seta r_swapInterval “1”
seta r_elevateForceClear “2”
seta r_megaDrawMethod “3”
seta r_softParticles “0”
seta r_useIndexBuffers “1”
seta r_useShadowInfinite “1”
seta r_useShadowFastParallel “1”
seta r_stuffCacheMegs “16”
seta r_skipStuff “1”
seta r_stuffFadeEnd “2500”
seta r_stuffFadeStart “1500”
seta r_MD5LodScale “1”
seta image_specularPicMip “-2”
seta image_diffusePicMip “-2”
seta image_bumpPicMip “-2”
seta image_picMip “-2”
seta image_picMipEnable “1”
seta image_detailPower “0.7”
seta image_ignoreHighQuality “1”
seta image_useBackgroundLoads “1”
seta image_useNormalCompression “2”
seta image_useAllFormats “1”
seta image_useCompression “1”
seta image_roundDown “1”
seta image_lodbias “0”
seta image_anisotropy “0”
seta image_filter “GL_LINEAR_MIPMAP_NEAREST”
seta r_occlusionsMaxFrames “10”
seta r_renderProgramLodFade “1”
seta r_renderProgramLodDistance “-1”
seta r_AtmospherePostprocess “0”
seta r_noDoubleAtmosphere “1”
seta g_class_context_aggressor “aggressor”
seta g_class_context_technician “technician”
seta g_class_context_constructor “constructor”
seta g_class_context_oppressor “oppressor”
seta g_class_context_infiltrator “infiltrator”
seta g_class_context_solider “soldier”
seta g_class_context_medic “medic”
seta g_class_context_engineer “engineer”
seta g_class_context_fieldops “fieldops”
seta g_class_context_covertops “covertops”
seta g_skipPostProccess “1”
seta ec_disableMuzzleFlash “1”
seta ec_autorecord “1”
seta ec_skipAtmosphericEffects “1”
seta ec_skipsky “3”
seta ui_clantag “^24kings”
seta ui_name “^9nkm”
seta ui_clanTagPosition “1”
seta ec_useMapScripts “1”
seta net_clientLagOMeter “0”
seta r_useTurboShadow “1”
seta g_decals “1”
seta g_showPlayerShadow “1”
seta image_globalPicMip “-2”
seta com_fixedTic “1”
seta g_transportDebrisLowCutoff “0”
seta g_transportDebrisMediumCutoff “0”
seta g_transportDebrisHighCutoff “0”
seta g_transportDebrisExtraHighCutoff “0”
seta g_maxTransportDebrisLow “0”
seta g_maxTransportDebrisMedium “0”
seta g_maxTransportDebrisHigh “0”
seta g_maxTransportDebrisExtraHigh “0”
seta gui_voteAlpha “1”
seta g_advancedHud “0”
seta g_voteKeepVote “0”
seta g_rotateCommandMap “1”
seta g_drawPlayerIcons “1”
seta pm_bobup “0.005”
seta pm_crouchbob “0.23”
seta pm_runbob “0.4”
seta pm_runpitch “0.002”
seta pm_bobpitch “0.002”
seta pm_runroll “0.005”
seta pm_bobroll “0.002”
seta pm_walkbob “0.3”
seta g_fov “110”
seta ui_showGun “1”
seta ui_autoReload “1”
seta ui_autoSwitch “1”
seta ui_autoSwitchEmptyWeapons “1”
seta ui_postArmFindBestWeapon “0”
seta ui_ignoreExplosiveWeapons “1”
seta g_keepFireTeamList “0”
seta ui_showComplaints “1”
seta gui_showRespawnText “1”
seta gui_fireTeamAlpha “1”
seta gui_chatAlpha “1”
seta g_weaponSwitchTimeout “1.5”
seta g_playerArrowIconSize “8”
seta g_playerIconSize “20”
seta g_showVehicleCockpits “1”
seta g_unlock_viewStyle “1”
seta g_unlock_interpolateMoving “1”
seta g_unlock_updateViewpos “1”
seta g_unlock_updateAngles “1”
seta g_mineTriggerWarning “1”
seta g_drawHudMessages “1”
seta g_drawVehicleIcons “1”
seta g_mineIconAlphaScale “1”
seta g_mineIconSize “10”
seta g_drawMineIcons “1”
seta gui_personalBestsAlpha “1”
seta ui_voipReceiveFireTeam “1”
seta ui_voipReceiveTeam “1”
seta ui_voipReceiveGlobal “0”
seta g_chatLineTimeout “5”
seta g_skipintro “0”
seta ui_rememberCameraMode “0”
seta gui_crosshairColor “0.00 1.00 0.00 1.00”
seta gui_crosshairSpreadScale “1”
seta gui_crosshairGrenadeAlpha “1”
seta gui_crosshairStatsAlpha “0”
seta gui_crosshairSpreadAlpha “0”
seta gui_crosshairAlpha “1”
seta gui_crosshairKey “pin_12”
seta gui_crosshairDef “crosshairs”
seta g_hitBeep “1”
seta g_bind_context_anansi “vehicle”
seta g_bind_context_badger “vehicle”
seta g_bind_context_bumblebee “vehicle”
seta g_bind_context_desecrator “vehicle”
seta g_bind_context_goliath “vehicle”
seta g_bind_context_hog “vehicle”
seta g_bind_context_hornet “vehicle”
seta g_bind_context_husky “vehicle”
seta g_bind_context_icarus “vehicle”
seta g_bind_context_mcp “vehicle”
seta g_bind_context_platypus “vehicle”
seta g_bind_context_titan “vehicle”
seta g_bind_context_trojan “vehicle”
seta g_class_context_soldier “soldier”
seta aor_physicsLod3StartScale “1”
seta aor_physicsLod2StartScale “1”
seta aor_physicsLod1StartScale “1”
seta aor_ikCutoffScale “1”
seta aor_animationCutoffScale “1”
seta aor_physicsCutoffScale “1”
seta gui_notificationPause “5”
seta gui_notificationTime “8”
seta gui_invertMenuPitch “0”
seta gui_doubleClickTime “0.2”
seta gui_tooltipDelay “0.7”
seta gui_vehicleDirectionAlpha “0.5”
seta gui_vehicleAlpha “1”
seta gui_tooltipAlpha “1”
seta gui_obitAlpha “1”
seta gui_objectiveStatusAlpha “1”
seta gui_objectiveListAlpha “1”
seta gui_commandMapAlpha “1”
seta s_volumeMusic_dB “-29.699924”
seta g_radialMenuMouseSensitivity “0.7”
seta g_radialMenuUseNumberShortcuts “1”
seta g_radialMenuStyle “0”
seta g_waypointDistanceMax “3084”
seta g_waypointDistanceMin “512”
seta g_waypointSizeMax “32”
seta g_waypointSizeMin “16”
seta g_showWayPoints “1”
seta g_waypointAlphaScale “0.7”
seta g_spectateViewLerpScale “0.7”
seta g_playerIconAlphaScale “0.5”
seta g_noBotSpectate “0”
seta in_hovertank_side_power “1”
seta in_hovertank_side_offset “0”
seta in_hovertank_side_invert “0”
seta in_hovertank_side_speed “140”
seta in_hovertank_side_deadZone “0.2”
seta in_hovertank_side_axis “-1”
seta in_hovertank_side_joy “1”
seta in_hovertank_yaw_power “4”
seta in_hovertank_yaw_offset “0”
seta in_hovertank_yaw_invert “1”
seta in_hovertank_yaw_speed “230”
seta in_hovertank_yaw_deadZone “0.2”
seta in_hovertank_yaw_axis “2”
seta in_hovertank_yaw_joy “1”
seta in_hovertank_pitch_power “4”
seta in_hovertank_pitch_offset “0”
seta in_hovertank_pitch_invert “1”
seta in_hovertank_pitch_speed “230”
seta in_hovertank_pitch_deadZone “0.2”
seta in_hovertank_pitch_axis “3”
seta in_hovertank_pitch_joy “1”
seta in_hovertank_turn_power “1”
seta in_hovertank_turn_offset “0”
seta in_hovertank_turn_invert “0”
seta in_hovertank_turn_speed “140”
seta in_hovertank_turn_deadZone “0.2”
seta in_hovertank_turn_axis “0”
seta in_hovertank_turn_joy “1”
seta in_hovertank_forward_power “1”
seta in_hovertank_forward_offset “0”
seta in_hovertank_forward_invert “1”
seta in_hovertank_forward_speed “140”
seta in_hovertank_forward_deadZone “0.2”
seta in_hovertank_forward_axis “1”
seta in_hovertank_forward_joy “1”
seta in_heli_side_power “1”
seta in_heli_side_offset “0”
seta in_heli_side_invert “1”
seta in_heli_side_speed “140”
seta in_heli_side_deadZone “0.2”
seta in_heli_side_axis “2”
seta in_heli_side_joy “1”
seta in_heli_forward_power “1”
seta in_heli_forward_offset “0”
seta in_heli_forward_invert “0”
seta in_heli_forward_speed “140”
seta in_heli_forward_deadZone “0.2”
seta in_heli_forward_axis “3”
seta in_heli_forward_joy “1”
seta in_heli_yaw_power “1”
seta in_heli_yaw_offset “0”
seta in_heli_yaw_invert “0”
seta in_heli_yaw_speed “140”
seta in_heli_yaw_deadZone “0.2”
seta in_heli_yaw_axis “0”
seta in_heli_yaw_joy “1”
seta in_heli_throttle_power “1”
seta in_heli_throttle_offset “0”
seta in_heli_throttle_invert “1”
seta in_heli_throttle_speed “140”
seta in_heli_throttle_deadZone “0.2”
seta in_heli_throttle_axis “1”
seta in_heli_throttle_joy “1”
seta in_car_yaw_power “4”
seta in_car_yaw_offset “0”
seta in_car_yaw_invert “1”
seta in_car_yaw_speed “230”
seta in_car_yaw_deadZone “0.2”
seta in_car_yaw_axis “2”
seta in_car_yaw_joy “1”
seta in_car_pitch_power “4”
seta in_car_pitch_offset “0”
seta in_car_pitch_invert “1”
seta in_car_pitch_speed “230”
seta in_car_pitch_deadZone “0.2”
seta in_car_pitch_axis “3”
seta in_car_pitch_joy “1”
seta in_car_steering_power “1”
seta in_car_steering_offset “0”
seta in_car_steering_invert “0”
seta in_car_steering_speed “140”
seta in_car_steering_deadZone “0.2”
seta in_car_steering_axis “0”
seta in_car_steering_joy “1”
seta in_car_throttle_power “1”
seta in_car_throttle_offset “0”
seta in_car_throttle_invert “1”
seta in_car_throttle_speed “140”
seta in_car_throttle_deadZone “0.2”
seta in_car_throttle_axis “1”
seta in_car_throttle_joy “1”
seta in_player_side_power “1”
seta in_player_side_offset “0”
seta in_player_side_invert “0”
seta in_player_side_speed “140”
seta in_player_side_deadZone “0.2”
seta in_player_side_axis “0”
seta in_player_side_joy “1”
seta in_player_forward_power “1”
seta in_player_forward_offset “0”
seta in_player_forward_invert “1”
seta in_player_forward_speed “140”
seta in_player_forward_deadZone “0.2”
seta in_player_forward_axis “1”
seta in_player_forward_joy “1”
seta in_player_yaw_power “4”
seta in_player_yaw_offset “0”
seta in_player_yaw_invert “1”
seta in_player_yaw_speed “230”
seta in_player_yaw_deadZone “0.2”
seta in_player_yaw_axis “2”
seta in_player_yaw_joy “1”
seta in_player_pitch_power “4”
seta in_player_pitch_offset “0”
seta in_player_pitch_invert “1”
seta in_player_pitch_speed “230”
seta in_player_pitch_deadZone “0.2”
seta in_player_pitch_axis “3”
seta in_player_pitch_joy “1”
seta g_radialMenuMouseInput “2”
seta g_vehicleSteerKeyScale “1”
seta g_noQuickChats “0”
seta g_aptWarning “3”
seta g_noTVChat “0”
seta ri_name “”
seta g_privateViewerPassword “”
seta ri_privateViewers “0”
seta g_repeaterPassword “”
seta g_viewerPassword “”
seta ri_useViewerPass “0”
seta net_serverDlTable “”
seta net_serverDlBaseURL “”
seta net_serverDownload “0”
seta g_tooltipVolumeScale “-20”
seta g_tooltipTimeScale “1”
seta g_playTooltipSound “0”
seta g_useBotsInPlayerTotal “1”
seta g_autoReadyWait “1”
seta g_autoReadyPercent “50”
seta g_maxVoiceChatsOver “30”
seta g_maxVoiceChats “4”
seta g_voteWait “2.5”
seta g_maxSpectateTime “0”
seta g_kickBanLength “2”
seta g_xpSave “1”
seta g_privatePassword “”
seta g_password “”
seta g_gameReviewPause “0.09”
seta g_warmup “0.5”
seta g_muteSpecs “0”
seta g_warmupDamage “1”
seta g_teamSwitchDelay “5”
seta g_execMapConfigs “0”
seta g_complaintGUIDLimit “4”
seta g_complaintLimit “6”
seta g_allowComplaint_vehicles “1”
seta g_allowComplaint_explosives “1”
seta g_allowComplaint_charge “0”
seta g_allowComplaint_firesupport “1”
seta pm_vehicleSoundLerpScale “10”
seta password “”
seta g_maxPlayerWarnings “0”
seta g_showPlayerClassIcon “0”
seta pm_skipBob “0”
seta m_playerYawScale “1”
seta m_playerPitchScale “1”
seta m_heavyVehicleYawScale “1”
seta m_heavyVehiclePitchScale “1”
seta m_lightVehicleYawScale “1”
seta m_lightVehiclePitchScale “1”
seta m_bumblebeeYawScale “1”
seta m_bumblebeePitchScale “1”
seta m_helicopterYawScale “1”
seta m_helicopterPitchScale “1”
seta m_helicopterYaw “0.022”
seta m_helicopterPitch “-0.022”
seta g_commandMapZoom “0.25”
seta g_commandMapZoomStep “0.125”
seta ui_swapFlightYawAndRoll “0”
seta ui_drivingCameraFreelook “0”
seta ui_advancedFlightControls “1”
seta si_serverURL “”
seta si_gameReviewReadyWait “1”
seta si_disableGlobalChat “0”
seta si_noProficiency “0”
seta si_allowLateJoin “1”
seta si_minPlayers “0”
seta si_readyPercent “51”
seta si_disableVoting “1”
seta si_adminStart “0”
seta si_motd_4 “”
seta si_motd_3 “”
seta si_motd_2 “”
seta si_motd_1 “”
seta si_irc “”
seta si_email “”
seta si_adminname “”
seta si_website “”
seta si_teamForceBalance “0”
seta si_timelimit “20”
seta si_rules “sdGameRulesObjective”
seta si_spectators “1”
seta si_pure “1”
seta si_needPass “0”
seta si_teamDamage “0”
seta si_privateClients “0”
seta si_maxPlayers “16”
seta si_name “ETQW Server”
seta testLightColor “1.0 1.0 1.0”
seta g_minAutoVotePlayers “0”
seta g_votePassPercentage “51”
seta g_chatFireTeamColor “0.8 0.8 0.8 1”
seta g_chatTeamColor “1 1 0 1”
seta g_chatDefaultColor “1 1 1 1”
seta anim_reduced “1”
seta g_autoScreenshot “0”
seta g_autoScreenshotNameFormat “screenshots/scoreboard_$year$$month$$day$$hour$$min$$sec$$map$$rules$$name$build$srcrev$$mediarev$.tga"
seta g_autoRecordDemos “0”
seta g_autoDemoNameFormat "$year$$month$$day$
$hour$$min$$sec$$map$$rules$$name$build$srcrev$$mediarev$.ndm”
seta g_useCompiledScript “1”
seta g_cheapDecalsMaxDistance “16384”
seta g_buddyColor “0 1 1 1”
seta g_fireteamLeaderColor “1 1 0 1”
seta g_fireteamColor “1 1 1 1”
seta g_enemyColor “0.9 0.1 0.1 1”
seta g_neutralColor “0.75 0.75 0.75”
seta g_friendlyColor “.5 .83 0 1”


(Rex) #31

Another gravedigger…

By the way the guy who started this thread doesn’t need a cfg anymore, he got his own cheat programs doing it. :smiley:


(Genuinek) #32

What a pleasure to play Hax?


(Donnovan) #33

I really dont want to say nothing. But low graphics have anything to do with hax?


(BioSnark) #34

^ this:

Also rivertuna or whatever that drama camel was called.


(edxot) #35

yes, “low graphics” is what you get when you sell your good computer to buy "hax"ixe.

glad to help. finally i understood something you said.


(.N.E.R.D.) #36

When I take off my glasses I got low graphics in Reallife !!!


(Dthy) #37

unbind all
bind all kill


(cloudhalo) #38

is using tray tools illegal? or do some pro people use it, cause i dont mind having graphics that low to take out a bush or 2 to get more accurate shots?


(Kl3ppy) #39

No, its not illegal to use, but in comp games 3rd party software which interacts with the game was forbidden. Oh and just turning your gfx down wont make you better …


(cloudhalo) #40

if u fight some1 in a bush its hard to see. if u remove that bush with tray tools, but ur opponent still on their screen has that bush ur accuracy is better, no?