CS2 Updates

This website provides updates, news, and insider information about Counter-Strike, including game updates, patches, and changes.
Show raw JSON
{
  "generated_at_utc": "2026-03-10T10:56:03.087Z",
  "source": {
    "owner": "SteamDatabase",
    "repo": "GameTracking-CS2"
  },
  "last_updates": [
    {
      "event_id": "gh:e438cbb",
      "detected_at_utc": "2026-03-10T10:56:01.399Z",
      "commit_date_utc": "2026-03-09T19:59:57Z",
      "commit": {
        "sha": "e438cbb36be382fe6b1200d50ca467db06aef76c",
        "short": "e438cbb",
        "message": "2000747 | 18 files | M game/bin/built_from_cl.txt,  M game/bin/linuxsteamrt64/libengine2_strings.txt,  M game/bin/linuxsteamrt64/liblocalize_strings.txt,  M game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt,  M game/bin/linuxsteamrt64/libparticles_strings.txt,  M game/bin/linuxsteamrt64/libscenefilecache_strings.txt,  M game/bin/linuxsteamrt64/libtier0_strings.txt,  M game/bin/linuxsteamrt64/libv8system_strings.txt,  M game/bin/linuxsteamrt64/libworldrenderer_strings.txt,  M game/bin/win64/csgocfg.exe_strings.txt,  M game/bin/win64/resourcecompiler_strings.txt,  M game/bin/win64/resourceinfo.exe_strings.txt,  M game/bin/win64/tools/met_strings.txt,  M game/bin/win64/vrad3_strings.txt,  M game/csgo/bin/linuxsteamrt64/libclient_strings.txt,  M game/csgo/pak01_dir.txt,  M game/csgo/readonly_tools_asset_info.txt,  M game/csgo/steam.inf",
        "url": "https://github.com/SteamDatabase/GameTracking-CS2/commit/e438cbb36be382fe6b1200d50ca467db06aef76c"
      },
      "classification": {
        "tags": [
          "misc",
          "content-change"
        ],
        "important_files": []
      },
      "ai_summary": "Assets/UI/maps update (game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt).",
      "stats": {
        "files_changed": 18,
        "additions": 115,
        "deletions": 105
      },
      "files": [
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-10497842\n+10506857"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libengine2_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1511,6 +1511,7 @@ $lZT\n 16ILoopModeFactory\n 16IMatchEventsSink\n 16IProtobufBinding\n+17:52:22\n 17CBaseCmdKeyValuesI20CCLCMsg_CmdKeyValuesE\n 17CBaseCmdKeyValuesI20CSVCMsg_CmdKeyValuesE\n 17CBaseCmdKeyValuesI32CSVCMsg_GameSessionConfigurationE\n@@ -1632,7 +1633,6 @@ $lZT\n 1wsHp\n 2%sT5\n 200000\n-20:08:06\n 20CCLCMsg_ClientInfo_t\n 20CCLCMsg_CmdKeyValues\n 20CCLCMsg_Diagnostic_t\n@@ -5637,7 +5637,7 @@ MapValueRef::SetInt64Value\n MapValueRef::SetStringValue\n MapValueRef::SetUInt32Value\n MapValueRef::SetUInt64Value\n-Mar  4 2026\n+Mar  6 2026\n March\n Marked tick %u in '%s'\\n\n Marker,GPUTimeAvgMS,GPUTimeRangeMS,GPUTimeMinMS,GPUTimeMaxMS\\n"
        },
        {
          "filename": "game/bin/linuxsteamrt64/liblocalize_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -156,7 +156,6 @@\n 34CLocalizeCompiledStringSinglePlain\n 35CLocalizeCompiledStringLocVariables\n 36CLocalizeCompiledStringMessageFormat\n-4k4$\n 9CLocalize\n 9ILocalize\n :help"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -2106,7 +2106,6 @@ program\n progress\n pthread_cancel\n purple\n-qd$6\n radial\n radial( \n rebeccapurple"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libparticles_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -1707,6 +1707,7 @@ PARTICLE_ID\n PET_SupportFadingOpaqueModels\n PITCH\n PREV_XYZ\n+PT|JD\n PanelID\n Parent Map: %s\\n\n Parent Particle ID"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libscenefilecache_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -563,6 +563,7 @@ _response\n _rule\n _scene_stop_time_\n _to_curve_\n+aRBi\n actors\n anchor_actor_name\n animclip"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libtier0_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -6472,7 +6472,6 @@ _txnal_logic_error_get_msg(void*)\n _txnal_runtime_error_get_msg(void*)\n _txnal_sso_string_c_str(void const*)\n _wWT+\n-a lz\n a?y#c?sIe?\n aC.B\n aG0\""
        },
        {
          "filename": "game/bin/linuxsteamrt64/libv8system_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -17,6 +17,7 @@\n 22V8ArrayBufferAllocator\n 23CKV3ResourceBlockHelper\n 25IAsyncProcessedDataResult\n+7aw\\\n Bad KV3 data for resource '%s': %s\\n\n Default size of stack region v8 is allowed to use (in kBytes)\n Disable runtime allocation of executable memory for V8."
        },
        {
          "filename": "game/bin/linuxsteamrt64/libworldrenderer_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -154,7 +154,6 @@ Not safe to 'new' this class due to alignment requirements\n NumCols() <= V_ARRAYSIZE( s_DummyRow )\n Physics\n PushCurrentSkewBrightnessValuesToSceneObject\n-QAw#Z\n RESOURCE_TYPE_ENTITY_LUMP\n RESOURCE_TYPE_WORLD\n RESOURCE_TYPE_WORLD_NODE"
        },
        {
          "filename": "game/bin/win64/csgocfg.exe_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -408,9 +408,9 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n /e,/select,\"\n /game/\n /src/\n+09:52:14\n 0iN>/\n 11Y@\n-12:10:12\n 1:1: Tokens : ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );\n 1AcceptIfItemPicked()\n 1OnAccept()\n@@ -1787,7 +1787,7 @@ MVDataOutlinerLeafNameFn\n M\\n?done@QDialog@@UEAAXH@Z\n MapListService_001\n Maps\n-Mar  4 2026\n+Mar  6 2026\n March\n MaterialUtils_001\n MemAlloc_AllocFunc"
        },
        {
          "filename": "game/bin/win64/resourcecompiler_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -20707,11 +20707,11 @@ $prefix_element$\n 1.01 8.0\n 10 2000\n 100 22050\n+10:00:12\n 11Y@\n 11nN\n 12'0\n 1280x720\n-12:13:36\n 12v)\n 14 (default)\n 15\\tr\\\n@@ -47311,7 +47311,7 @@ pbeWithSHA1And40BitRC2-CBC\n pbeWithSHA1And40BitRC4\n pbeWithSHA1AndDES-CBC\n pbeWithSHA1AndRC2-CBC\n-pc64 Mar  4 2026 12:14:54\n+pc64 Mar  6 2026 09:58:05\n pcPathLengthConstraint\n peak_attr\n peak_cycle"
        },
        {
          "filename": "game/bin/win64/resourceinfo.exe_strings.txt",
          "status": "modified",
          "additions": 68,
          "deletions": 71,
          "changes": 139,
          "patch": "@@ -1187,11 +1187,10 @@ $prefix_element$\n 093@\n 0;Q5[\n 0<cz\n+0B6@\n 0C3@\n 0C5@\n 0D5@\n-0E6@\n-0G6@\n 0H3@\n 0I3@\n 0I6@\n@@ -1201,46 +1200,41 @@ $prefix_element$\n 0M5@\n 0MD5\n 0N3@\n-0N6@\n 0O4@\n+0O6@\n 0P4@\n-0Q6@\n+0P6@\n 0R3@\n 0T3@\n 0U3@\n 0W/5\n 0W4@\n 0X3@\n 0X4@\n-0X6@\n 0Y3@\n+0Y6@\n 0Z@q\n 0\\r0#0)070;0U0Y0[0g0q0y0}0\n 0b3@\n+0b6@\n 0c3@\n-0c6@\n 0d3@\n 0e3@\n-0e6@\n 0e\\r8\n-0f6@\n 0h3@\n 0i3@\n 0i6@\n 0iN>/\n 0k3@\n-0k6@\n-0l6@\n-0n6@\n 0pp@5tqE?|sO541\n 0q3@\n 0q6@\n 0r3@\n-0t6@\n 0tU+xc:\n-0u6@\n+0w6@\n 0x%llx\n-0x6@\n+0y6@\n+0z6@\n 0}dV\n 1!1'1-191C1E1K1]1a1g1m1s1\n 1#IND\n@@ -1411,15 +1405,15 @@ $prefix_element$\n 8<pl\n 8= zp\n 8A3@\n-8A6@\n 8A6j\n 8B3@\n+8C6@\n 8ClipBoard\n 8Csinf\n+8D6@\n 8E3@\n 8E5@\n 8F5@\n-8F6@\n 8G5@\n 8GZS\n 8H5@\n@@ -1430,33 +1424,36 @@ $prefix_element$\n 8N5@\n 8O3@\n 8P3@\n-8P6@\n 8Q3@\n 8S3@\n 8SIffK5W\n 8TZvrv<\n 8V3@\n 8W3@\n 8W6@\n-8Y6@\n 8Z3@\n+8Z6@\n 8\\v8!83858A8G8K8S8W8_8e8o8q8}8\n 8]Vc2\n 8a6@\n 8b3@\n+8c6@\n 8ca1\n+8d6@\n 8dS2\n-8g6@\n+8j6@\n+8l6@\n 8m3@\n 8n3@\n 8o3@\n 8o6@\n 8p3@\n 8pe7?\n 8q-S*]X\n+8r6@\n+8s6@\n 8sOy\n-8w6@\n-8y6@\n+8x6@\n 9#9%9)9/9=9A9M9[9k9y9}9\n 9)PF\n 9)jx\n@@ -3757,13 +3754,12 @@ H8xp\n H=`HY\n H@H9xqI\n HA3@\n+HA6@\n HB3@\n HBJ\\nTRF\n HD3@\n HD5@\n-HE6@\n HEAD \n-HF6@\n HH&a\n HH3@\n HH:mm:ss\n@@ -3778,21 +3774,21 @@ HMAC routines\n HMAC-MD5\n HMAC-SHA1\n HMAC_Init_ex\n-HN6@\n HO4@\n HO8?\n+HP6@\n HR4@\n HT3@\n HU3@\n HU>mA$_E*\n HW3@\n-HW6@\n HWyn\n-HX6@\n HY3@\n+HY6@\n Hammer temp export\n HammerMapLoader001\n Hash Algorithm: \n+Hb6@\n HbAta\n Hc S\n Hc3@\n@@ -3802,17 +3798,19 @@ Hd3@\n Hd4@\n HdEu\n He3@\n-He6@\n Heap32First\n Heap32ListFirst\n Heap32ListNext\n Heap32Next\n HelpSystem_001\n Hf3@\n+Hg6@\n Hg>?S\n Hh4@\n Hhr+g\n+Hi6@\n Hj3@\n+Hj6@\n Hk3@\n Hl3@\n Ho6@\n@@ -3826,11 +3824,9 @@ Hostname mismatch\n Hp)X?\n Hp3@\n Hq,r/f\n-Hq6@\n HqI9x\n Ht4qw\n-Hw6@\n-Hx6@\n+Hy6@\n H{1S\n I\"9|OxTex\n I+8G\n@@ -4480,6 +4476,7 @@ PARSE_BAGS\n PARSE_HTTP_LINE1\n PARSE_TAGGING\n PATHBYADDR\n+PB6@\n PBE-MD2-DES\n PBE-MD2-RC2-64\n PBE-MD5-DES\n@@ -4499,6 +4496,7 @@ PBKDF2\n PBKDF2PARAM\n PBMAC1\n PC5@\n+PD6@\n PE5@\n PEIF\n PEM lib\n@@ -4531,7 +4529,6 @@ PEM_write\n PEM_write_bio\n PF5@\n PG5@\n-PG6@\n PGr]\n PHAG2\n PHhn}Y\n@@ -4655,7 +4652,6 @@ PL5@\n PLATFORM\n PM3@\n PM5@\n-PM6@\n PN3@\n PN4@\n PO3@\n@@ -4674,7 +4670,6 @@ PPz\\v=\n PQ3@\n PR3@\n PR4@\n-PR6@\n PRB+\n PRINTABLE\n PRINTABLESTRING\n@@ -4696,7 +4691,9 @@ PUT\n PV3@\n PW3@\n PW4@\n+PW6@\n PZ3@\n+PZ6@\n Pa6@\n Packed store %s with refcount > 0.\\n\n PackedBlobNormal\n@@ -4709,6 +4706,7 @@ Particle Configuration File\n ParticleSystemMgr003\n Pb3@\n Pd4@\n+Pd6@\n PeekNamedPipe\n Peer haven't sent GOST certificate, required for selected ciphersuite\n PerVertexLighting\n@@ -4719,7 +4717,7 @@ Ph4@\n Physics\n PhysicsBuilderMgr001\n PivotPaint\n-Pk6@\n+Pl6@\n Plat_AttachDebuggerToProcess\n Plat_CPUTickFrequency\n Plat_CheckSDL\n@@ -4767,6 +4765,7 @@ Plat_UnloadSDL\n Pm8A?\n PmR\"H?\n Pn3@\n+Pn6@\n Pointers cannot be used as numeric values\n Policy Qualifier CPS\n Policy Qualifier User Notice\n@@ -4802,12 +4801,13 @@ Process32Next\n PropWorldOrigin\n PropertyEditorSystem_001\n Proxy Certificate Information\n+Pt6@\n Public Key\n Public-Key\n Public-Key: (%d bit)\\n\n Pv6@\n Pw3@\n-Py6@\n+Pz6@\n P|iC\\r\n Q*hd\n Q/xtJ2\n@@ -6078,62 +6078,52 @@ X9_62_PENTANOMIAL\n X9cm\n X:vS\n XA3@\n-XA6@\n XB3@\n XB`i|\n-XC6@\n XD3@\n-XD6@\n XD{p7\n+XE6@\n XF3@\n XF6@\n XFle\n XG3@\n+XG6@\n XG[r\n XH5@\n-XH6@\n XI3@\n XI5@\n+XI6@\n XJ3@\n XLuC'4\n XM4@\n XMM{*\n XN5@\n XNU`{3\n-XP6@\n XQ6@\n XR4@\n XRJ2\n-XW6@\n XWY]\n XX3@\n XX6@\n-XY6@\n XYD%\n X\\tQo\n Xa3@\n-Xb6@\n-Xc6@\n Xd3@\n Xd3h\n-Xd6@\n Xe6@\n Xf6@\n XfJ7\n XjfR\n Xk3@\n Xm3@\n-Xn6@\n Xo3@\n Xo6@\n Xp3@\n XqgA+\n-Xu6@\n Xuub\n Xw6@\n XwA0\n Xz\"7\n-Xz6@\n Y-Ny\n Y4i%\n Y93a=7c@\n@@ -7930,24 +7920,24 @@ h93@\n hA3@\n hB6@\n hC3@\n+hC6@\n+hD6@\n hE5@\n hEM&!\n hF3@\n+hF6@\n hF\\rDz\n hFcg\n hG3@\n-hG6@\n+hH6@\n hI3@\n hJ3@\n hJxRX@_\n hM4@\n-hM6@\n hN2D\n-hN6@\n hO3@\n+hO6@\n hP4@\n-hP6@\n-hQ6@\n hR3@\n hRB.\n hS3@\n@@ -7956,26 +7946,28 @@ hV3@\n hW*m\n hW1M\n hW_z\n-hX6@\n hX@e\n hZ3@\n+hZ6@\n h`Zr\n hammer\n hash\n hashAlgorithm\n hashFunc\n+hb6@\n hb`V\n hbvc\n hc[N\n hc\\raF\n-he6@\n+hd6@\n header too long\n heartbeat request already pending\n height\n hex:\n hex_to_string\n hexkey\n hg3@\n+hg6@\n hhwi\n hiddenFlags\n hiddenGroups\n@@ -8011,8 +8003,9 @@ houseIdentifier\n hr_H\n http request\n https proxy request\n+hv6@\n hvL&\n-hy6@\n+hw6@\n hz6@\n h|gg\n i <= EVP_MAX_MD_SIZE\n@@ -9446,6 +9439,8 @@ pB3@\n pC5@\n pD4t\n pE3@\n+pE6@\n+pG6@\n pG_*h\n pH5@\n pI5@\n@@ -9457,23 +9452,24 @@ pM3@\n pM4@\n pM5@\n pN4@\n+pN6@\n pO0h\n pO4@\n pP3@\n pQ3@\n+pQ6@\n pR4@\n pRTH\n pSPo\n pSourceFunc\n pSpecified\n pT3@\n pU>\\AL\n-pW6@\n pX3@\n+pX6@\n pY3@\n p^i9\n pa3@\n-pa6@\n packet length too long\n padding check failed\n pagerTelephoneNumber\n@@ -9508,7 +9504,6 @@ pathlen\n pattern\n payload + padding <= 16381\n payment gateway capabilities\n-pb6@\n pbeWithMD2AndDES-CBC\n pbeWithMD2AndRC2-CBC\n pbeWithMD5AndCast5CBC\n@@ -9526,7 +9521,7 @@ pc6@\n pcPathLengthConstraint\n pd3@\n pd4@\n-pd6@\n+pe6@\n peer did not return a certificate\n peer does not accept heartbeats\n peer error\n@@ -9568,6 +9563,7 @@ pin_enabled\n pivotOffset\n pixelAspectRatio\n pk3@\n+pk6@\n pkL'\n pkcs\n pkcs decoding error\n@@ -9601,6 +9597,7 @@ pkeyalg\n pkix\n pkparameters2group failure\n pl3@\n+pl6@\n pm3@\n pn6@\n point arithmetic failure\n@@ -9644,6 +9641,7 @@ pp&c\n pp3@\n ppBasis\n pq3@\n+pq6@\n pqualid\n pre mac length too long\n prefab_has_runtime_entity_by_default\n@@ -9707,6 +9705,8 @@ pseudonym\n psk identity not found\n psk no client cb\n psk no server cb\n+pt6@\n+pu6@\n pub: \n pub_key\n pubkey\n@@ -9726,7 +9726,7 @@ publish_data.txt\n purecall\n pvk data too short\n pvk too short\n-pw6@\n+px6@\n pzKD)\n q not prime\n q&A\\nn\n@@ -11068,52 +11068,49 @@ x509_store\n x931\n x93@\n xA3@\n+xA6@\n xC3@\n xD5@\n-xD6@\n xE5@\n-xE6@\n xF5@\n+xF6@\n xFKF\n xG5@\n-xH6@\n xJ5@\n xL5@\n xN5@\n-xO6@\n xOu\\vsF\n xP4@\n xP6@\n-xQ6@\n xQfF\n-xR6@\n xU3@\n xUN'\n xV3@\n xV4@\n xW3@\n xW4@\n+xW6@\n xX3@\n-xX6@\n xY6@\n x\\v6V\n+xa6@\n xb3@\n xc3@\n xe3@\n xg-9Ja\n xg3@\n+xg6@\n xh3@\n xi3@\n-xk6@\n xo6@\n xp$=S\n xpH8\n-xq6@\n xqI9\n xrJ:DCG\n xsK;\n-xx6@\n+xw6@\n xxH}\n+xy6@\n xzxv\n y#y&Jb\n y0JY"
        },
        {
          "filename": "game/bin/win64/tools/met_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -979,6 +979,7 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n /\\r?hideEvent@QScrollBar@@MEAAXPEAVQHideEvent@@@Z\n /]?size@QImage@@QEBA?AVQSize@@XZ\n 0123456789)\"\n+09:54:33\n 0=Wrap,1=Mirror,2=Clamp,3=Border,4=MirrorOnce\n 0iN>/\n 0x%1\n@@ -990,7 +991,6 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n 1/2/3\n 11Y@\n 128 x 128\n-12:09:19\n 1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );\n 1AboutAction()\n 1AcceptColorInternal(FatColor_t)"
        },
        {
          "filename": "game/bin/win64/vrad3_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -2730,7 +2730,7 @@ path_trace_triangles_gpu_init\n path_trace_triangles_gpu_shutdown\n path_trajectory\n pattern\n-pc64 Mar  4 2026 12:11:17\n+pc64 Mar  6 2026 09:50:07\n permission denied\n physicsSimplificationError\n physicsSimplificationOverride"
        },
        {
          "filename": "game/csgo/bin/linuxsteamrt64/libclient_strings.txt",
          "status": "modified",
          "additions": 8,
          "deletions": 6,
          "changes": 14,
          "patch": "@@ -2321,6 +2321,7 @@ $taser_charge\n %s------%s--%s%s\n %s.bin.usercmds\n %s.ctx\n+%s.events\n %s.txt\n %s.vo_preview\n %s.vpcf\n@@ -2676,6 +2677,7 @@ $taser_charge\n )->AmmoPercentage() < 30\\n\n )->AmmoPercentage() >= 30 \n )->AmmoPercentage() >= 30\\n\n+)24.Q\n )Ck?B\n )Fmk\n )J9o\n@@ -9106,6 +9108,7 @@ $taser_charge\n 4tpD\n 4zj@1;IJ\n 4|2;#GameUI_Retake_Card_LightEmUp,1,1,rifle1,grenade0|2;#GameUI_Retake_Card_Kobe,1,1,rifle1,grenade2|1;#GameUI_Retake_Card_1g,1,1,rifle1,grenade3|1;#GameUI_Retake_Card_DisappearingAct,1,1,rifle1,grenade1|1;#GameUI_Retake_Card_EyesOnTarget,1,1,weapon_aug\n+4~39=\n 5'0v2ZP\n 5-535;5A5Q5e5o5q5w5{5}5\n 5-\\rGw\n@@ -9567,7 +9570,7 @@ $taser_charge\n <weapon>\n =!=-=3=7=?=C=o=s=u=y={=\n =&sf9\n-=3LL\n+=3bL\n == %d Entities Dumped\\n\n == PulseGraphDef ==\\n\n == false\\n\n@@ -17453,7 +17456,6 @@ JSCreatePanelWithCurrentContext was not called within a context\n JSDelayLoadList\n JSValueFromKeyValue failed to package parameter %s (type %d)\\n\n JS_!0\n-JY3a\n JZIX\n J\\nHBF\n J`KL\n@@ -26358,7 +26360,7 @@ _var\n _xU`u\n _}eOk\n `28)fk\n-`43;D\n+`43ED\n `:zQF\n `D$daM-l\n `DZG\n@@ -29443,6 +29445,7 @@ demo-time-max\n demo_skip\n demo_start\n demo_stop\n+demo_tick\n demo_timescale %f\n democontroller\n demoplayback\n@@ -31677,6 +31680,7 @@ hugepages\n hummingbird\n hungarian\n hungry\n+hurt_events\n hvL&\n hyena\n hyphen\n@@ -31704,7 +31708,7 @@ i2d_pr.c\n i2o_ECPublicKey\n i2s_ASN1_ENUMERATED\n i2s_ASN1_INTEGER\n-i4<E\n+i4RE\n i4a.\"\n i5BH\n iA5StringSyntax\n@@ -38454,7 +38458,6 @@ t1_ext.c\n t1_lib.c\n t1_reneg.c\n t2U \n-t33@\n t4O_\n t80z\n tA`KO/3G!\\n7h=\n@@ -40578,7 +40581,6 @@ y#y&Jb\n y-offset\n y0JY\n y2Cu\n-y3yo\n y;w9\n y?iLa\n yG/9"
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 16,
          "deletions": 10,
          "changes": 26,
          "patch": "@@ -51492,6 +51492,8 @@ panorama/images/econ/status_icons/maptoken_favela_png.vtex_c CRC:00c0000e32 size\n panorama/images/econ/status_icons/maptoken_favela_small_png.vtex_c CRC:00110e46ab size:14352\n panorama/images/econ/status_icons/maptoken_frostbite_png.vtex_c CRC:0082230288 size:200738\n panorama/images/econ/status_icons/maptoken_frostbite_small_png.vtex_c CRC:0036cc2d9f size:14352\n+panorama/images/econ/status_icons/maptoken_golden_png.vtex_c CRC:00582b479b size:236755\n+panorama/images/econ/status_icons/maptoken_golden_small_png.vtex_c CRC:00fbfcacda size:11016\n panorama/images/econ/status_icons/maptoken_grail_png.vtex_c CRC:002b555d0d size:236086\n panorama/images/econ/status_icons/maptoken_grail_small_png.vtex_c CRC:002e162ca7 size:14448\n panorama/images/econ/status_icons/maptoken_grind_png.vtex_c CRC:005e78e609 size:197603\n@@ -51536,6 +51538,8 @@ panorama/images/econ/status_icons/maptoken_mutiny_png.vtex_c CRC:000558def6 size\n panorama/images/econ/status_icons/maptoken_mutiny_small_png.vtex_c CRC:00f2a5ccb1 size:14352\n panorama/images/econ/status_icons/maptoken_overgrown_png.vtex_c CRC:007d0286d8 size:203027\n panorama/images/econ/status_icons/maptoken_overgrown_small_png.vtex_c CRC:00bbf55330 size:14352\n+panorama/images/econ/status_icons/maptoken_palacio_png.vtex_c CRC:00a21b1edf size:236918\n+panorama/images/econ/status_icons/maptoken_palacio_small_png.vtex_c CRC:009572cd84 size:11016\n panorama/images/econ/status_icons/maptoken_palais_png.vtex_c CRC:0078b8bc66 size:235831\n panorama/images/econ/status_icons/maptoken_palais_small_png.vtex_c CRC:00cbb410b1 size:14384\n panorama/images/econ/status_icons/maptoken_pitstop_png.vtex_c CRC:00e00365dc size:199201\n@@ -51552,6 +51556,8 @@ panorama/images/econ/status_icons/maptoken_ravine_png.vtex_c CRC:00fb01250a size\n panorama/images/econ/status_icons/maptoken_ravine_small_png.vtex_c CRC:00ea521736 size:14352\n panorama/images/econ/status_icons/maptoken_resort_png.vtex_c CRC:001a372a49 size:199116\n panorama/images/econ/status_icons/maptoken_resort_small_png.vtex_c CRC:00632c4665 size:14352\n+panorama/images/econ/status_icons/maptoken_rooftop_png.vtex_c CRC:0089b7910a size:237081\n+panorama/images/econ/status_icons/maptoken_rooftop_small_png.vtex_c CRC:0084864871 size:11016\n panorama/images/econ/status_icons/maptoken_royal_png.vtex_c CRC:0018dfa709 size:197934\n panorama/images/econ/status_icons/maptoken_royal_small_png.vtex_c CRC:00b474a549 size:14352\n panorama/images/econ/status_icons/maptoken_ruby_png.vtex_c CRC:00104255a5 size:196741\n@@ -78640,33 +78646,33 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702\n radial_quickinventory.txt CRC:005a0c1bf5 size:1080\n rebuy.txt CRC:008332da3a size:1688\n resource/clientscheme.res CRC:001b42ad42 size:14978\n-resource/csgo_brazilian.txt CRC:0092249cd1 size:4749369\n+resource/csgo_brazilian.txt CRC:00c4dbdc65 size:4752595\n resource/csgo_bulgarian.txt CRC:0051f1d888 size:7275358\n-resource/csgo_czech.txt CRC:004a6e6a7a size:4822190\n+resource/csgo_czech.txt CRC:000d670ae3 size:4826719\n resource/csgo_danish.txt CRC:00951053b8 size:4727462\n resource/csgo_dutch.txt CRC:000660bedc size:4775598\n resource/csgo_english.txt CRC:0084ad8149 size:4609994\n resource/csgo_finnish.txt CRC:0087d37809 size:4697236\n-resource/csgo_french.txt CRC:004ec42d3b size:4964801\n-resource/csgo_german.txt CRC:0086211f1d size:4903688\n+resource/csgo_french.txt CRC:0041b4183c size:4969783\n+resource/csgo_german.txt CRC:00779ec2ff size:4903720\n resource/csgo_greek.txt CRC:00498a1437 size:6771568\n-resource/csgo_hungarian.txt CRC:0087f34706 size:4808592\n+resource/csgo_hungarian.txt CRC:00318e7eb6 size:4813313\n resource/csgo_indonesian.txt CRC:006e89afc6 size:4459909\n-resource/csgo_italian.txt CRC:007d5973d5 size:4889840\n+resource/csgo_italian.txt CRC:002bddd769 size:4889832\n resource/csgo_japanese.txt CRC:00af1893af size:5030539\n resource/csgo_koreana.txt CRC:00263d9b4d size:4821492\n resource/csgo_latam.txt CRC:0017d451a3 size:4901564\n-resource/csgo_norwegian.txt CRC:0074fe5715 size:4657691\n+resource/csgo_norwegian.txt CRC:00ed8cea24 size:4660456\n resource/csgo_polish.txt CRC:0077d79c9b size:5041830\n-resource/csgo_portuguese.txt CRC:00e2dfa5eb size:4797683\n+resource/csgo_portuguese.txt CRC:001c492a2d size:4802078\n resource/csgo_romanian.txt CRC:008bf7f527 size:4991365\n resource/csgo_russian.txt CRC:002557aa2c size:6234365\n-resource/csgo_schinese.txt CRC:008ed01717 size:4648172\n+resource/csgo_schinese.txt CRC:0092fab19f size:4652524\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n resource/csgo_spanish.txt CRC:0087fea09b size:4864146\n resource/csgo_swedish.txt CRC:0033da2639 size:4756896\n resource/csgo_tchinese.txt CRC:0005e6ab7d size:4373922\n-resource/csgo_thai.txt CRC:008d8dfc1e size:7702764\n+resource/csgo_thai.txt CRC:00f68f808d size:7702767\n resource/csgo_turkish.txt CRC:00e041e974 size:4878518\n resource/csgo_ukrainian.txt CRC:00c945fbd2 size:6274622\n resource/csgo_vietnamese.txt CRC:00740a29e7 size:5151030"
        },
        {
          "filename": "game/csgo/readonly_tools_asset_info.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 0,
          "changes": 6,
          "patch": "@@ -123046,3 +123046,9 @@ panorama/images/econ/status_icons/maptoken_warden_png.vtex\n panorama/images/econ/status_icons/maptoken_warden_small_png.vtex\n materials/models/inventory_items/music_kit/label_cs2.vmat\n materials/models/inventory_items/music_kit/label_cs2_color_psd_ad840642.vtex\n+panorama/images/econ/status_icons/maptoken_golden_png.vtex\n+panorama/images/econ/status_icons/maptoken_golden_small_png.vtex\n+panorama/images/econ/status_icons/maptoken_palacio_png.vtex\n+panorama/images/econ/status_icons/maptoken_palacio_small_png.vtex\n+panorama/images/econ/status_icons/maptoken_rooftop_png.vtex\n+panorama/images/econ/status_icons/maptoken_rooftop_small_png.vtex"
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 5,
          "deletions": 5,
          "changes": 10,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000745\n-ServerVersion=2000745\n+ClientVersion=2000747\n+ServerVersion=2000747\n PatchVersion=1.41.3.8\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=10497890\n-VersionDate=Mar 05 2026\n-VersionTime=11:19:02\n+SourceRevision=10506889\n+VersionDate=Mar 09 2026\n+VersionTime=11:24:19"
        }
      ]
    },
    {
      "event_id": "gh:2a39590",
      "detected_at_utc": "2026-03-10T10:56:01.526Z",
      "commit_date_utc": "2026-03-05T21:13:31Z",
      "commit": {
        "sha": "2a395905262360ff438ad6131e9b36ec6467ccf2",
        "short": "2a39590",
        "message": "2000745 | 3 files | M game/bin/built_from_cl.txt,  M game/csgo/pak01_dir.txt,  M game/csgo/steam.inf",
        "url": "https://github.com/SteamDatabase/GameTracking-CS2/commit/2a395905262360ff438ad6131e9b36ec6467ccf2"
      },
      "classification": {
        "tags": [
          "misc",
          "metadata-only"
        ],
        "important_files": []
      },
      "ai_summary": "Build/manifest metadata update (built_from_cl.txt, steam.inf, pak01_dir.txt). Likely a new build number/content manifest refresh.",
      "stats": {
        "files_changed": 3,
        "additions": 35,
        "deletions": 35
      },
      "files": [
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-10494118\n+10497842"
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 29,
          "deletions": 29,
          "changes": 58,
          "patch": "@@ -74318,7 +74318,7 @@ panorama/images/overheadmaps/de_ancient_radar_psd.vtex_c CRC:00b99cf335 size:118\n panorama/images/overheadmaps/de_ancient_v1_radar_psd.vtex_c CRC:009793f407 size:118289\n panorama/images/overheadmaps/de_anubis_radar_psd.vtex_c CRC:00ead30193 size:272254\n panorama/images/overheadmaps/de_dust2_radar_psd.vtex_c CRC:00c757b3ef size:212310\n-panorama/images/overheadmaps/de_inferno_radar_psd.vtex_c CRC:00d4a2fd5a size:189901\n+panorama/images/overheadmaps/de_inferno_radar_psd.vtex_c CRC:00e76445b2 size:181948\n panorama/images/overheadmaps/de_mirage_radar_psd.vtex_c CRC:00cecbb316 size:177297\n panorama/images/overheadmaps/de_nuke_lower_radar_psd.vtex_c CRC:004d3c2ed1 size:117698\n panorama/images/overheadmaps/de_nuke_radar_psd.vtex_c CRC:00523bd349 size:131660\n@@ -78640,36 +78640,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702\n radial_quickinventory.txt CRC:005a0c1bf5 size:1080\n rebuy.txt CRC:008332da3a size:1688\n resource/clientscheme.res CRC:001b42ad42 size:14978\n-resource/csgo_brazilian.txt CRC:00e1e08c9e size:4748376\n-resource/csgo_bulgarian.txt CRC:009cc9afd5 size:7275591\n-resource/csgo_czech.txt CRC:007198c971 size:4822648\n-resource/csgo_danish.txt CRC:00d6607b33 size:4727904\n-resource/csgo_dutch.txt CRC:0057a9928e size:4776061\n+resource/csgo_brazilian.txt CRC:0092249cd1 size:4749369\n+resource/csgo_bulgarian.txt CRC:0051f1d888 size:7275358\n+resource/csgo_czech.txt CRC:004a6e6a7a size:4822190\n+resource/csgo_danish.txt CRC:00951053b8 size:4727462\n+resource/csgo_dutch.txt CRC:000660bedc size:4775598\n resource/csgo_english.txt CRC:0084ad8149 size:4609994\n-resource/csgo_finnish.txt CRC:007c3cf532 size:4697672\n-resource/csgo_french.txt CRC:0062e4496a size:4965273\n-resource/csgo_german.txt CRC:00113e2eaf size:4904165\n-resource/csgo_greek.txt CRC:00706656a2 size:6772283\n-resource/csgo_hungarian.txt CRC:009456f1ef size:4809022\n-resource/csgo_indonesian.txt CRC:003c0f25f4 size:4460361\n-resource/csgo_italian.txt CRC:007a6510c2 size:4890267\n-resource/csgo_japanese.txt CRC:0067fc86c3 size:5025988\n-resource/csgo_koreana.txt CRC:007dbf2a4d size:4822017\n-resource/csgo_latam.txt CRC:0061717305 size:4901995\n-resource/csgo_norwegian.txt CRC:00dfe40714 size:4656386\n-resource/csgo_polish.txt CRC:0003786d40 size:5042271\n-resource/csgo_portuguese.txt CRC:00aa707a2a size:4797837\n-resource/csgo_romanian.txt CRC:00f8ab401d size:4991821\n-resource/csgo_russian.txt CRC:00bb6e0ee6 size:6234932\n-resource/csgo_schinese.txt CRC:004f0bd142 size:4648551\n+resource/csgo_finnish.txt CRC:0087d37809 size:4697236\n+resource/csgo_french.txt CRC:004ec42d3b size:4964801\n+resource/csgo_german.txt CRC:0086211f1d size:4903688\n+resource/csgo_greek.txt CRC:00498a1437 size:6771568\n+resource/csgo_hungarian.txt CRC:0087f34706 size:4808592\n+resource/csgo_indonesian.txt CRC:006e89afc6 size:4459909\n+resource/csgo_italian.txt CRC:007d5973d5 size:4889840\n+resource/csgo_japanese.txt CRC:00af1893af size:5030539\n+resource/csgo_koreana.txt CRC:00263d9b4d size:4821492\n+resource/csgo_latam.txt CRC:0017d451a3 size:4901564\n+resource/csgo_norwegian.txt CRC:0074fe5715 size:4657691\n+resource/csgo_polish.txt CRC:0077d79c9b size:5041830\n+resource/csgo_portuguese.txt CRC:00e2dfa5eb size:4797683\n+resource/csgo_romanian.txt CRC:008bf7f527 size:4991365\n+resource/csgo_russian.txt CRC:002557aa2c size:6234365\n+resource/csgo_schinese.txt CRC:008ed01717 size:4648172\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n-resource/csgo_spanish.txt CRC:0055381ef8 size:4864560\n-resource/csgo_swedish.txt CRC:00c6fa850d size:4757235\n-resource/csgo_tchinese.txt CRC:00e9f4a0ce size:4374355\n-resource/csgo_thai.txt CRC:00355115cf size:7703548\n-resource/csgo_turkish.txt CRC:0023bdb5bb size:4878951\n-resource/csgo_ukrainian.txt CRC:00156998a8 size:6275298\n-resource/csgo_vietnamese.txt CRC:00c843d412 size:5151569\n+resource/csgo_spanish.txt CRC:0087fea09b size:4864146\n+resource/csgo_swedish.txt CRC:0033da2639 size:4756896\n+resource/csgo_tchinese.txt CRC:0005e6ab7d size:4373922\n+resource/csgo_thai.txt CRC:008d8dfc1e size:7702764\n+resource/csgo_turkish.txt CRC:00e041e974 size:4878518\n+resource/csgo_ukrainian.txt CRC:00c945fbd2 size:6274622\n+resource/csgo_vietnamese.txt CRC:00740a29e7 size:5151030\n resource/game.gameevents CRC:0090de10bc size:9837\n resource/halflife2.vfont CRC:00b064848c size:58000\n resource/mod.gameevents CRC:008dcbd0da size:20719"
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 5,
          "deletions": 5,
          "changes": 10,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000744\n-ServerVersion=2000744\n+ClientVersion=2000745\n+ServerVersion=2000745\n PatchVersion=1.41.3.8\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=10494140\n-VersionDate=Mar 04 2026\n-VersionTime=13:26:09\n+SourceRevision=10497890\n+VersionDate=Mar 05 2026\n+VersionTime=11:19:02"
        }
      ]
    },
    {
      "event_id": "gh:f9fd8bf",
      "detected_at_utc": "2026-03-10T10:56:01.697Z",
      "commit_date_utc": "2026-03-04T22:51:46Z",
      "commit": {
        "sha": "f9fd8bf1a8d56d29b134a33e339352b4f2c3c45c",
        "short": "f9fd8bf",
        "message": "2000744 | 36 files | M DumpSource2/convars.txt,  M Protobufs/base_gcmessages.proto,  M Protobufs/source2_steam_stats.proto,  M content/csgo/maps/editor/zoo/scripts/point_script.d.ts,  M game/bin/built_from_cl.txt,  M game/bin/linuxsteamrt64/libengine2_strings.txt,  M game/bin/win64/csgocfg.exe_strings.txt,  M game/bin/win64/resourcecompiler_strings.txt,  M game/bin/win64/tools/cs2_item_editor_strings.txt,  M game/bin/win64/tools/met_strings.txt,  M game/bin/win64/vrad3_strings.txt,  M game/csgo/bin/linuxsteamrt64/libclient_strings.txt,  M game/csgo/bin/linuxsteamrt64/libserver_strings.txt,  M game/csgo/pak01_dir.txt,  M game/csgo/pak01_dir/maps/de_inferno_camera_nodes.kv3,  M game/csgo/pak01_dir/panorama/layout/itemtile.xml,  M game/csgo/pak01_dir/panorama/layout/popups/popup_inspect_async-bar.xml,  M game/csgo/pak01_dir/panorama/layout/popups/popup_offers_laptop_interface.xml,  M game/csgo/pak01_dir/panorama/layout/tooltips/tooltip_inventory_item.xml,  M game/csgo/pak01_dir/panorama/scripts/common/hold_button.js,  M game/csgo/pa",
        "url": "https://github.com/SteamDatabase/GameTracking-CS2/commit/f9fd8bf1a8d56d29b134a33e339352b4f2c3c45c"
      },
      "classification": {
        "tags": [
          "scripts",
          "ui",
          "localization",
          "assets",
          "misc",
          "content-change"
        ],
        "important_files": [
          "content/csgo/maps/editor/zoo/scripts/point_script.d.ts",
          "game/csgo/pak01_dir/maps/de_inferno_camera_nodes.kv3",
          "game/csgo/pak01_dir/panorama/layout/itemtile.xml",
          "game/csgo/pak01_dir/panorama/layout/popups/popup_inspect_async-bar.xml",
          "game/csgo/pak01_dir/panorama/layout/popups/popup_offers_laptop_interface.xml",
          "game/csgo/pak01_dir/panorama/layout/tooltips/tooltip_inventory_item.xml",
          "game/csgo/pak01_dir/panorama/scripts/common/hold_button.js",
          "game/csgo/pak01_dir/panorama/scripts/common/item_context_entries.js",
          "game/csgo/pak01_dir/panorama/scripts/hud/huddemocontroller.js",
          "game/csgo/pak01_dir/panorama/scripts/itemtile.js",
          "game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_async-bar.js",
          "game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_header.js",
          "game/csgo/pak01_dir/panorama/scripts/popups/popup_offers_laptop_interface.js",
          "game/csgo/pak01_dir/panorama/styles/csgostyles.css",
          "game/csgo/pak01_dir/panorama/styles/hud/hudlegend.css",
          "game/csgo/pak01_dir/panorama/styles/itemtile.css",
          "game/csgo/pak01_dir/panorama/styles/popups/popup_offers_laptop_interface.css",
          "game/csgo/pak01_dir/panorama/styles/tooltips/tooltip_inventory_item.css",
          "game/csgo/pak01_dir/resource/csgo_english.txt"
        ]
      },
      "ai_summary": "Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).",
      "stats": {
        "files_changed": 36,
        "additions": 2144,
        "deletions": 1758
      },
      "files": [
        {
          "filename": "DumpSource2/convars.txt",
          "status": "modified",
          "additions": 12,
          "deletions": 0,
          "changes": 12,
          "patch": "@@ -1489,6 +1489,9 @@ cl_interpolate true (developmentonly clientdll userinfo)\n cl_interpolate_report false (clientdll archive)\n \tEnable to show interpolation profile timing\n \n+cl_inv_volatile_limits \"0:0\" (clientdll archive)\n+\t<no description>\n+\n cl_inventory_debug_tooltip false (clientdll release)\n \t<no description>\n \n@@ -1825,9 +1828,15 @@ cl_radar_scale_alternate 1 (min: 0.25, max: 1, clientdll archive release)\n cl_radar_scale_dynamic false (clientdll archive release)\n \tToggles between a radar that scales dynamically to encompass all the detected elements on the map.\n \n+cl_radar_show_all_players_when_spectating true (clientdll archive release)\n+\tSet all players visible on radar when spectating, regardless of whether they have been spotted.\n+\n cl_radar_square_always false (clientdll archive release)\n \tIf set, the radar will always be square.\n \n+cl_radar_square_when_spectating true (clientdll archive release)\n+\tIf set, the radar will be square when spectating.\n+\n cl_radar_square_with_scoreboard true (clientdll archive release)\n \tIf set, the radar will toggle to square when the scoreboard is visible.\n \n@@ -10377,6 +10386,9 @@ sv_search_key \"\" (release)\n sv_search_team_key \"public\" (release)\n \tWhen initiating team search, set this key to match with known opponents team\n \n+sv_sellback_enabled true (gamedll clientdll replicated release)\n+\tDetermines whether players can undo purchases in the buy menu\n+\n sv_sendtables 1 (developmentonly)\n \tForce full sendtable sending path.\n "
        },
        {
          "filename": "Protobufs/base_gcmessages.proto",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -540,6 +540,7 @@ message CMsgOpenCrate {\n \toptional uint64 subject_item_id = 2;\n \toptional bool for_rental = 3;\n \toptional uint32 points_remaining = 4;\n+\toptional uint32 volatile_limit = 5;\n }\n \n message CSOEconRentalHistory {"
        },
        {
          "filename": "Protobufs/source2_steam_stats.proto",
          "status": "modified",
          "additions": 2,
          "deletions": 0,
          "changes": 2,
          "patch": "@@ -14,6 +14,7 @@ enum ESource2PlayStatsFieldType {\n \tSource2PlayStats_String = 12;\n \tSource2PlayStats_LowCardinalityString = 13;\n \tSource2PlayStats_UTCDateTime = 14;\n+\tSource2PlayStats_SteamIDTrustBucket = 15;\n }\n \n message CMsgSource2SystemSpecs {\n@@ -164,6 +165,7 @@ message CMsgSource2PlayStatsPackedRecordList {\n \trepeated string string_vals = 15;\n \trepeated string low_cardinality_string_vals = 16;\n \trepeated fixed32 utcdatetime_vals = 17 [packed = true];\n+\trepeated fixed64 steamidtrustbucket_vals = 18 [packed = true];\n }\n \n message CSource2Metrics_RecordPlayStats_Notification {"
        },
        {
          "filename": "content/csgo/maps/editor/zoo/scripts/point_script.d.ts",
          "status": "modified",
          "additions": 18,
          "deletions": 3,
          "changes": 21,
          "patch": "@@ -132,8 +132,12 @@ declare module \"cs_script/point_script\"\n         OnGunReload(callback: (event: { weapon: CSWeaponBase }) => void): void;\n         /** Called when a gun emits bullets. A shotgun will only trigger this once when emitting multiple bullets at once. */\n         OnGunFire(callback: (event: { weapon: CSWeaponBase }) => void): void;\n-        /** Called when a bullet hits a surface. This will trigger for each bullet and for each impact. Penetrations can cause a single bullet to trigger multiple impacts. */\n-        OnBulletImpact(callback: (event: { weapon: CSWeaponBase, position: Vector }) => void): void;\n+        /**\n+         * Called when a bullet hits a surface.\n+         * Penetrations can cause a single bullet to trigger multiple impacts.\n+         * This will be called for all impacts of a bullet before any player damage events are called.\n+         */\n+        OnBulletImpact(callback: (event: { weapon: CSWeaponBase, position: Vector, hitEntity: Entity }) => void): void;\n         /** Called when a grenade is thrown. `projectile` is the newly created grenade projectile. */\n         OnGrenadeThrow(callback: (event: { weapon: CSWeaponBase, projectile: Entity }) => void): void;\n         /** Called when a grenade bounces off a surface. `bounces` is the number of bounces so far. */\n@@ -213,6 +217,7 @@ declare module \"cs_script/point_script\"\n     }\n \n     type Vector = { x: number, y: number, z: number };\n+    type RotationVector = { x: number, y: number, z: number };\n     type QAngle = { pitch: number, yaw: number, roll: number };\n     type ColorArg = { r: number, g: number, b: number, a?: number };\n     type Color = { r: number, g: number, b: number, a: number };\n@@ -465,12 +470,16 @@ declare module \"cs_script/point_script\"\n         GetAbsVelocity(): Vector;\n         /** The velocity of this entity relative to its parent. Will be relative to the world if no parent. */\n         GetLocalVelocity(): Vector;\n+        /** The angular velocity of this entity relative to the world. */\n+        GetAbsAngularVelocity(): RotationVector;\n+        /** The angular velocity of this entity relative to its parent. Will be relative to the world if no parent. */\n+        GetLocalAngularVelocity(): RotationVector;\n         /** The angles of the eyes of this entity relative to the world. */\n         GetEyeAngles(): QAngle;\n         /** The position of the eyes of this entity relative to the world */\n         GetEyePosition(): Vector;\n         /** Update the physics state of this entity. */\n-        Teleport(newValues: { position?: Vector, angles?: QAngle, velocity?: Vector }): void;\n+        Teleport(newValues: { position?: Vector, angles?: QAngle, velocity?: Vector, angularVelocity?: RotationVector }): void;\n         GetClassName(): string;\n         GetEntityName(): string;\n         SetEntityName(name: string): void;\n@@ -529,6 +538,10 @@ declare module \"cs_script/point_script\"\n     export class CSWeaponBase extends BaseModelEntity {\n         GetData(): CSWeaponData;\n         GetOwner(): CSPlayerPawn | undefined;\n+        GetClipAmmo(): number;\n+        SetClipAmmo(ammo: number): void;\n+        GetReserveAmmo(): number;\n+        SetReserveAmmo(ammo: number): void;\n     }\n \n     export class CSWeaponData {\n@@ -537,6 +550,8 @@ declare module \"cs_script/point_script\"\n         GetGearSlot(): CSGearSlot;\n         GetPrice(): number;\n         GetDamage(): number;\n+        GetMaxClipAmmo(): number;\n+        GetMaxReserveAmmo(): number;\n         /** Maximum distance bullets will travel. */\n         GetRange(): number;\n         /** Exponential damage drop off from traveling through air. nextDamage = currentDamage * rangeModifier ^ (distance / 500). */"
        },
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-10477372\n+10494118"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libengine2_strings.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 8,
          "changes": 11,
          "patch": "@@ -895,7 +895,6 @@ $lZT\n --CNetworkGameServerBase\n --startmovie\n -0123456789\n--0x8000'0000p0f <= flTicks && flTicks < +0x8000'0000p0f\n -5?KYks\n -> Reservation cookie %llx:  reason %s\\n\n -?Vb,?H$+?Z\n@@ -1633,6 +1632,7 @@ $lZT\n 1wsHp\n 2%sT5\n 200000\n+20:08:06\n 20CCLCMsg_ClientInfo_t\n 20CCLCMsg_CmdKeyValues\n 20CCLCMsg_Diagnostic_t\n@@ -1667,7 +1667,6 @@ $lZT\n 20ISource2ServerConfig\n 20ISource2WorldSession\n 20PacketEntitiesFilter\n-21:54:28\n 21C2S_CONNECT_Message_t\n 21CCLCMsg_BaselineAck_t\n 21CEngineGotvSyncPacket\n@@ -3865,7 +3864,6 @@ CheckServerReservationUpdate: %d conn periodic update\\n\n CheckTimeouts: Disconnecting client: %s %s, after a netchan-decided timeout of %0.2fs with no acks received\\n\n CheckTimeouts: Disconnecting client: %s %s, after a server-decided timeout of %0.2fs with no acks received\\n\n CheckTransmit\n-CheckedAdd\n Cherokee\n ClampFloatToZero_SSE2\n Clamping split screen users to 1 due to -tools mode.\\n\n@@ -4547,7 +4545,6 @@ Failure\n False\n FastHexToBuffer() wants non-negative integers, not \n Features\n-Feb 23 2026\n February\n Feel free to add support for more if you need it.\n Field \"\n@@ -4672,7 +4669,6 @@ Free physical memory: %.2f MiB\\n\n Freed EMS handle %u\n Freed XMS handle %u\n Friday\n-FromFloatTicks\n Full Frame\n FullFrameSplit tick=%d, chunk=%d of %d\\n\n FullPacketGoto\n@@ -5304,7 +5300,6 @@ Invoke '%s' failed with code %d\n InvokeMiniDumpHandler\n Is fixup operator client running at low FPS? Only %d/%d fixup ticks available for %s\\n\n Is the server pausable.\n-IsValidFrac( flFrac )\n IsValidIndex( i )\n Issue an rcon command.\n J3GS\n@@ -5642,6 +5637,7 @@ MapValueRef::SetInt64Value\n MapValueRef::SetStringValue\n MapValueRef::SetUInt32Value\n MapValueRef::SetUInt64Value\n+Mar  4 2026\n March\n Marked tick %u in '%s'\\n\n Marker,GPUTimeAvgMS,GPUTimeRangeMS,GPUTimeMinMS,GPUTimeMaxMS\\n\n@@ -7003,6 +6999,7 @@ RenderDeviceMgr001\n RenderHardwareConfig002\n RenderService\n RenderService::OnClientOutput\n+RenderService::OnClientPostAdvanceTick\n RenderService_001\n RenderSystem/VulkanOnly\n RenderSystem/VulkanOnlyTestProbability\n@@ -11588,7 +11585,6 @@ results.txt\n resume\n retail\n retval\n-rhs < 0 ? ret < lhs : ret >= lhs\n rnd_down\n rnd_up\n rnn_celt_autocorr\n@@ -15664,7 +15660,6 @@ throw\n throw \n tick\n tick_interval\n-ticks_and_frac.cpp\n ticks_per_interval\n tier0\n time"
        },
        {
          "filename": "game/bin/win64/csgocfg.exe_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -410,7 +410,7 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n /src/\n 0iN>/\n 11Y@\n-13:57:21\n+12:10:12\n 1:1: Tokens : ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );\n 1AcceptIfItemPicked()\n 1OnAccept()\n@@ -1603,7 +1603,6 @@ Failed to load layered mod '%s'.  %s\n Failed to map from %s to content-path\\n\n Failed to map from %s to game-path\\n\n Failed to parse KeyValues\n-Feb 23 2026\n February\n FileSystem\n FileSystem/SearchPaths\n@@ -1788,6 +1787,7 @@ MVDataOutlinerLeafNameFn\n M\\n?done@QDialog@@UEAAXH@Z\n MapListService_001\n Maps\n+Mar  4 2026\n March\n MaterialUtils_001\n MemAlloc_AllocFunc"
        },
        {
          "filename": "game/bin/win64/resourcecompiler_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -20711,8 +20711,8 @@ $prefix_element$\n 11nN\n 12'0\n 1280x720\n+12:13:36\n 12v)\n-13:59:27\n 14 (default)\n 15\\tr\\\n 16-byte data pool\n@@ -47311,7 +47311,7 @@ pbeWithSHA1And40BitRC2-CBC\n pbeWithSHA1And40BitRC4\n pbeWithSHA1AndDES-CBC\n pbeWithSHA1AndRC2-CBC\n-pc64 Feb 23 2026 13:59:31\n+pc64 Mar  4 2026 12:14:54\n pcPathLengthConstraint\n peak_attr\n peak_cycle"
        },
        {
          "filename": "game/bin/win64/tools/cs2_item_editor_strings.txt",
          "status": "modified",
          "additions": 46,
          "deletions": 41,
          "changes": 87,
          "patch": "@@ -14,12 +14,10 @@\n  (%d remaining)...\n  (08@HPX`hpx\n  (08@HPX`j0k\n- (08@HPXbP\n+ (08@HPXb \n  (08@HPZ0k\n- (08@HRP\n  (08@J0k\n- (08@JP\n- (0X`hpzP\n+ (0X`hpz \n  (Boosted +1)\n  (repeat)\n  - IsCheckedOut: %s\\n\n@@ -446,26 +444,21 @@ $schemasystem/schema_enable_defines.h\n (#Player_DisconnectReason_InputAutomation\n ((6\"8(:,<*>\n (0`hpx\n-(10X\n-(1jX\n-(53X\n-(A2X\n-(A6X\n-(ADX\n-(AMX\n+(14X\n+(5KX\n+(9WX\n+(9bX\n (Documents Filter - Use | for OR, space for AND)\n-(EPX\n-(EYX\n-(ElX\n (Filter)\n-(IwY\n-(MSX\n+(I8X\n+(M6X\n (No Active Session)\n (Outliner Filter)\n-(Q4X\n-(UKX\n-(YWX\n-(YbX\n+(QEX\n+(QIX\n+(QgX\n+(QxX\n+(UjX\n (\\f\"(\\n&CMsgGCCStrike15_v2_ClientRequestOffers\"\\\\n(CMsgGCCStrike15_v2_ClientRequestSouvenir\n (\\f\"?\\n#CMsgGCCStrike15_v2_Client2GCTextMsg\n (\\f?focusOutEvent@QAbstractButton@@MEAAXPEAVQFocusEvent@@@Z\n@@ -520,7 +513,6 @@ $schemasystem/schema_enable_defines.h\n (\\r\"b\\n2CMsgGCCStrike15_v2_MatchEndRewardDropsNotification\n (\\r\"f\\n(CMsgGCCStrike15_v2_ClientPlayerDecalSign\n (\\r\"j\\n'CCommunity_GamePersonalDataCategoryInfo\n-(\\r\"l\\n\\rCMsgOpenCrate\n (\\r\"o\\n-CMsgGCCStrike15_v2_GC2ServerReservationUpdate\n (\\r\"o\\n.CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm\n (\\r\"q\\n\"CMsgGCDev_SchemaReservationRequest\n@@ -616,15 +608,21 @@ $schemasystem/schema_enable_defines.h\n (\\v2\\v.CMsgVector\n (\\v2\\v.CMsg_CVars:\n (\\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z\n+(a7X\n+(aAX\n (default)\n-(i8X\n-(m6X\n+(e3X\n+(eBX\n+(eMX\n+(i4X\n+(ilX\n+(iwX\n+(m2X\n (null)\n-(qEX\n-(qIX\n-(qgX\n-(qxX\n-(ujX\n+(qTX\n+(qnX\n+(uHX\n+(uaX\n ) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z\n )#GameUI_Disconnect_PureServer_ClientExtra\n )#GameUI_Disconnect_RemoteProblem_BadCrypt\n@@ -3033,7 +3031,7 @@ $schemasystem/schema_enable_defines.h\n 0$2z4\n 08@HP\n 08@HR0k\n-08@JP\n+08@J \n 08B0k\n 08\\fj\n 0:<\\n\\fdelta_ignore\n@@ -3214,7 +3212,6 @@ $schemasystem/schema_enable_defines.h\n 2\\r?hideEvent@QWidget@@MEAAXPEAVQHideEvent@@@Z\n 2\\tV_isnand\n 2\\v?event@QAction@@MEAA_NPEAVQEvent@@@Z\n-2\\vpT\n 2aboutToShow()\n 2activated( int )\n 2changed()\n@@ -3286,7 +3283,6 @@ $schemasystem/schema_enable_defines.h\n 5\\n\\vnested_type\n 5\\n\\vtype_caches\n 5\\v?event@QCheckBox@@MEAA_NPEAVQEvent@@@Z\n-6Pr?\n 6[?setRenderHint@QPainter@@QEAAXW4RenderHint@1@_N@Z\n 6\\n1k_EGCItemCustomizationNotification_CasketContents\n 6\\n1k_EGCItemCustomizationNotification_ExtractSticker\n@@ -3310,12 +3306,12 @@ $schemasystem/schema_enable_defines.h\n 7\\n2k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment\n 7\\n\\tenum_type\n 8#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay\n+81fX\n+85ZW\n 8@HP:\n 8@J0k\n 8B0k\n 8Csinf\n-8QfX\n-8UZW\n 8\\f?focusOutEvent@QTextBrowser@@MEAAXPEAVQFocusEvent@@@Z\n 8\\n0k\n 8\\n3k_EGCItemCustomizationNotification_ActivateFanToken\n@@ -3326,7 +3322,9 @@ $schemasystem/schema_enable_defines.h\n 8\\n\\textension\n 8\\v?event@QCompleter@@MEAA_NPEAVQEvent@@@Z\n 8]?size@QPixmap@@QEBA?AVQSize@@XZ\n-8}qX\n+8]qX\n+8meX\n+8muW\n 9\\f?focusOutEvent@QTextEdit@@MEAAXPEAVQFocusEvent@@@Z\n 9\\n4k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification\n 9\\n4k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser\n@@ -5006,11 +5004,9 @@ $schemasystem/schema_enable_defines.h\n @08@HPX`hpx\n @08N\n @20k\n-@6pm?\n @HPX\n @HPX&I\n-@HPX`hv`\n-@HV0\n+@HPX`hv0\n @HdR\n @\\n\\fSingleObject\n @\\n\\vserver_type\n@@ -5927,6 +5923,7 @@ FocusOut\n FolderName\n FoliageAnimation\n Follow user preference\n+Fpw?\n FreeEnvironmentStringsW\n FreeLibrary\n From EconItems\n@@ -6585,7 +6582,7 @@ OrigMat\n Other Tools\n Outliner\n OverlayProjectionDirection\n-P08@JP\n+P08@J \n P08J\n P08N\n P20k\n@@ -6645,7 +6642,7 @@ Patina\n Patina Extended\n Pedestal Model\n PerVertexLighting\n-PfPt?\n+Pf u?\n PgDn\n PgUp\n Physics\n@@ -7455,6 +7452,7 @@ Zip system failure.\\n\n \\f\\f?focusInEvent@QLabel@@MEAAXPEAVQFocusEvent@@@Z\n \\f\\n EGCItemCustomizationNotification\n \\f\\n?deselect@QLineEdit@@QEAAXXZ\n+\\fp\\vPX\n \\n CMsgItemAcknowledged__DEPRECATED\n \\n CSVCMsg_GameSessionConfiguration\n \\n google/protobuf/descriptor.proto\n@@ -7559,6 +7557,7 @@ Zip system failure.\\n\n \\nInvalid item name '%1'.\\n\\n%2\\n\n \\nNo modified item assets. Nothing to save.\\n\n \\nOpened By: \n+\\nQZW\n \\nS?moveTo@QPainterPath@@QEAAXAEBVQPointF@@@Z\n \\nThis assigns a permanent Schema reservation with the GC required for shipping.\\n\\nAre you sure?\\n\n \\nThis will delete '%1' from the tree.\\n\\nAre you sure?\\n\n@@ -7724,6 +7723,7 @@ Zip system failure.\\n\n \\n\\nviewangles\n \\n\\nvote_phase\n \\n\\r?heightForWidth@QBoxLayout@@UEBAHH@Z\n+\\n\\rCMsgOpenCrate\n \\n\\rCSOItemRecipe\n \\n\\rMethodOptions\n \\n\\rQuestItemData\n@@ -7959,7 +7959,6 @@ Zip system failure.\\n\n \\n\\vvalue_bytes\n \\n\\vxp_category\n \\n\\vyoutube_url\n-\\nqZW\n \\r?darker@QColor@@QEBA?AV1@H@Z\n \\r?data@QStandardItem@@UEBA?AVQVariant@@H@Z\n \\r?data@QStandardItemModel@@UEBA?AVQVariant@@AEBVQModelIndex@@H@Z\n@@ -8134,6 +8133,7 @@ _toolsautosave\n `\\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z\n `adjustor{\n `anonymous namespace'\n+`awY\n `b0k\n `copy constructor closure'\n `d0k\n@@ -8968,7 +8968,7 @@ host_computationtime\n host_frame_dropped_pct_x10\n host_unfiltered_frametime\n hours\n-hpzP\n+hpz \n i ?topLevelWidgets@QApplication@@SA?AV?$QList@PEAVQWidget@@@@XZ\n iValueIn\n i\\f?forward@QTextBrowser@@UEAAXXZ\n@@ -9688,6 +9688,7 @@ my_current_event_stages\n my_current_event_teams\n my_current_team\n n03>Pu\n+n0x?\n nBuildError\n nCentralDirectoryEntries_ThisDisk\n nCentralDirectoryEntries_Total\n@@ -9817,14 +9818,17 @@ owner dead\n owner_only\n owns_polymorphic_data\n p08@H^\n+p0jp\n p0p@\n p20k\n+p6`t?\n p@HPX`h\\f\n pButton\n pCurrentFocusWidget\n pData\n pEvent\n pFilter\n+pFpw?\n pPrevFocusWidget\n pResultKV\n pV?read@QImageReader@@QEAA?AVQImage@@XZ\n@@ -10599,6 +10603,7 @@ vnmclip\n vnotify_ui\n void \n volatile \n+volatile_limit\n vote\n vote_phase_length\n vote_phase_start"
        },
        {
          "filename": "game/bin/win64/tools/met_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -990,7 +990,7 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n 1/2/3\n 11Y@\n 128 x 128\n-13:54:32\n+12:09:19\n 1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );\n 1AboutAction()\n 1AcceptColorInternal(FatColor_t)"
        },
        {
          "filename": "game/bin/win64/vrad3_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -2730,7 +2730,7 @@ path_trace_triangles_gpu_init\n path_trace_triangles_gpu_shutdown\n path_trajectory\n pattern\n-pc64 Feb 23 2026 13:53:16\n+pc64 Mar  4 2026 12:11:17\n permission denied\n physicsSimplificationError\n physicsSimplificationOverride"
        },
        {
          "filename": "game/csgo/bin/linuxsteamrt64/libclient_strings.txt",
          "status": "modified",
          "additions": 22,
          "deletions": 20,
          "changes": 42,
          "patch": "@@ -289,6 +289,7 @@\n  vJza\\r\n  with \n  with %.1fs delay.\n+ { \"limit\": %u, \"label\": \"%s\" }, \n  {0x%x, 0x%x}\n ! !K+hcF&db\n !! ERROR: bad input/output link:\\n!! %s(%s,%s) doesn't match type from %s(%s)\\n\n@@ -393,6 +394,8 @@\n #Attrib_TimeLocalization_Hours\n #Attrib_TimeLocalization_Minutes\n #Attrib_TradableMarketableAfterDate\n+#Attrib_TradeProtectedEscrowDate\n+#Attrib_TradeProtectedEscrowMarket\n #BIND[\n #BuyMenu_BuyForTeammate_hint\n #CSGOEcon_SelectCT\n@@ -9103,7 +9106,6 @@ $taser_charge\n 4tpD\n 4zj@1;IJ\n 4|2;#GameUI_Retake_Card_LightEmUp,1,1,rifle1,grenade0|2;#GameUI_Retake_Card_Kobe,1,1,rifle1,grenade2|1;#GameUI_Retake_Card_1g,1,1,rifle1,grenade3|1;#GameUI_Retake_Card_DisappearingAct,1,1,rifle1,grenade1|1;#GameUI_Retake_Card_EyesOnTarget,1,1,weapon_aug\n-4~3<M\n 5'0v2ZP\n 5-535;5A5Q5e5o5q5w5{5}5\n 5-\\rGw\n@@ -9304,7 +9306,6 @@ $taser_charge\n 8192\n 8285-YOAZ-6049\n 82\\n:XPH\n-83\\nN\n 851Pe\n 8835-KLXV-0292\n 8<pl\n@@ -9474,7 +9475,6 @@ $taser_charge\n ;\"lY7\n ;5jNf\n ;83\\v\\nHBJ7\n-;I4r\n ;LGEW\n ;Qo0\n ;`Fzc\n@@ -9567,6 +9567,7 @@ $taser_charge\n <weapon>\n =!=-=3=7=?=C=o=s=u=y={=\n =&sf9\n+=3LL\n == %d Entities Dumped\\n\n == PulseGraphDef ==\\n\n == false\\n\n@@ -12672,7 +12673,6 @@ CheckChildrenScrolledIntoView\n CheckPoint\n CheckReinitPredictables\n CheckThreadID\n-CheckedSub\n Checks to see if the given hScript is a valid entity\n ChickenGameSystem\n Child %d %s\n@@ -16219,6 +16219,7 @@ GetVariableRefreshRateStatus\n GetVideoConfig\n GetViewRenderInstance() must be implemented by game.\n GetViewerCount\n+GetVolatileLimits\n GetWeaponScores\n GetWear\n GetXUIDByAccountID\n@@ -17452,12 +17453,11 @@ JSCreatePanelWithCurrentContext was not called within a context\n JSDelayLoadList\n JSValueFromKeyValue failed to package parameter %s (type %d)\\n\n JS_!0\n-JY3!\n+JY3a\n JZIX\n J\\nHBF\n J`KL\n Japanese\n-Jg-a~\n Job %s has EXCEEDED TIMEOUT THRESHOLD exclusive time: %ums >= %ums\\n\n Job %s has EXCEEDED TIMEOUT THRESHOLD yield time: %ums >= %ums\\n\n Job %s has spent >%2.3fms without yielding: %2.3fms\\n\n@@ -18078,6 +18078,7 @@ Map__Level--Animate-FadeIn\n Map__Level--Animate-FadeOut\n Maple\n Maps\n+MarketListingForItem\n Marquis\n Mask\n Mask Algorithm: \n@@ -18191,7 +18192,6 @@ MinghuaQuS\n MinghuaQuw\n Minimum of two values (float)\n Minimum of two values (int)\n-MinusOneTick\n Minutes\n MippedBlurTexture\n Mirage\n@@ -21597,7 +21597,6 @@ PlayingCSGO\n Plays the named sound event.\n Playsoundscape %s:Unknown command %s\\n\n Please specify 0 or 1 with the -stream Parameter\\n\n-PlusOneTick\n Pm8A?\n PmR\"H?\n Point entity.\n@@ -23151,7 +23150,6 @@ SelectionBG2\n SelectionBgColor\n SelectionFgColor\n SelectionGroup\n-SellItem\n SellbackButton\n Semifinal\n Send a string to the console as a client command\n@@ -23476,6 +23474,7 @@ SetVarArrayElement1D V%d (%s) [ R%d ] <- R%d R%d\n SetVelocity\n SetVelocityDamping\n SetVelocityLimit\n+SetVolatileLimits\n SetWantsCamera\n SetWorkshopPreviewIdleAnimation\n SetZoomLimit\n@@ -26359,7 +26358,7 @@ _var\n _xU`u\n _}eOk\n `28)fk\n-`43!T\n+`43;D\n `:zQF\n `D$daM-l\n `DZG\n@@ -28350,6 +28349,8 @@ cl_imgui_set_selection %i\n cl_interp = %f (cl_interp_ratio=%g / cl_updaterate=%g)\\n\n cl_interp_npcs=%f\n cl_interp_threadmodeticks=%d\n+cl_inv_volatile_limits = %s\n+cl_inv_volatile_limits_rt\n cl_net_buffer_ticks=%d, setting cl_interp_ratio=%g, cl_clock_buffer_ticks=%g\\n\n cl_obs_interp_pos_rate\n cl_pred_track:  Unknown ent index %d\\n\n@@ -28947,6 +28948,7 @@ cs_win_panel_round\n cs_workout\n csblood\n csblood_global_client\n+csbot\n csgo-hud__color-%d\n csgo_chicken\n csgo_democontroller\n@@ -31595,6 +31597,7 @@ http request\n http://\n http://%s.steamcommunity.com/sharedfiles/filedetails/?id=%llu\n http://%s.steamcommunity.com/workshop/browse?appid=%u&requiredtags[]=CS2%s\n+http://%ssteamcommunity.com/market/?viewMyItemListing#%u_%u_%llu\n http://%ssteamcommunity.com/profiles/%llu/inventory/?sellOnLoad=1#%u_%u_%llu\n http://api.twitch.tv/api/steam/%llu\n http://cdn.beta.steampowered.com/apps/%d/web_resources/%s\n@@ -31701,7 +31704,7 @@ i2d_pr.c\n i2o_ECPublicKey\n i2s_ASN1_ENUMERATED\n i2s_ASN1_INTEGER\n-i4@U\n+i4<E\n i4a.\"\n i5BH\n iA5StringSyntax\n@@ -33064,14 +33067,13 @@ kv 0x%p Release refcount == %d\\n\n kw.6#\n k~Rz\n l <= sizeof(c->iv)\n-l&+3Sl\n l&rB6\n l4Ot\n l7@J\n lC57\n lDcW\n lM2p\n-l`w4E\n+l`w4\n label\n label_token\n ladder\n@@ -33401,7 +33403,7 @@ lowresdepth\n luminaire_anisotropy\n luminaire_shape\n luminaire_size\n-lvR4V\n+lvR4\n m&9W\n m*Zu\n m249\n@@ -33681,8 +33683,6 @@ m_nPixelSSTHeight\n m_nPixelSSTWidth\n m_nSamples\n m_nSpawnGroupCount\n-m_nTicks < INT_MAX\n-m_nTicks > INT_MIN\n m_nameList\n m_pAnimGraph1Instance == nullptr && m_pAnimGraph2Instance == nullptr && m_pAnimGraphInstanceOwner != nullptr\n m_pAnimGraphDestructibleGraphController\n@@ -35196,8 +35196,6 @@ operational_point_redeemable\n operational_point_redeemable_end\n operational_points\n operaton not initialized\n-operator+\n-operator-\n operatorName\n optional with src\n optionalEntityName\n@@ -36696,7 +36694,6 @@ rg#E\n rgba(0, 0, 0, %f)\n rgba(0, 0, 0, 1)\n rhino\n-rhs > 0 ? ret < lhs : ret >= lhs\n rich\n ricksaw_defeat\n ridiculous\n@@ -36774,6 +36771,7 @@ round_kills\n round_linear_curve\n round_mvp\n round_number\n+round_officially_ended\n round_prestart\n round_start\n round_time_warning\n@@ -38456,7 +38454,7 @@ t1_ext.c\n t1_lib.c\n t1_reneg.c\n t2U \n-t3@P\n+t33@\n t4O_\n t80z\n tA`KO/3G!\\n7h=\n@@ -39807,6 +39805,7 @@ victim_location_\n victim_team\n videocfg_dynamic_shadows\n vietnamese\n+view\n view angles\n viewModelFarPlane\n viewModelNearPlane\n@@ -40579,6 +40578,7 @@ y#y&Jb\n y-offset\n y0JY\n y2Cu\n+y3yo\n y;w9\n y?iLa\n yG/9\n@@ -40637,6 +40637,7 @@ zoom_sensitivity_ratio_mouse\n zoomwithuiscale\n zxNIjo\n zz2K\n+{ \"limit\": %d, \"selected\": %s, \"choices\": [  %s  { \"limit\": 0, \"label\": \"#SFUI_Settings_Volatile_Limit_Unlimited\" }  ] }\n {5`q@roz?\n {8w1\n {9d:c\n@@ -40648,6 +40649,7 @@ zz2K\n {ry\\W\n {s:SelectedSegment--name}\n {screenshots}\n+{split:\n {uint32}\n {width}\n {zFd"
        },
        {
          "filename": "game/csgo/bin/linuxsteamrt64/libserver_strings.txt",
          "status": "modified",
          "additions": 13,
          "deletions": 7,
          "changes": 20,
          "patch": "@@ -1063,6 +1063,7 @@ $light_emissive\n %s finished post idle at %0.2f\\n\n %s follows %s\n %s has no hitboxes\\n\n+%s hit the sellback limit.\\n\n %s is a priority script and cannot be kicked out of the queue\\n\n %s is abstract but didn't have any networkable descendents [found %d possibles], make (at least) one of these leaf classes networkable!!!\\n\n %s is already preloading!\\n\n@@ -1377,6 +1378,7 @@ $light_emissive\n (Output drawable)\n (SERVER) Inventory for account (%d):\\n\n (WIPE AND EXTRACT)\n+(ammo:number)\n (callback: function)\n (className: string)\n (color)\n@@ -7030,7 +7032,6 @@ $light_emissive\n >KS[ac5>IU^c+0<LZc\n ?33s?\n ???CRR_Response bogus index\n-?KA8\n @player_start_teleport_destination\n @workshop\n A CT bot doesn't know what to do while the bomb is planted!\\n\n@@ -9066,7 +9067,6 @@ CheckPoint\n CheckSpawnThink\n CheckStuffThink\n CheckThreadID\n-CheckedSub\n Checking nearby threatening enemy gunfire!\\n\n Checking out where our friend was killed\\n\n Checks if entity a and entity b are in hierarchy together\n@@ -10669,6 +10669,7 @@ Get vector to center of object - absolute coords\n Get vector to eye position - absolute coords.\n Get whether the hostage is currently being carried or not\n GetAbsAngles\n+GetAbsAngularVelocity\n GetAbsOrigin\n GetAbsScale\n GetAbsVelocity\n@@ -10703,6 +10704,7 @@ GetClassName\n GetClassNameAsCStr\n GetClassNameOverride\n GetClassname\n+GetClipAmmo\n GetColor\n GetCommandClient\n GetCommandClient() : returns the player who issued this console command.\n@@ -10780,8 +10782,10 @@ GetMaterialGroupHash\n GetMaterialGroupHash(): Get the material group hash of this entity.\n GetMaterialGroupMask\n GetMaterialGroupMask(): Get the mesh group mask of this entity.\n+GetMaxClipAmmo\n GetMaxHealth\n GetMaxOutputDelay\n+GetMaxReserveAmmo\n GetModelName\n GetModelScale\n GetMoveParent\n@@ -10860,6 +10864,7 @@ GetRenderAlpha(): Get the alpha modulation of this entity.\n GetRenderColor\n GetRenderColor(): Get the render color of the entity.\n GetReportedPosition\n+GetReserveAmmo\n GetRightVector\n GetRootMoveParent\n GetRoundsPlayed\n@@ -11938,6 +11943,8 @@ IsConnected\n IsCrouched\n IsCrouching\n IsDedicatedServer\n+IsDucked\n+IsDucking\n IsEnabled\n IsEnemyPartVisible\n IsFakeClient\n@@ -13902,7 +13909,6 @@ Plays/modifies a sound from this entity. changes sound if nPitch and/or flVol or\n Please move your current gameinfo.gi agent settings to a %s file and create a %s file with a 'default' entry containing all the nav nulls. Then add \"NavHullsPreset\" \"default\" to your gameinfo.gi file. For now we'll continue to load the agent settings but this path is deprecated ( antonioc@ ).\n Please specify 0 or 1 with the -stream Parameter\\n\n Please wait for broadcast to start ...\n-PlusOneTick\n Point entity.\n PointAtEntity\n PointTemplate\n@@ -15062,6 +15068,7 @@ SetBrightness\n SetBrightnessDelta\n SetBrightnessScale\n SetCamera\n+SetClipAmmo\n SetClipPrimary\n SetClipSecondary\n SetColor\n@@ -15291,6 +15298,7 @@ SetRenderMode\n SetRenderMode( int ): Sets the render mode of the entity.\n SetRenderingEnabled\n SetReportedPosition\n+SetReserveAmmo\n SetReserveAmmoAmount\n SetRestLength\n SetRotateType\n@@ -17194,6 +17202,7 @@ altpath\n always tradable\n always_known\n ambient_generic\n+ammo\n ammo_grenade_limit_total 5\\n\n ammobalancing_removable\n amount\n@@ -17212,6 +17221,7 @@ ang_yaw\n ang_z\n angles: %g %g %g\n angularLimit\n+angularVelocity\n angular_damping_ratio_x\n angular_damping_ratio_y\n angular_damping_ratio_z\n@@ -20635,7 +20645,6 @@ m_nParamIndex < 0\n m_nSamples\n m_nSound\n m_nSpawnGroupCount\n-m_nTicks < INT_MAX\n m_nameList\n m_pAnimGraph1Instance == nullptr && m_pAnimGraph2Instance == nullptr && m_pAnimGraphInstanceOwner != nullptr\n m_pAnimGraphDestructibleGraphController\n@@ -21296,8 +21305,6 @@ open_buymenu\n opened\n operation_coin\n operation_type\n-operator+\n-operator-\n operatorName\n operatorname\n optionalEntityName\n@@ -22229,7 +22236,6 @@ revolver\n revolving_loot_lists\n reward_drop_list\n rfc822Mailbox\n-rhs > 0 ? ret < lhs : ret >= lhs\n rifle\n rifle0\n rifle1"
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 107,
          "deletions": 95,
          "changes": 202,
          "patch": "@@ -7,7 +7,7 @@ animation/anims/chicken/chick_land.vnmclip_c CRC:0068b2635e size:8962\n animation/anims/chicken/chick_land_water.vnmclip_c CRC:00a955f773 size:9588\n animation/anims/chicken/chick_react01.vnmclip_c CRC:002787b2d8 size:14505\n animation/anims/chicken/chick_react02.vnmclip_c CRC:006b6bb120 size:16214\n-animation/anims/chicken/chick_run01.vnmclip_c CRC:00ef2d5c83 size:12610\n+animation/anims/chicken/chick_run01.vnmclip_c CRC:0023751e68 size:12095\n animation/anims/chicken/chick_run01_swim.vnmclip_c CRC:0021059eb2 size:11940\n animation/anims/chicken/chick_runflap01.vnmclip_c CRC:00db951dfd size:12810\n animation/anims/chicken/chick_squat_cycle01.vnmclip_c CRC:0085931e63 size:24573\n@@ -4425,7 +4425,7 @@ maps/de_anubis_camera_nodes.kv3 CRC:001b8f43b2 size:17950\n maps/de_anubis_retake.txt CRC:0032c02075 size:4360\n maps/de_dust2_camera_nodes.kv3 CRC:0018f21a4c size:10453\n maps/de_dust2_retake.txt CRC:00c7737a39 size:4511\n-maps/de_inferno_camera_nodes.kv3 CRC:00287990bb size:23504\n+maps/de_inferno_camera_nodes.kv3 CRC:007ce32bbf size:22256\n maps/de_inferno_retake.txt CRC:00b78c5ff2 size:4053\n maps/de_mirage_camera_nodes.kv3 CRC:0072eadb25 size:25623\n maps/de_mirage_retake.txt CRC:00ca33c5f4 size:4767\n@@ -15182,6 +15182,8 @@ materials/models/inventory_items/music_kit/knock2_02/mp3_screen_color_psd_7369bd\n materials/models/inventory_items/music_kit/knock2_02/sleeve_cover.vmat_c CRC:00e407d79d size:3696\n materials/models/inventory_items/music_kit/label.vmat_c CRC:00df8291be size:3600\n materials/models/inventory_items/music_kit/label_color_psd_b2f768b1.vtex_c CRC:00912adb5b size:73985\n+materials/models/inventory_items/music_kit/label_cs2.vmat_c CRC:004a8d6b1b size:3892\n+materials/models/inventory_items/music_kit/label_cs2_color_psd_ad840642.vtex_c CRC:0050acda04 size:71469\n materials/models/inventory_items/music_kit/label_normal_psd_48a3d0b7.vtex_c CRC:0091d31774 size:208896\n materials/models/inventory_items/music_kit/laurashigihara_01/mp3_detail.vmat_c CRC:00a65edab2 size:2855\n materials/models/inventory_items/music_kit/laurashigihara_01/mp3_detail_color_psd_fd39d071.vtex_c CRC:00c051963b size:45676\n@@ -34665,7 +34667,7 @@ models/inventory_items/mlg_pickem_2016_gold.vmdl_c CRC:0093fac998 size:61603\n models/inventory_items/mlg_pickem_2016_silver.vmdl_c CRC:00738490cd size:61605\n models/inventory_items/music_kit.vmdl_c CRC:006579abaf size:25000\n models/inventory_items/music_kits/music_kit_3kliksphilip_01.vmdl_c CRC:00d436af66 size:54940\n-models/inventory_items/music_kits/music_kit_adambeyer_01.vmdl_c CRC:0022c16ab1 size:58595\n+models/inventory_items/music_kits/music_kit_adambeyer_01.vmdl_c CRC:008923106d size:56562\n models/inventory_items/music_kits/music_kit_amontobin_01.vmdl_c CRC:00898d76a5 size:54937\n models/inventory_items/music_kits/music_kit_austinwintory_01.vmdl_c CRC:00ccfa0038 size:54937\n models/inventory_items/music_kits/music_kit_austinwintory_02.vmdl_c CRC:0084e8b90b size:54937\n@@ -34689,30 +34691,30 @@ models/inventory_items/music_kits/music_kit_denzelcurry_01.vmdl_c CRC:00815eca3d\n models/inventory_items/music_kits/music_kit_dren_01.vmdl_c CRC:007fc47b13 size:54916\n models/inventory_items/music_kits/music_kit_dren_02.vmdl_c CRC:001dc64f66 size:54916\n models/inventory_items/music_kits/music_kit_dren_03.vmdl_c CRC:00244836ce size:58228\n-models/inventory_items/music_kits/music_kit_dryden_01.vmdl_c CRC:00623a30c7 size:58246\n+models/inventory_items/music_kits/music_kit_dryden_01.vmdl_c CRC:005f49649f size:57054\n models/inventory_items/music_kits/music_kit_feedme_01.vmdl_c CRC:00fe69b9c0 size:54934\n models/inventory_items/music_kits/music_kit_freakydna_01.vmdl_c CRC:00158cd549 size:54937\n-models/inventory_items/music_kits/music_kit_ghost_01.vmdl_c CRC:0091c06b4e size:58591\n+models/inventory_items/music_kits/music_kit_ghost_01.vmdl_c CRC:003969c282 size:56526\n models/inventory_items/music_kits/music_kit_hades_01.vmdl_c CRC:00dacd3972 size:54917\n models/inventory_items/music_kits/music_kit_halo_01.vmdl_c CRC:003040a7ce size:54916\n-models/inventory_items/music_kits/music_kit_health_01.vmdl_c CRC:00d24511b3 size:58591\n+models/inventory_items/music_kits/music_kit_health_01.vmdl_c CRC:001e1f99fb size:56526\n models/inventory_items/music_kits/music_kit_hlalyx_01.vmdl_c CRC:00f55dedcb size:58583\n models/inventory_items/music_kits/music_kit_hlb_01.vmdl_c CRC:003c125dc9 size:54915\n models/inventory_items/music_kits/music_kit_hotlinemiami_01.vmdl_c CRC:00073d3457 size:54940\n models/inventory_items/music_kits/music_kit_hundredth_01.vmdl_c CRC:00cf60e34e size:54937\n models/inventory_items/music_kits/music_kit_ianhultquist_01.vmdl_c CRC:00e453b1ca size:54940\n-models/inventory_items/music_kits/music_kit_isoxo_01.vmdl_c CRC:0049043455 size:58245\n-models/inventory_items/music_kits/music_kit_jamesandthecoldgun_01.vmdl_c CRC:0074662bd9 size:58987\n+models/inventory_items/music_kits/music_kit_isoxo_01.vmdl_c CRC:004f49ebdf size:57054\n+models/inventory_items/music_kits/music_kit_jamesandthecoldgun_01.vmdl_c CRC:00f384f747 size:56986\n models/inventory_items/music_kits/music_kit_jesseharlin_01.vmdl_c CRC:00dae7edbc size:54939\n-models/inventory_items/music_kits/music_kit_jonathanyoung_01.vmdl_c CRC:00abc4af04 size:58631\n+models/inventory_items/music_kits/music_kit_jonathanyoung_01.vmdl_c CRC:007fe7b2e8 size:56582\n models/inventory_items/music_kits/music_kit_juelz_01.vmdl_c CRC:00810899b7 size:54917\n-models/inventory_items/music_kits/music_kit_juelz_02.vmdl_c CRC:00dfac8131 size:58591\n+models/inventory_items/music_kits/music_kit_juelz_02.vmdl_c CRC:002bd1c12a size:56526\n models/inventory_items/music_kits/music_kit_kellybailey_01.vmdl_c CRC:002a68bd57 size:54939\n-models/inventory_items/music_kits/music_kit_killermike_01.vmdl_c CRC:0066b0c485 size:58595\n-models/inventory_items/music_kits/music_kit_killscript_01.vmdl_c CRC:00aae469c3 size:58250\n+models/inventory_items/music_kits/music_kit_killermike_01.vmdl_c CRC:0064635005 size:56562\n+models/inventory_items/music_kits/music_kit_killscript_01.vmdl_c CRC:004195593e size:57106\n models/inventory_items/music_kits/music_kit_kitheory_01.vmdl_c CRC:007b8f89f8 size:54933\n models/inventory_items/music_kits/music_kit_knock2_01.vmdl_c CRC:00b60e5c4a size:54934\n-models/inventory_items/music_kits/music_kit_knock2_02.vmdl_c CRC:0028a8f84f size:58246\n+models/inventory_items/music_kits/music_kit_knock2_02.vmdl_c CRC:0037b0c0d8 size:57054\n models/inventory_items/music_kits/music_kit_laurashigihara_01.vmdl_c CRC:00422fb8c6 size:54942\n models/inventory_items/music_kits/music_kit_lenniemoore_01.vmdl_c CRC:00a8270f2e size:54939\n models/inventory_items/music_kits/music_kit_mateomessina_01.vmdl_c CRC:00a0f5583c size:54940\n@@ -34730,8 +34732,8 @@ models/inventory_items/music_kits/music_kit_noisia_01.vmdl_c CRC:009059d9f2 size\n models/inventory_items/music_kits/music_kit_perfectworld_01.vmdl_c CRC:002bba0792 size:54940\n models/inventory_items/music_kits/music_kit_perfectworld_02.vmdl_c CRC:0034b208cf size:58300\n models/inventory_items/music_kits/music_kit_proxy_01.vmdl_c CRC:0014ed1810 size:54917\n-models/inventory_items/music_kits/music_kit_pvris_01.vmdl_c CRC:00302ce095 size:58591\n-models/inventory_items/music_kits/music_kit_radcat_01.vmdl_c CRC:0091050192 size:58246\n+models/inventory_items/music_kits/music_kit_pvris_01.vmdl_c CRC:00331d56ad size:56526\n+models/inventory_items/music_kits/music_kit_radcat_01.vmdl_c CRC:00780b3d11 size:57054\n models/inventory_items/music_kits/music_kit_roam_01.vmdl_c CRC:009b64a27e size:54916\n models/inventory_items/music_kits/music_kit_robertallaire_01.vmdl_c CRC:0064ce3734 size:54941\n models/inventory_items/music_kits/music_kit_sammarshall_01.vmdl_c CRC:0046ee8a0d size:54939\n@@ -34741,23 +34743,23 @@ models/inventory_items/music_kits/music_kit_sasha_01.vmdl_c CRC:00a952bc67 size:\n models/inventory_items/music_kits/music_kit_scarlxrd_01.vmdl_c CRC:004ea9a044 size:54936\n models/inventory_items/music_kits/music_kit_scarlxrd_02.vmdl_c CRC:00672268bd size:54936\n models/inventory_items/music_kits/music_kit_seanmurray_01.vmdl_c CRC:0032b5029e size:54938\n-models/inventory_items/music_kits/music_kit_selectiveresponse_01.vmdl_c CRC:00e104f9d4 size:58634\n+models/inventory_items/music_kits/music_kit_selectiveresponse_01.vmdl_c CRC:001b6db221 size:56585\n models/inventory_items/music_kits/music_kit_skog_01.vmdl_c CRC:00dfcd5616 size:54916\n models/inventory_items/music_kits/music_kit_skog_02.vmdl_c CRC:00253c9d1c size:54916\n models/inventory_items/music_kits/music_kit_skog_03.vmdl_c CRC:001dfbb8b0 size:54916\n models/inventory_items/music_kits/music_kit_sullivanking_01.vmdl_c CRC:0013c9f1f5 size:54940\n models/inventory_items/music_kits/music_kit_theverkkars_01.vmdl_c CRC:00ff3c2efe size:54939\n models/inventory_items/music_kits/music_kit_theverkkars_02.vmdl_c CRC:005d711a92 size:54939\n-models/inventory_items/music_kits/music_kit_tigercub_01.vmdl_c CRC:0056a3d5af size:58947\n+models/inventory_items/music_kits/music_kit_tigercub_01.vmdl_c CRC:00c579a530 size:56978\n models/inventory_items/music_kits/music_kit_timhuling_01.vmdl_c CRC:0077f49644 size:54937\n models/inventory_items/music_kits/music_kit_timhuling_02.vmdl_c CRC:00f56ff4a9 size:58249\n models/inventory_items/music_kits/music_kit_treeadams_01.vmdl_c CRC:004733f77a size:58249\n models/inventory_items/music_kits/music_kit_treeadams_benbromfield_01.vmdl_c CRC:007f61f04a size:54998\n models/inventory_items/music_kits/music_kit_troelsfolmann_01.vmdl_c CRC:007fbf79ca size:54941\n-models/inventory_items/music_kits/music_kit_twerl_01.vmdl_c CRC:00e422ffbb size:58245\n+models/inventory_items/music_kits/music_kit_twerl_01.vmdl_c CRC:00a7afe099 size:57054\n models/inventory_items/music_kits/music_kit_twinatlantic_01.vmdl_c CRC:0046120745 size:54940\n models/inventory_items/music_kits/music_kit_valve_01.vmdl_c CRC:0097db0330 size:57605\n-models/inventory_items/music_kits/music_kit_valve_cs2_01.vmdl_c CRC:00b36f828b size:57609\n+models/inventory_items/music_kits/music_kit_valve_cs2_01.vmdl_c CRC:00b4028743 size:56770\n models/inventory_items/music_kits/record_with_sleeve.vmdl_c CRC:0007eca103 size:58633\n models/inventory_items/op9/op9_spider_diamond_color_tga_fb8b71c0.vtex_c CRC:00728dda9c size:240330\n models/inventory_items/operation_10_bronze.vmdl_c CRC:008b9031ce size:13072\n@@ -50449,7 +50451,7 @@ panorama/images/econ/keychains/weapon_1/kc_wpn_tknife_gold_png.vtex_c CRC:008263\n panorama/images/econ/keychains/weapon_1/kc_wpn_usp_jewel_png.vtex_c CRC:003e58056c size:74428\n panorama/images/econ/keychains/weapon_1/kc_wpn_usp_yarn_png.vtex_c CRC:00c74e8bf7 size:75722\n panorama/images/econ/music_kits/3kliksphilip_01_png.vtex_c CRC:0058420b63 size:79755\n-panorama/images/econ/music_kits/adambeyer_01_png.vtex_c CRC:000e161116 size:69805\n+panorama/images/econ/music_kits/adambeyer_01_png.vtex_c CRC:005b98fcc5 size:68848\n panorama/images/econ/music_kits/amontobin_01_png.vtex_c CRC:008ee7b9e0 size:71841\n panorama/images/econ/music_kits/austinwintory_01_png.vtex_c CRC:0080adf5e8 size:61367\n panorama/images/econ/music_kits/austinwintory_02_png.vtex_c CRC:0022714c99 size:100208\n@@ -50474,30 +50476,30 @@ panorama/images/econ/music_kits/denzelcurry_01_png.vtex_c CRC:002e6a9950 size:59\n panorama/images/econ/music_kits/dren_01_png.vtex_c CRC:0041e08a83 size:71680\n panorama/images/econ/music_kits/dren_02_png.vtex_c CRC:00bf8e255f size:71286\n panorama/images/econ/music_kits/dren_03_png.vtex_c CRC:006c146b76 size:71333\n-panorama/images/econ/music_kits/dryden_01_png.vtex_c CRC:007ef19656 size:63662\n+panorama/images/econ/music_kits/dryden_01_png.vtex_c CRC:00b469274f size:63560\n panorama/images/econ/music_kits/feedme_01_png.vtex_c CRC:00270efbd4 size:37257\n panorama/images/econ/music_kits/freakydna_01_png.vtex_c CRC:00a33e05ed size:52615\n-panorama/images/econ/music_kits/ghost_01_png.vtex_c CRC:0052e4b293 size:74641\n+panorama/images/econ/music_kits/ghost_01_png.vtex_c CRC:00f9c4a50c size:75317\n panorama/images/econ/music_kits/hades_01_png.vtex_c CRC:001ac6202a size:82105\n panorama/images/econ/music_kits/halo_01_png.vtex_c CRC:009da98edc size:95563\n-panorama/images/econ/music_kits/health_01_png.vtex_c CRC:00f7ddf3ed size:60858\n+panorama/images/econ/music_kits/health_01_png.vtex_c CRC:00bfcf608c size:44562\n panorama/images/econ/music_kits/hlalyx_01_png.vtex_c CRC:00dd111d77 size:80347\n panorama/images/econ/music_kits/hlb_01_png.vtex_c CRC:00ffbd91e4 size:82546\n panorama/images/econ/music_kits/hotlinemiami_01_png.vtex_c CRC:0034b347ba size:90795\n panorama/images/econ/music_kits/hundredth_01_png.vtex_c CRC:00ced4659c size:57602\n panorama/images/econ/music_kits/ianhultquist_01_png.vtex_c CRC:0086bb726e size:80651\n-panorama/images/econ/music_kits/isoxo_01_png.vtex_c CRC:00fdca2f15 size:69317\n-panorama/images/econ/music_kits/jamesandthecoldgun_01_png.vtex_c CRC:008e377e53 size:70565\n+panorama/images/econ/music_kits/isoxo_01_png.vtex_c CRC:0046fbcbcb size:65889\n+panorama/images/econ/music_kits/jamesandthecoldgun_01_png.vtex_c CRC:00d7ae36be size:70978\n panorama/images/econ/music_kits/jesseharlin_01_png.vtex_c CRC:00754f0cd9 size:37806\n-panorama/images/econ/music_kits/jonathanyoung_01_png.vtex_c CRC:0048ca59dd size:87433\n+panorama/images/econ/music_kits/jonathanyoung_01_png.vtex_c CRC:0061924ce1 size:88700\n panorama/images/econ/music_kits/juelz_01_png.vtex_c CRC:00013b8044 size:52627\n-panorama/images/econ/music_kits/juelz_02_png.vtex_c CRC:006322819a size:61145\n+panorama/images/econ/music_kits/juelz_02_png.vtex_c CRC:00f1a79f22 size:61993\n panorama/images/econ/music_kits/kellybailey_01_png.vtex_c CRC:00ba0c71c3 size:79732\n-panorama/images/econ/music_kits/killermike_01_png.vtex_c CRC:0092f15edb size:53761\n-panorama/images/econ/music_kits/killscript_01_png.vtex_c CRC:00ae4fdd83 size:78429\n+panorama/images/econ/music_kits/killermike_01_png.vtex_c CRC:00cf339620 size:52279\n+panorama/images/econ/music_kits/killscript_01_png.vtex_c CRC:005dbca746 size:80602\n panorama/images/econ/music_kits/kitheory_01_png.vtex_c CRC:0051b48143 size:75712\n panorama/images/econ/music_kits/knock2_01_png.vtex_c CRC:000db51b9c size:83100\n-panorama/images/econ/music_kits/knock2_02_png.vtex_c CRC:0018b70953 size:74434\n+panorama/images/econ/music_kits/knock2_02_png.vtex_c CRC:00c72dea9b size:74737\n panorama/images/econ/music_kits/laurashigihara_01_png.vtex_c CRC:00e0e6c837 size:74576\n panorama/images/econ/music_kits/lenniemoore_01_png.vtex_c CRC:00247f8925 size:78381\n panorama/images/econ/music_kits/mateomessina_01_png.vtex_c CRC:00d1325e17 size:71517\n@@ -50515,8 +50517,8 @@ panorama/images/econ/music_kits/noisia_01_png.vtex_c CRC:003cd81e4d size:57377\n panorama/images/econ/music_kits/perfectworld_01_png.vtex_c CRC:00c5de42fd size:76672\n panorama/images/econ/music_kits/perfectworld_02_png.vtex_c CRC:00e589d482 size:40894\n panorama/images/econ/music_kits/proxy_01_png.vtex_c CRC:008ea31b8f size:66238\n-panorama/images/econ/music_kits/pvris_01_png.vtex_c CRC:007a52834c size:44309\n-panorama/images/econ/music_kits/radcat_01_png.vtex_c CRC:0076cbdff6 size:61697\n+panorama/images/econ/music_kits/pvris_01_png.vtex_c CRC:00743b0903 size:43928\n+panorama/images/econ/music_kits/radcat_01_png.vtex_c CRC:001cca7f91 size:59783\n panorama/images/econ/music_kits/roam_01_png.vtex_c CRC:005ec80efb size:80362\n panorama/images/econ/music_kits/robertallaire_01_png.vtex_c CRC:005d859703 size:73733\n panorama/images/econ/music_kits/sammarshall_01_png.vtex_c CRC:005d1efc68 size:86400\n@@ -50526,24 +50528,24 @@ panorama/images/econ/music_kits/sasha_01_png.vtex_c CRC:0030678c43 size:60749\n panorama/images/econ/music_kits/scarlxrd_01_png.vtex_c CRC:00c9f59d8d size:75587\n panorama/images/econ/music_kits/scarlxrd_02_png.vtex_c CRC:00add74c5b size:95145\n panorama/images/econ/music_kits/seanmurray_01_png.vtex_c CRC:00c45e766f size:74084\n-panorama/images/econ/music_kits/selectiveresponse_01_png.vtex_c CRC:0004cf5a85 size:70774\n+panorama/images/econ/music_kits/selectiveresponse_01_png.vtex_c CRC:0095ff1615 size:75220\n panorama/images/econ/music_kits/skog_01_png.vtex_c CRC:00469ff59e size:88087\n panorama/images/econ/music_kits/skog_02_png.vtex_c CRC:00c1f48370 size:65073\n panorama/images/econ/music_kits/skog_03_png.vtex_c CRC:007161df3e size:81258\n panorama/images/econ/music_kits/sullivanking_01_png.vtex_c CRC:00bb1c667e size:67151\n panorama/images/econ/music_kits/theverkkars_01_png.vtex_c CRC:006d1ba974 size:43729\n panorama/images/econ/music_kits/theverkkars_02_png.vtex_c CRC:0051747062 size:80378\n-panorama/images/econ/music_kits/tigercub_01_png.vtex_c CRC:009b2a4316 size:43075\n+panorama/images/econ/music_kits/tigercub_01_png.vtex_c CRC:009b0ecd20 size:42206\n panorama/images/econ/music_kits/timhuling_01_png.vtex_c CRC:008057365c size:93058\n panorama/images/econ/music_kits/timhuling_02_png.vtex_c CRC:00b786369b size:61774\n panorama/images/econ/music_kits/treeadams_01_png.vtex_c CRC:000c213598 size:86539\n panorama/images/econ/music_kits/treeadams_benbromfield_01_png.vtex_c CRC:0094ad7289 size:60494\n panorama/images/econ/music_kits/troelsfolmann_01_png.vtex_c CRC:00c52ed18f size:83382\n-panorama/images/econ/music_kits/twerl_01_png.vtex_c CRC:00272f7b81 size:76202\n+panorama/images/econ/music_kits/twerl_01_png.vtex_c CRC:00eb56d3ac size:75018\n panorama/images/econ/music_kits/twinatlantic_01_png.vtex_c CRC:0054af6d83 size:74211\n panorama/images/econ/music_kits/valve_01_png.vtex_c CRC:001f4315c6 size:64428\n panorama/images/econ/music_kits/valve_02_png.vtex_c CRC:00405c1c8a size:32510\n-panorama/images/econ/music_kits/valve_cs2_01_png.vtex_c CRC:009b94cb78 size:58244\n+panorama/images/econ/music_kits/valve_cs2_01_png.vtex_c CRC:00072c90ef size:57774\n panorama/images/econ/patches/case01/patch_banana_png.vtex_c CRC:00da8c8d62 size:79879\n panorama/images/econ/patches/case01/patch_bloodhound_png.vtex_c CRC:001eb00c20 size:72674\n panorama/images/econ/patches/case01/patch_boss_png.vtex_c CRC:006602d85c size:66076\n@@ -51418,6 +51420,8 @@ panorama/images/econ/status_icons/maptoken_agencycs2_png.vtex_c CRC:0019276d5a s\n panorama/images/econ/status_icons/maptoken_agencycs2_small_png.vtex_c CRC:00b5531406 size:14448\n panorama/images/econ/status_icons/maptoken_ali_png.vtex_c CRC:00216adfee size:195543\n panorama/images/econ/status_icons/maptoken_ali_small_png.vtex_c CRC:001d960140 size:14336\n+panorama/images/econ/status_icons/maptoken_alpine_png.vtex_c CRC:00d8b14502 size:236888\n+panorama/images/econ/status_icons/maptoken_alpine_small_png.vtex_c CRC:00c461aa7a size:14448\n panorama/images/econ/status_icons/maptoken_anubis_png.vtex_c CRC:00a43b322d size:198004\n panorama/images/econ/status_icons/maptoken_anubis_small_png.vtex_c CRC:006aeee823 size:14352\n panorama/images/econ/status_icons/maptoken_apollo_png.vtex_c CRC:00e0bfe45f size:198094\n@@ -51538,6 +51542,8 @@ panorama/images/econ/status_icons/maptoken_pitstop_png.vtex_c CRC:00e00365dc siz\n panorama/images/econ/status_icons/maptoken_pitstop_small_png.vtex_c CRC:0056bac5e5 size:14352\n panorama/images/econ/status_icons/maptoken_poolday_png.vtex_c CRC:008b9cb82b size:237259\n panorama/images/econ/status_icons/maptoken_poolday_small_png.vtex_c CRC:0027948029 size:14400\n+panorama/images/econ/status_icons/maptoken_poseidon_png.vtex_c CRC:00f7db42e5 size:238201\n+panorama/images/econ/status_icons/maptoken_poseidon_small_png.vtex_c CRC:00ae746c94 size:14448\n panorama/images/econ/status_icons/maptoken_prime_png.vtex_c CRC:00045b665c size:200261\n panorama/images/econ/status_icons/maptoken_prime_small_png.vtex_c CRC:00118cea1b size:14352\n panorama/images/econ/status_icons/maptoken_rails_png.vtex_c CRC:00da25135f size:196747\n@@ -51554,6 +51560,8 @@ panorama/images/econ/status_icons/maptoken_ruins_png.vtex_c CRC:0010c08f4f size:\n panorama/images/econ/status_icons/maptoken_ruins_small_png.vtex_c CRC:00138d661a size:14352\n panorama/images/econ/status_icons/maptoken_rush_png.vtex_c CRC:0007531504 size:197683\n panorama/images/econ/status_icons/maptoken_rush_small_png.vtex_c CRC:007f1b05c4 size:14352\n+panorama/images/econ/status_icons/maptoken_sanctum_png.vtex_c CRC:008eb472ed size:237700\n+panorama/images/econ/status_icons/maptoken_sanctum_small_png.vtex_c CRC:00936a4906 size:14448\n panorama/images/econ/status_icons/maptoken_santorini_png.vtex_c CRC:00dc91e946 size:201025\n panorama/images/econ/status_icons/maptoken_santorini_small_png.vtex_c CRC:001302eba9 size:14352\n panorama/images/econ/status_icons/maptoken_seaside_png.vtex_c CRC:003ff96ef7 size:200310\n@@ -51562,6 +51570,8 @@ panorama/images/econ/status_icons/maptoken_season_png.vtex_c CRC:00cb16914e size\n panorama/images/econ/status_icons/maptoken_season_small_png.vtex_c CRC:00547a5b43 size:14352\n panorama/images/econ/status_icons/maptoken_siege_png.vtex_c CRC:009513dc33 size:197737\n panorama/images/econ/status_icons/maptoken_siege_small_png.vtex_c CRC:008542bcb5 size:14352\n+panorama/images/econ/status_icons/maptoken_stronghold_png.vtex_c CRC:0073ee261e size:239888\n+panorama/images/econ/status_icons/maptoken_stronghold_small_png.vtex_c CRC:00707f89ef size:239888\n panorama/images/econ/status_icons/maptoken_studio_png.vtex_c CRC:00cdd38267 size:198024\n panorama/images/econ/status_icons/maptoken_studio_small_png.vtex_c CRC:00700edb7b size:14352\n panorama/images/econ/status_icons/maptoken_subzero_png.vtex_c CRC:00cc37882b size:199662\n@@ -51578,6 +51588,8 @@ panorama/images/econ/status_icons/maptoken_tuscan_png.vtex_c CRC:0052b82150 size\n panorama/images/econ/status_icons/maptoken_tuscan_small_png.vtex_c CRC:00267092dd size:14352\n panorama/images/econ/status_icons/maptoken_vineyard_png.vtex_c CRC:00518e7b32 size:200572\n panorama/images/econ/status_icons/maptoken_vineyard_small_png.vtex_c CRC:0005ddd3af size:14352\n+panorama/images/econ/status_icons/maptoken_warden_png.vtex_c CRC:006de834c5 size:237806\n+panorama/images/econ/status_icons/maptoken_warden_small_png.vtex_c CRC:00b4814d7d size:14448\n panorama/images/econ/status_icons/maptoken_whistle_png.vtex_c CRC:00817834d4 size:236899\n panorama/images/econ/status_icons/maptoken_whistle_small_png.vtex_c CRC:003051a942 size:14384\n panorama/images/econ/status_icons/maptoken_workout_png.vtex_c CRC:0055e55078 size:200776\n@@ -74085,11 +74097,11 @@ panorama/images/map_icons/screenshots/1080p/de_dust2_1_png.vtex_c CRC:00faabf8f3\n panorama/images/map_icons/screenshots/1080p/de_dust2_2_png.vtex_c CRC:003a470710 size:3743356\n panorama/images/map_icons/screenshots/1080p/de_dust2_3_png.vtex_c CRC:0076ee5b30 size:1944884\n panorama/images/map_icons/screenshots/1080p/de_dust2_png.vtex_c CRC:002364685e size:3456378\n-panorama/images/map_icons/screenshots/1080p/de_inferno_1_png.vtex_c CRC:008095f3ef size:3476243\n-panorama/images/map_icons/screenshots/1080p/de_inferno_2_png.vtex_c CRC:003a0d6e80 size:3110062\n-panorama/images/map_icons/screenshots/1080p/de_inferno_3_png.vtex_c CRC:001a4dddc0 size:3424434\n-panorama/images/map_icons/screenshots/1080p/de_inferno_4_png.vtex_c CRC:00893ccc33 size:3155170\n-panorama/images/map_icons/screenshots/1080p/de_inferno_png.vtex_c CRC:000b9bdf2c size:3399841\n+panorama/images/map_icons/screenshots/1080p/de_inferno_1_png.vtex_c CRC:001d9d8fa8 size:3479892\n+panorama/images/map_icons/screenshots/1080p/de_inferno_2_png.vtex_c CRC:00106811db size:3116097\n+panorama/images/map_icons/screenshots/1080p/de_inferno_3_png.vtex_c CRC:00e9c7a79d size:3427401\n+panorama/images/map_icons/screenshots/1080p/de_inferno_4_png.vtex_c CRC:0073af3814 size:3154179\n+panorama/images/map_icons/screenshots/1080p/de_inferno_png.vtex_c CRC:00305a5039 size:3407490\n panorama/images/map_icons/screenshots/1080p/de_mirage_1_png.vtex_c CRC:0083f0d356 size:3760081\n panorama/images/map_icons/screenshots/1080p/de_mirage_2_png.vtex_c CRC:00e0c3177f size:3364814\n panorama/images/map_icons/screenshots/1080p/de_mirage_3_png.vtex_c CRC:007c16fc7f size:2621869\n@@ -74135,7 +74147,7 @@ panorama/images/map_icons/screenshots/360p/de_ancient_png.vtex_c CRC:000d1b6f3b\n panorama/images/map_icons/screenshots/360p/de_anubis_png.vtex_c CRC:00c006871b size:379702\n panorama/images/map_icons/screenshots/360p/de_dust2_png.vtex_c CRC:001ec0b2a7 size:417766\n panorama/images/map_icons/screenshots/360p/de_dust_png.vtex_c CRC:007fd5e1b6 size:358102\n-panorama/images/map_icons/screenshots/360p/de_inferno_png.vtex_c CRC:0012ebbc61 size:404600\n+panorama/images/map_icons/screenshots/360p/de_inferno_png.vtex_c CRC:00a1877a04 size:405160\n panorama/images/map_icons/screenshots/360p/de_mirage_png.vtex_c CRC:008449f607 size:454106\n panorama/images/map_icons/screenshots/360p/de_nuke_png.vtex_c CRC:00bfe7927f size:353074\n panorama/images/map_icons/screenshots/360p/de_overpass_png.vtex_c CRC:00ed9d8c68 size:419660\n@@ -74195,11 +74207,11 @@ panorama/images/map_icons/screenshots/720p/de_dust2_1_png.vtex_c CRC:0031a6ae9d\n panorama/images/map_icons/screenshots/720p/de_dust2_2_png.vtex_c CRC:0055f59279 size:1700759\n panorama/images/map_icons/screenshots/720p/de_dust2_3_png.vtex_c CRC:00ba25e099 size:1903581\n panorama/images/map_icons/screenshots/720p/de_dust2_png.vtex_c CRC:00f277556b size:1577114\n-panorama/images/map_icons/screenshots/720p/de_inferno_1_png.vtex_c CRC:0060a460f7 size:1652159\n-panorama/images/map_icons/screenshots/720p/de_inferno_2_png.vtex_c CRC:00607c8a19 size:1447312\n-panorama/images/map_icons/screenshots/720p/de_inferno_3_png.vtex_c CRC:002f0a9197 size:1584892\n-panorama/images/map_icons/screenshots/720p/de_inferno_4_png.vtex_c CRC:007b3eb26a size:1445456\n-panorama/images/map_icons/screenshots/720p/de_inferno_png.vtex_c CRC:00ac26a8c5 size:1544184\n+panorama/images/map_icons/screenshots/720p/de_inferno_1_png.vtex_c CRC:00204dbf45 size:1656731\n+panorama/images/map_icons/screenshots/720p/de_inferno_2_png.vtex_c CRC:000d65da99 size:1450500\n+panorama/images/map_icons/screenshots/720p/de_inferno_3_png.vtex_c CRC:0043f35100 size:1588343\n+panorama/images/map_icons/screenshots/720p/de_inferno_4_png.vtex_c CRC:000e1c532c size:1445909\n+panorama/images/map_icons/screenshots/720p/de_inferno_png.vtex_c CRC:00fffff96e size:1545593\n panorama/images/map_icons/screenshots/720p/de_mirage_1_png.vtex_c CRC:0077d04e9a size:1712462\n panorama/images/map_icons/screenshots/720p/de_mirage_2_png.vtex_c CRC:00602e4878 size:1583221\n panorama/images/map_icons/screenshots/720p/de_mirage_3_png.vtex_c CRC:0057061fb6 size:1282143\n@@ -74877,7 +74889,7 @@ panorama/layout/inspect.vxml_c CRC:002eabbf40 size:1810\n panorama/layout/intromovie.vxml_c CRC:004e7c93de size:1527\n panorama/layout/inventory_item_list.vxml_c CRC:00829fec18 size:1519\n panorama/layout/itempreviewdebug.vxml_c CRC:00ad026445 size:5215\n-panorama/layout/itemtile.vxml_c CRC:004a3e7888 size:3369\n+panorama/layout/itemtile.vxml_c CRC:00c15d9569 size:3368\n panorama/layout/itemtile_store.vxml_c CRC:001e9383d2 size:3389\n panorama/layout/leaderboard.vxml_c CRC:002b1f1bd2 size:3744\n panorama/layout/loadingscreen.vxml_c CRC:0052b7a9dd size:3574\n@@ -74952,7 +74964,7 @@ panorama/layout/popups/popup_directchallenge_join.vxml_c CRC:0048c4b78a size:238\n panorama/layout/popups/popup_directchallenge_steamgroups.vxml_c CRC:0006383dd0 size:2219\n panorama/layout/popups/popup_hud_edge_positions.vxml_c CRC:0070c3bf5e size:2122\n panorama/layout/popups/popup_inspect_action-bar.vxml_c CRC:00b7531294 size:3714\n-panorama/layout/popups/popup_inspect_async-bar.vxml_c CRC:00d93c610a size:2997\n+panorama/layout/popups/popup_inspect_async-bar.vxml_c CRC:0038408a8f size:3178\n panorama/layout/popups/popup_inspect_header.vxml_c CRC:004ede88aa size:2353\n panorama/layout/popups/popup_inspect_purchase-bar.vxml_c CRC:00e88d379b size:2597\n panorama/layout/popups/popup_inspect_rental-bar.vxml_c CRC:00a78d2542 size:2635\n@@ -74963,8 +74975,8 @@ panorama/layout/popups/popup_license_register.vxml_c CRC:002b593ee5 size:1824\n panorama/layout/popups/popup_mainmenu_overwatch_verdict.vxml_c CRC:00451b2d1e size:2438\n panorama/layout/popups/popup_major_hub.vxml_c CRC:0038ae5a2a size:6336\n panorama/layout/popups/popup_news.vxml_c CRC:000870d825 size:2395\n-panorama/layout/popups/popup_offers_laptop.vxml_c CRC:00e1c689dd size:3694\n-panorama/layout/popups/popup_offers_laptop_interface.vxml_c CRC:00a805b6a6 size:8439\n+panorama/layout/popups/popup_offers_laptop.vxml_c CRC:00b8e4eaec size:3694\n+panorama/layout/popups/popup_offers_laptop_interface.vxml_c CRC:00103e5a8c size:8917\n panorama/layout/popups/popup_play_gamemodeflags.vxml_c CRC:00b3ed67ac size:2119\n panorama/layout/popups/popup_premier_pick_ban.vxml_c CRC:008adfc90d size:5476\n panorama/layout/popups/popup_prime_status.vxml_c CRC:007f0d9558 size:3579\n@@ -75031,7 +75043,7 @@ panorama/layout/tooltips/stats/tooltip_playerstats_weaponsgraph.vxml_c CRC:00482\n panorama/layout/tooltips/tooltip_base.vxml_c CRC:001ee0cc28 size:1498\n panorama/layout/tooltips/tooltip_custom_test.vxml_c CRC:000ca219b3 size:1614\n panorama/layout/tooltips/tooltip_eventsched_team_simple.vxml_c CRC:002dbe13c6 size:1952\n-panorama/layout/tooltips/tooltip_inventory_item.vxml_c CRC:0008eb3db7 size:2787\n+panorama/layout/tooltips/tooltip_inventory_item.vxml_c CRC:0066d03743 size:2810\n panorama/layout/tooltips/tooltip_limited_item_variation.vxml_c CRC:00f85ceb44 size:1829\n panorama/layout/tooltips/tooltip_loadout_item.vxml_c CRC:0008e5eb4e size:1747\n panorama/layout/tooltips/tooltip_lobby_settings.vxml_c CRC:00143c020e size:3355\n@@ -75072,9 +75084,9 @@ panorama/scripts/common/eventutil.vts_c CRC:0052f92f9d size:3742\n panorama/scripts/common/flip_panel_anim.vts_c CRC:00d9884ef1 size:9198\n panorama/scripts/common/formattext.vts_c CRC:00b9d2d472 size:17934\n panorama/scripts/common/gamerules_constants.vts_c CRC:00b6a27ad2 size:3294\n-panorama/scripts/common/hold_button.vts_c CRC:00eecf0766 size:8974\n+panorama/scripts/common/hold_button.vts_c CRC:0001440e83 size:9102\n panorama/scripts/common/icon.vts_c CRC:0013e31a4c size:4638\n-panorama/scripts/common/item_context_entries.vts_c CRC:00cbd5fefe size:122590\n+panorama/scripts/common/item_context_entries.vts_c CRC:00edd02b26 size:124206\n panorama/scripts/common/iteminfo.vts_c CRC:00a10938ec size:41710\n panorama/scripts/common/licenseutil.vts_c CRC:001a51d7f3 size:5006\n panorama/scripts/common/prime_button_action.vts_c CRC:003673d8e2 size:3374\n@@ -75113,7 +75125,7 @@ panorama/scripts/friendtile.vts_c CRC:00f2e18300 size:12718\n panorama/scripts/generated/items_event_current_generated_store.vts_c CRC:0046110da0 size:11838\n panorama/scripts/honor_icon.vts_c CRC:0011c07fa5 size:11918\n panorama/scripts/hud/huddeathpanel.vts_c CRC:0020b02dba size:6926\n-panorama/scripts/hud/huddemocontroller.vts_c CRC:004283300a size:43966\n+panorama/scripts/hud/huddemocontroller.vts_c CRC:001e9e5e76 size:44078\n panorama/scripts/hud/hudinstructor.vts_c CRC:009243d7f4 size:8270\n panorama/scripts/hud/hudmissions.vts_c CRC:00448937d1 size:3742\n panorama/scripts/hud/hudmoney.vts_c CRC:0034c882a9 size:3342\n@@ -75123,7 +75135,7 @@ panorama/scripts/hud/hudwinpanel_background_map.vts_c CRC:002ef9f426 size:37150\n panorama/scripts/inspect.vts_c CRC:00176eea94 size:70254\n panorama/scripts/intromovie.vts_c CRC:003458d5af size:4894\n panorama/scripts/itempreviewdebug.vjs_c CRC:00cf9bd3ad size:7742\n-panorama/scripts/itemtile.vts_c CRC:0043d91b6c size:34526\n+panorama/scripts/itemtile.vts_c CRC:009d29026f size:35230\n panorama/scripts/itemtile_store.vts_c CRC:00357cd636 size:28910\n panorama/scripts/leaderboard.vts_c CRC:0065935c54 size:55150\n panorama/scripts/loadingscreen.vts_c CRC:00c6bed21c size:17054\n@@ -75187,8 +75199,8 @@ panorama/scripts/popups/popup_directchallenge_join.vjs_c CRC:00ef5b51d1 size:586\n panorama/scripts/popups/popup_directchallenge_steamgroups.vjs_c CRC:003a9e0207 size:3268\n panorama/scripts/popups/popup_hud_edge_positions.vts_c CRC:00d58daa7d size:3998\n panorama/scripts/popups/popup_inspect_action-bar.vts_c CRC:0085056d82 size:42334\n-panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:005a953d23 size:62158\n-panorama/scripts/popups/popup_inspect_header.vts_c CRC:00b455eb14 size:9822\n+panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:0003eba2c2 size:65678\n+panorama/scripts/popups/popup_inspect_header.vts_c CRC:008295fc35 size:10238\n panorama/scripts/popups/popup_inspect_purchase-bar.vts_c CRC:00367b936c size:18990\n panorama/scripts/popups/popup_inspect_rental-bar.vts_c CRC:002e1b85c6 size:28734\n panorama/scripts/popups/popup_inspect_shared.vts_c CRC:00a565a1a1 size:3214\n@@ -75201,7 +75213,7 @@ panorama/scripts/popups/popup_mainmenu_overwatch_verdict.vts_c CRC:0097839e0e si\n panorama/scripts/popups/popup_major_hub.vts_c CRC:00ac2c6606 size:76206\n panorama/scripts/popups/popup_news.vts_c CRC:00f6565e6e size:6014\n panorama/scripts/popups/popup_offers_laptop.vts_c CRC:00fc869645 size:30926\n-panorama/scripts/popups/popup_offers_laptop_interface.vts_c CRC:00aa233d99 size:118014\n+panorama/scripts/popups/popup_offers_laptop_interface.vts_c CRC:002e51cc81 size:124974\n panorama/scripts/popups/popup_operation_store.vjs_c CRC:00ef18b8f7 size:22561\n panorama/scripts/popups/popup_play_gamemodeflags.vjs_c CRC:00bbf76349 size:3537\n panorama/scripts/popups/popup_premier_pick_ban.vts_c CRC:006709f02d size:63662\n@@ -75295,7 +75307,7 @@ panorama/styles/context_menus/context_menu_vote.vcss_c CRC:00f0b4065d size:1313\n panorama/styles/context_menus/context_menu_watchnotice_match_streams.vcss_c CRC:00eedd3325 size:4934\n panorama/styles/crafting.vcss_c CRC:00cee957d3 size:3336\n panorama/styles/crosshair.vcss_c CRC:00779983c5 size:6640\n-panorama/styles/csgostyles.vcss_c CRC:00e65b9071 size:140980\n+panorama/styles/csgostyles.vcss_c CRC:00648e9898 size:141065\n panorama/styles/endofmatch-characters.vcss_c CRC:00f1512a79 size:12991\n panorama/styles/endofmatch-rank.vcss_c CRC:007f9b5891 size:27455\n panorama/styles/endofmatch-skillgroup.vcss_c CRC:0094f322fb size:42794\n@@ -75326,7 +75338,7 @@ panorama/styles/hud/hudhealthammocenter.vcss_c CRC:0053472291 size:60395\n panorama/styles/hud/hudhealthbars.vcss_c CRC:009832d66a size:2823\n panorama/styles/hud/hudhinttext.vcss_c CRC:001e323e5d size:8027\n panorama/styles/hud/hudinstructor.vcss_c CRC:005bb43682 size:14884\n-panorama/styles/hud/hudlegend.vcss_c CRC:004f46dfdb size:3361\n+panorama/styles/hud/hudlegend.vcss_c CRC:005d376e3f size:3598\n panorama/styles/hud/hudmissionpanel.vcss_c CRC:003b5e90e4 size:2919\n panorama/styles/hud/hudmissions.vcss_c CRC:0040c54b11 size:8588\n panorama/styles/hud/hudmoney.vcss_c CRC:00ac998d35 size:9921\n@@ -75349,7 +75361,7 @@ panorama/styles/hud/hudwinpanel_roundimpactscore.vcss_c CRC:00df7f4b81 size:2383\n panorama/styles/intromovie.vcss_c CRC:00e4058a02 size:1664\n panorama/styles/inventory_item_list.vcss_c CRC:0020f12f6a size:3380\n panorama/styles/itempreview.vcss_c CRC:0068af61f9 size:13404\n-panorama/styles/itemtile.vcss_c CRC:00c711e463 size:24130\n+panorama/styles/itemtile.vcss_c CRC:002cee87fd size:24423\n panorama/styles/itemtile_store.vcss_c CRC:0097679f42 size:34522\n panorama/styles/itemwheels.vcss_c CRC:00bbdb6c8d size:6018\n panorama/styles/leaderboard.vcss_c CRC:002abd6197 size:11792\n@@ -75367,7 +75379,7 @@ panorama/styles/mainmenu_overwatch.vcss_c CRC:009851e4aa size:3819\n panorama/styles/mainmenu_play.vcss_c CRC:00be993f93 size:91244\n panorama/styles/mainmenu_right_column.vcss_c CRC:00cdf8c385 size:1823\n panorama/styles/mainmenu_store.vcss_c CRC:00ea69046e size:29453\n-panorama/styles/mainmenu_store_fullscreen.vcss_c CRC:0059b5db4f size:12533\n+panorama/styles/mainmenu_store_fullscreen.vcss_c CRC:006d8a4f75 size:12533\n panorama/styles/mainmenu_stream.vcss_c CRC:00912de6dd size:11699\n panorama/styles/mainmenu_tournaments.vcss_c CRC:0063c95aeb size:15273\n panorama/styles/mainmenu_watch.vcss_c CRC:00db416d79 size:30176\n@@ -75423,7 +75435,7 @@ panorama/styles/popups/popup_mainmenu_overwatch_verdict.vcss_c CRC:00011a1851 si\n panorama/styles/popups/popup_major_hub.vcss_c CRC:0031a28b8a size:50336\n panorama/styles/popups/popup_manager.vcss_c CRC:005ce65000 size:2586\n panorama/styles/popups/popup_news.vcss_c CRC:005582e04c size:4440\n-panorama/styles/popups/popup_offers_laptop_interface.vcss_c CRC:00692432c2 size:77917\n+panorama/styles/popups/popup_offers_laptop_interface.vcss_c CRC:00afc11d1e size:91840\n panorama/styles/popups/popup_operation_store.vcss_c CRC:00763fe508 size:32549\n panorama/styles/popups/popup_permissions_settings.vcss_c CRC:00cbcae24e size:3912\n panorama/styles/popups/popup_play_gamemodeflags.vcss_c CRC:00f945d0c5 size:1795\n@@ -75435,7 +75447,7 @@ panorama/styles/popups/popup_report_server.vcss_c CRC:006c4923e9 size:1231\n panorama/styles/popups/popup_season_stats.vcss_c CRC:0098d34aa1 size:43910\n panorama/styles/popups/popup_select_inventory_item.vcss_c CRC:0058d39711 size:2882\n panorama/styles/popups/popup_select_item_for_capability.vcss_c CRC:007633d61d size:3349\n-panorama/styles/popups/popup_subscription_upsell.vcss_c CRC:00b03a6359 size:9787\n+panorama/styles/popups/popup_subscription_upsell.vcss_c CRC:000947fe64 size:9787\n panorama/styles/popups/popup_tournament_controlroom.vcss_c CRC:006cc08c69 size:9219\n panorama/styles/popups/popup_tournament_journal.vcss_c CRC:004cf2c8e0 size:19223\n panorama/styles/popups/popup_tournament_pickban.vcss_c CRC:00ef3ddfe5 size:6156\n@@ -75475,7 +75487,7 @@ panorama/styles/teamintromenu.vcss_c CRC:003e31fda9 size:7373\n panorama/styles/teamselectmenu.vcss_c CRC:00f52d146a size:13880\n panorama/styles/tooltips/tooltip_custom_test.vcss_c CRC:00a6ddd111 size:1289\n panorama/styles/tooltips/tooltip_eventsched_team.vcss_c CRC:00b5271117 size:3554\n-panorama/styles/tooltips/tooltip_inventory_item.vcss_c CRC:000b700038 size:5712\n+panorama/styles/tooltips/tooltip_inventory_item.vcss_c CRC:006ad89197 size:5727\n panorama/styles/tooltips/tooltip_limited_item_variation.vcss_c CRC:00b7910a21 size:2585\n panorama/styles/tooltips/tooltip_mission.vcss_c CRC:00325187e2 size:3567\n panorama/styles/tooltips/tooltip_player_xp.vcss_c CRC:001ef0d6c7 size:5835\n@@ -78628,36 +78640,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702\n radial_quickinventory.txt CRC:005a0c1bf5 size:1080\n rebuy.txt CRC:008332da3a size:1688\n resource/clientscheme.res CRC:001b42ad42 size:14978\n-resource/csgo_brazilian.txt CRC:0023fc4773 size:4748290\n-resource/csgo_bulgarian.txt CRC:0075d8823f size:7275591\n-resource/csgo_czech.txt CRC:00adf88619 size:4822531\n-resource/csgo_danish.txt CRC:003f7156d9 size:4727904\n-resource/csgo_dutch.txt CRC:0019b56c9f size:4775931\n-resource/csgo_english.txt CRC:0088bf3aa3 size:4606011\n-resource/csgo_finnish.txt CRC:00d16bd403 size:4697660\n-resource/csgo_french.txt CRC:00f8317ead size:4965159\n-resource/csgo_german.txt CRC:004cb422d3 size:4904031\n-resource/csgo_greek.txt CRC:0020bf17cc size:6771286\n-resource/csgo_hungarian.txt CRC:00a9ed6d15 size:4808918\n-resource/csgo_indonesian.txt CRC:00d51e081e size:4460361\n-resource/csgo_italian.txt CRC:008c7311fc size:4890139\n-resource/csgo_japanese.txt CRC:009b43264e size:5025848\n-resource/csgo_koreana.txt CRC:0094ae07a7 size:4822017\n-resource/csgo_latam.txt CRC:0088605eef size:4901995\n-resource/csgo_norwegian.txt CRC:00155c7d7f size:4656283\n-resource/csgo_polish.txt CRC:00ea6940aa size:5042271\n-resource/csgo_portuguese.txt CRC:0006399b4f size:4797727\n-resource/csgo_romanian.txt CRC:0011ba6df7 size:4991821\n-resource/csgo_russian.txt CRC:009cc7b664 size:6234936\n-resource/csgo_schinese.txt CRC:00d0741e1a size:4648471\n+resource/csgo_brazilian.txt CRC:00e1e08c9e size:4748376\n+resource/csgo_bulgarian.txt CRC:009cc9afd5 size:7275591\n+resource/csgo_czech.txt CRC:007198c971 size:4822648\n+resource/csgo_danish.txt CRC:00d6607b33 size:4727904\n+resource/csgo_dutch.txt CRC:0057a9928e size:4776061\n+resource/csgo_english.txt CRC:0084ad8149 size:4609994\n+resource/csgo_finnish.txt CRC:007c3cf532 size:4697672\n+resource/csgo_french.txt CRC:0062e4496a size:4965273\n+resource/csgo_german.txt CRC:00113e2eaf size:4904165\n+resource/csgo_greek.txt CRC:00706656a2 size:6772283\n+resource/csgo_hungarian.txt CRC:009456f1ef size:4809022\n+resource/csgo_indonesian.txt CRC:003c0f25f4 size:4460361\n+resource/csgo_italian.txt CRC:007a6510c2 size:4890267\n+resource/csgo_japanese.txt CRC:0067fc86c3 size:5025988\n+resource/csgo_koreana.txt CRC:007dbf2a4d size:4822017\n+resource/csgo_latam.txt CRC:0061717305 size:4901995\n+resource/csgo_norwegian.txt CRC:00dfe40714 size:4656386\n+resource/csgo_polish.txt CRC:0003786d40 size:5042271\n+resource/csgo_portuguese.txt CRC:00aa707a2a size:4797837\n+resource/csgo_romanian.txt CRC:00f8ab401d size:4991821\n+resource/csgo_russian.txt CRC:00bb6e0ee6 size:6234932\n+resource/csgo_schinese.txt CRC:004f0bd142 size:4648551\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n-resource/csgo_spanish.txt CRC:00bc293312 size:4864560\n-resource/csgo_swedish.txt CRC:002feba8e7 size:4757235\n-resource/csgo_tchinese.txt CRC:0000e58d24 size:4374355\n-resource/csgo_thai.txt CRC:00dc403825 size:7703548\n-resource/csgo_turkish.txt CRC:00caac9851 size:4878951\n-resource/csgo_ukrainian.txt CRC:00fc78b542 size:6275298\n-resource/csgo_vietnamese.txt CRC:00ba1e7b5b size:5151447\n+resource/csgo_spanish.txt CRC:0055381ef8 size:4864560\n+resource/csgo_swedish.txt CRC:00c6fa850d size:4757235\n+resource/csgo_tchinese.txt CRC:00e9f4a0ce size:4374355\n+resource/csgo_thai.txt CRC:00355115cf size:7703548\n+resource/csgo_turkish.txt CRC:0023bdb5bb size:4878951\n+resource/csgo_ukrainian.txt CRC:00156998a8 size:6275298\n+resource/csgo_vietnamese.txt CRC:00c843d412 size:5151569\n resource/game.gameevents CRC:0090de10bc size:9837\n resource/halflife2.vfont CRC:00b064848c size:58000\n resource/mod.gameevents CRC:008dcbd0da size:20719"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_inferno_camera_nodes.kv3",
          "status": "modified",
          "additions": 169,
          "deletions": 247,
          "changes": 416,
          "patch": "@@ -121,30 +121,22 @@\n \t\t\tposition = [ 311.241699, -132.323853, 174.03125 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t7, 8, 11, 13,\n-\t\t\t\t16, 29, 31, 38,\n-\t\t\t\t39, 40, 45, 46,\n+\t\t\t\t7, 8, 11, 16,\n+\t\t\t\t31, 38, 39, 40,\n+\t\t\t\t45, 46,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t1086.178345, 1301.82373, 690.042786, 329.274353,\n-\t\t\t\t695.1474, 532.103882, 579.939514, 308.2229,\n-\t\t\t\t122.681633, 626.983521, 623.213013, 765.202393,\n+\t\t\t\t1086.178345, 1301.82373, 690.042786, 695.1474,\n+\t\t\t\t579.939514, 308.2229, 122.681633, 626.983521,\n+\t\t\t\t623.213013, 765.202393,\n \t\t\t]\n \t\t},\n \t\t{\n \t\t\tindex = 13\n \t\t\tposition = [ 308.279541, -461.287109, 160.03125 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t12, 14, 15, 29,\n-\t\t\t\t39,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t329.274353, 409.650757, 689.523193, 203.978989,\n-\t\t\t\t444.017639,\n-\t\t\t]\n+\t\t\tneighbor_indices = [ 14, 15, 29 ]\n+\t\t\tneighbor_distances = [ 409.650757, 689.523193, 203.978989 ]\n \t\t},\n \t\t{\n \t\t\tindex = 14\n@@ -253,7 +245,7 @@\n \t\t{\n \t\t\tindex = 26\n \t\t\tposition = [ -418.636475, 834.720764, 44.423691 ]\n-\t\t\tneighbor_indices = [ 24, 25, 100 ]\n+\t\t\tneighbor_indices = [ 24, 25, 97 ]\n \t\t\tneighbor_distances = [ 390.905548, 469.860352, 518.716675 ]\n \t\t},\n \t\t{\n@@ -271,16 +263,8 @@\n \t\t{\n \t\t\tindex = 29\n \t\t\tposition = [ 332.555756, -663.816345, 160.03125 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t12, 13, 30, 39,\n-\t\t\t\t41,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t532.103882, 203.978989, 564.383484, 646.891418,\n-\t\t\t\t890.295166,\n-\t\t\t]\n+\t\t\tneighbor_indices = [ 13, 30, 41 ]\n+\t\t\tneighbor_distances = [ 203.978989, 564.383484, 890.295166 ]\n \t\t},\n \t\t{\n \t\t\tindex = 30\n@@ -332,7 +316,7 @@\n \t\t\tneighbor_indices = \n \t\t\t[\n \t\t\t\t30, 32, 34, 40,\n-\t\t\t\t45, 56,\n+\t\t\t\t45, 53,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -345,8 +329,8 @@\n \t\t\tposition = [ 88.798279, 572.491272, 145.600037 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t33, 35, 56, 99,\n-\t\t\t\t100,\n+\t\t\t\t33, 35, 53, 96,\n+\t\t\t\t97,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -383,13 +367,13 @@\n \t\t\tposition = [ 302.132507, -18.360901, 129.53125 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t12, 13, 29, 31,\n-\t\t\t\t38, 45, 46,\n+\t\t\t\t12, 31, 38, 45,\n+\t\t\t\t46,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t122.681633, 444.017639, 646.891418, 600.468994,\n-\t\t\t\t185.735672, 652.46521, 791.010681,\n+\t\t\t\t122.681633, 600.468994, 185.735672, 652.46521,\n+\t\t\t\t791.010681,\n \t\t\t]\n \t\t},\n \t\t{\n@@ -465,7 +449,7 @@\n \t\t{\n \t\t\tindex = 47\n \t\t\tposition = [ 1210.917114, 324.067566, 192.03125 ]\n-\t\t\tneighbor_indices = [ 43, 55 ]\n+\t\t\tneighbor_indices = [ 43, 52 ]\n \t\t\tneighbor_distances = [ 353.575897, 217.847565 ]\n \t\t},\n \t\t{\n@@ -477,88 +461,36 @@\n \t\t{\n \t\t\tindex = 49\n \t\t\tposition = [ 1871.0625, -209.842407, 324.03125 ]\n-\t\t\tneighbor_indices = [ 48, 50, 53 ]\n-\t\t\tneighbor_distances = [ 100.826866, 129.134552, 704.939209 ]\n+\t\t\tneighbor_indices = [ 48, 50, 98 ]\n+\t\t\tneighbor_distances = [ 100.826866, 129.134552, 467.371552 ]\n \t\t},\n \t\t{\n \t\t\tindex = 50\n \t\t\tposition = [ 1999.14624, -193.895996, 320.03125 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t49, 51, 52, 53,\n-\t\t\t\t54, 59, 63, 66,\n+\t\t\t\t49, 51, 56, 60,\n+\t\t\t\t63, 98,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t129.134552, 519.867676, 883.385376, 583.126343,\n-\t\t\t\t322.097015, 292.486237, 763.370911, 1364.750854,\n+\t\t\t\t129.134552, 519.867676, 292.486237, 763.370911,\n+\t\t\t\t1364.750854, 347.626465,\n \t\t\t]\n \t\t},\n \t\t{\n \t\t\tindex = 51\n \t\t\tposition = [ 2450.516846, -392.543091, 155.512817 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t50, 53, 54, 59,\n-\t\t\t\t60,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t519.867676, 495.143005, 386.085785, 654.620239,\n-\t\t\t\t921.596863,\n-\t\t\t]\n+\t\t\tneighbor_indices = [ 50, 56, 57, 98 ]\n+\t\t\tneighbor_distances = [ 519.867676, 654.620239, 921.596863, 410.778381 ]\n \t\t},\n \t\t{\n \t\t\tindex = 52\n-\t\t\tposition = [ 2539.721924, 503.633636, 280.03125 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t50, 53, 54, 60,\n-\t\t\t\t61, 62, 63, 64,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t883.385376, 421.748413, 642.15094, 687.738708,\n-\t\t\t\t693.082886, 687.18512, 510.858826, 279.666138,\n-\t\t\t]\n-\t\t},\n-\t\t{\n-\t\t\tindex = 53\n-\t\t\tposition = [ 2510.843506, 82.875084, 280.03125 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t49, 50, 51, 52,\n-\t\t\t\t57, 58, 59, 62,\n-\t\t\t\t63, 64, 65, 66,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t704.939209, 583.126343, 495.143005, 421.748413,\n-\t\t\t\t1106.987305, 1058.822754, 532.339111, 848.866516,\n-\t\t\t\t677.713684, 494.555908, 837.42511, 1066.483887,\n-\t\t\t]\n-\t\t},\n-\t\t{\n-\t\t\tindex = 54\n-\t\t\tposition = [ 2253.296875, -61.108215, 173.329681 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t50, 51, 52, 59,\n-\t\t\t\t60, 64, 65, 66,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t322.097015, 386.085785, 642.15094, 296.882202,\n-\t\t\t\t541.901428, 570.581116, 953.308899, 1194.774902,\n-\t\t\t]\n-\t\t},\n-\t\t{\n-\t\t\tindex = 55\n \t\t\tposition = [ 1428.640747, 316.720642, 192.03125 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t47, 56, 57, 58,\n-\t\t\t\t68, 70,\n+\t\t\t\t47, 53, 54, 55,\n+\t\t\t\t65, 67,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -567,12 +499,12 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 56\n+\t\t\tindex = 53\n \t\t\tposition = [ 1404.627441, 503.946686, 182.916641 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t33, 34, 55, 57,\n-\t\t\t\t58, 68, 70,\n+\t\t\t\t33, 34, 52, 54,\n+\t\t\t\t55, 65, 67,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -581,138 +513,112 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 57\n+\t\t\tindex = 54\n \t\t\tposition = [ 1416.319702, -59.89209, 196.03125 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t53, 55, 56, 58,\n-\t\t\t\t59, 68, 70,\n+\t\t\t\t52, 53, 55, 56,\n+\t\t\t\t65, 67, 98,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t1106.987305, 376.83548, 564.112427, 146.355545,\n-\t\t\t\t584.221619, 1172.09668, 839.099609,\n+\t\t\t\t376.83548, 564.112427, 146.355545, 584.221619,\n+\t\t\t\t1172.09668, 839.099609, 876.825256,\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 58\n+\t\t\tindex = 55\n \t\t\tposition = [ 1455.359375, 81.160568, 196.03125 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t53, 55, 56, 57,\n-\t\t\t\t59, 68, 70,\n+\t\t\t\t52, 53, 54, 56,\n+\t\t\t\t65, 67, 98,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t1058.822754, 237.104263, 426.020935, 146.355545,\n-\t\t\t\t531.226562, 1030.251221, 705.117493,\n+\t\t\t\t237.104263, 426.020935, 146.355545, 531.226562,\n+\t\t\t\t1030.251221, 705.117493, 843.58136,\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 59\n+\t\t\tindex = 56\n \t\t\tposition = [ 1986.384033, 67.801132, 190.031525 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t50, 51, 53, 54,\n-\t\t\t\t57, 58, 60, 61,\n+\t\t\t\t50, 51, 54, 55,\n+\t\t\t\t57, 58, 98,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t292.486237, 654.620239, 532.339111, 296.882202,\n-\t\t\t\t584.221619, 531.226562, 282.3396, 424.884644,\n+\t\t\t\t292.486237, 654.620239, 584.221619, 531.226562,\n+\t\t\t\t282.3396, 424.884644, 322.127777,\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 60\n+\t\t\tindex = 57\n \t\t\tposition = [ 1877.60437, 325.982605, 225.031219 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t51, 52, 54, 59,\n-\t\t\t\t61,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t921.596863, 687.738708, 541.901428, 282.3396,\n-\t\t\t\t145.416321,\n-\t\t\t]\n+\t\t\tneighbor_indices = [ 51, 56, 58, 98 ]\n+\t\t\tneighbor_distances = [ 921.596863, 282.3396, 145.416321, 541.68158 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 61\n+\t\t\tindex = 58\n \t\t\tposition = [ 1849.803467, 468.711761, 223.845337 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t52, 59, 60, 63,\n-\t\t\t\t64,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t693.082886, 424.884644, 145.416321, 207.943497,\n-\t\t\t\t423.438141,\n-\t\t\t]\n+\t\t\tneighbor_indices = [ 56, 57, 60, 61 ]\n+\t\t\tneighbor_distances = [ 424.884644, 145.416321, 207.943497, 423.438141 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 62\n+\t\t\tindex = 59\n \t\t\tposition = [ 1867.260376, 633.540039, 223.966995 ]\n-\t\t\tneighbor_indices = [ 52, 53, 63, 64 ]\n-\t\t\tneighbor_distances = [ 687.18512, 848.866516, 182.485901, 423.068024 ]\n+\t\t\tneighbor_indices = [ 60, 61 ]\n+\t\t\tneighbor_distances = [ 182.485901, 423.068024 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 63\n+\t\t\tindex = 60\n \t\t\tposition = [ 2035.370972, 562.547607, 224.03125 ]\n-\t\t\tneighbor_indices = \n-\t\t\t[\n-\t\t\t\t50, 52, 53, 61,\n-\t\t\t\t62, 64,\n-\t\t\t]\n-\t\t\tneighbor_distances = \n-\t\t\t[\n-\t\t\t\t763.370911, 510.858826, 677.713684, 207.943497,\n-\t\t\t\t182.485901, 242.536301,\n-\t\t\t]\n+\t\t\tneighbor_indices = [ 50, 58, 59, 61 ]\n+\t\t\tneighbor_distances = [ 763.370911, 207.943497, 182.485901, 242.536301 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 64\n+\t\t\tindex = 61\n \t\t\tposition = [ 2270.868164, 508.421173, 203.168411 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t52, 53, 54, 61,\n-\t\t\t\t62, 63, 65, 66,\n+\t\t\t\t58, 59, 60, 62,\n+\t\t\t\t63, 98,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t279.666138, 494.555908, 570.581116, 423.438141,\n-\t\t\t\t423.068024, 242.536301, 382.968323, 624.471008,\n+\t\t\t\t423.438141, 423.068024, 242.536301, 382.968323,\n+\t\t\t\t624.471008, 533.471924,\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 65\n+\t\t\tindex = 62\n \t\t\tposition = [ 2298.17334, 890.231323, 215.007751 ]\n-\t\t\tneighbor_indices = [ 53, 54, 64, 66 ]\n-\t\t\tneighbor_distances = [ 837.42511, 953.308899, 382.968323, 241.64003 ]\n+\t\t\tneighbor_indices = [ 61, 63, 98 ]\n+\t\t\tneighbor_distances = [ 382.968323, 241.64003, 913.990601 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 66\n+\t\t\tindex = 63\n \t\t\tposition = [ 2316.81958, 1130.495605, 232.764313 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t50, 53, 54, 64,\n-\t\t\t\t65, 67, 68, 69,\n-\t\t\t\t73,\n+\t\t\t\t50, 61, 62, 64,\n+\t\t\t\t65, 66, 70, 98,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n-\t\t\t\t1364.750854, 1066.483887, 1194.774902, 624.471008,\n-\t\t\t\t241.64003, 491.781677, 855.768188, 962.416809,\n-\t\t\t\t266.825867,\n+\t\t\t\t1364.750854, 624.471008, 241.64003, 491.781677,\n+\t\t\t\t855.768188, 962.416809, 266.825867, 1154.195068,\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 67\n+\t\t\tindex = 64\n \t\t\tposition = [ 1825.131104, 1131.1875, 223.21579 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t66, 68, 69, 71,\n-\t\t\t\t72, 73,\n+\t\t\t\t63, 65, 66, 68,\n+\t\t\t\t69, 70,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -721,12 +627,12 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 68\n+\t\t\tindex = 65\n \t\t\tposition = [ 1461.299316, 1110.950928, 226.264328 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t55, 56, 57, 58,\n-\t\t\t\t66, 67, 69, 73,\n+\t\t\t\t52, 53, 54, 55,\n+\t\t\t\t63, 64, 66, 70,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -735,36 +641,36 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 69\n+\t\t\tindex = 66\n \t\t\tposition = [ 1357.364746, 1204.940308, 245.03125 ]\n-\t\t\tneighbor_indices = [ 66, 67, 68, 73 ]\n+\t\t\tneighbor_indices = [ 63, 64, 65, 70 ]\n \t\t\tneighbor_distances = [ 962.416809, 474.047211, 141.381027, 1229.175171 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 70\n+\t\t\tindex = 67\n \t\t\tposition = [ 1326.353638, 774.34198, 202.942108 ]\n-\t\t\tneighbor_indices = [ 55, 56, 57, 58 ]\n+\t\t\tneighbor_indices = [ 52, 53, 54, 55 ]\n \t\t\tneighbor_distances = [ 469.040497, 282.20813, 839.099609, 705.117493 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 71\n+\t\t\tindex = 68\n \t\t\tposition = [ 1814.21936, 1418.572876, 224.03125 ]\n-\t\t\tneighbor_indices = [ 67, 72 ]\n+\t\t\tneighbor_indices = [ 64, 69 ]\n \t\t\tneighbor_distances = [ 287.593597, 196.964035 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 72\n+\t\t\tindex = 69\n \t\t\tposition = [ 1815.792236, 1615.53064, 224.03125 ]\n-\t\t\tneighbor_indices = [ 67, 71, 76, 77 ]\n+\t\t\tneighbor_indices = [ 64, 68, 73, 74 ]\n \t\t\tneighbor_distances = [ 484.433868, 196.964035, 546.268677, 302.950684 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 73\n+\t\t\tindex = 70\n \t\t\tposition = [ 2582.730957, 1110.871948, 222.659943 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t66, 67, 68, 69,\n-\t\t\t\t74,\n+\t\t\t\t63, 64, 65, 66,\n+\t\t\t\t71,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -773,24 +679,24 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 74\n+\t\t\tindex = 71\n \t\t\tposition = [ 2547.617676, 1431.656128, 222.814148 ]\n-\t\t\tneighbor_indices = [ 73, 75 ]\n+\t\t\tneighbor_indices = [ 70, 72 ]\n \t\t\tneighbor_distances = [ 322.700256, 219.384888 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 75\n+\t\t\tindex = 72\n \t\t\tposition = [ 2328.59668, 1419.039307, 223.408051 ]\n-\t\t\tneighbor_indices = [ 74, 76, 78 ]\n+\t\t\tneighbor_indices = [ 71, 73, 75 ]\n \t\t\tneighbor_distances = [ 219.384888, 312.343964, 833.161194 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 76\n+\t\t\tindex = 73\n \t\t\tposition = [ 2349.783936, 1730.655151, 221.083496 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t72, 75, 77, 78,\n-\t\t\t\t79,\n+\t\t\t\t69, 72, 74, 75,\n+\t\t\t\t76,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -799,24 +705,24 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 77\n+\t\t\tindex = 74\n \t\t\tposition = [ 1650.452393, 1869.384644, 224.03125 ]\n-\t\t\tneighbor_indices = [ 72, 76, 80, 81 ]\n+\t\t\tneighbor_indices = [ 69, 73, 77, 78 ]\n \t\t\tneighbor_distances = [ 302.950684, 712.965027, 683.049316, 957.520996 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 78\n+\t\t\tindex = 75\n \t\t\tposition = [ 2378.969727, 2250.224609, 196.001816 ]\n-\t\t\tneighbor_indices = [ 75, 76, 79, 80 ]\n+\t\t\tneighbor_indices = [ 72, 73, 76, 77 ]\n \t\t\tneighbor_distances = [ 833.161194, 520.992615, 606.499817, 796.837952 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 79\n+\t\t\tindex = 76\n \t\t\tposition = [ 2095.689453, 2786.443604, 188.031845 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t76, 78, 80, 81,\n-\t\t\t\t82, 93, 94,\n+\t\t\t\t73, 75, 77, 78,\n+\t\t\t\t79, 90, 91,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -825,18 +731,18 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 80\n+\t\t\tindex = 77\n \t\t\tposition = [ 1642.176025, 2552.383789, 224.03125 ]\n-\t\t\tneighbor_indices = [ 77, 78, 79, 81 ]\n+\t\t\tneighbor_indices = [ 74, 75, 76, 78 ]\n \t\t\tneighbor_distances = [ 683.049316, 796.837952, 511.619354, 276.405975 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 81\n+\t\t\tindex = 78\n \t\t\tposition = [ 1624.819336, 2825.885254, 188.03186 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t77, 79, 80, 82,\n-\t\t\t\t91, 92, 93, 94,\n+\t\t\t\t74, 76, 77, 79,\n+\t\t\t\t88, 89, 90, 91,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -845,12 +751,12 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 82\n+\t\t\tindex = 79\n \t\t\tposition = [ 1287.398193, 2769.861084, 188.031647 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t79, 81, 83, 91,\n-\t\t\t\t92, 93, 94,\n+\t\t\t\t76, 78, 80, 88,\n+\t\t\t\t89, 90, 91,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -859,42 +765,42 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 83\n+\t\t\tindex = 80\n \t\t\tposition = [ 1205.759644, 3162.39502, 192.03125 ]\n-\t\t\tneighbor_indices = [ 82, 84, 85 ]\n+\t\t\tneighbor_indices = [ 79, 81, 82 ]\n \t\t\tneighbor_distances = [ 400.953552, 501.320496, 273.816895 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 84\n+\t\t\tindex = 81\n \t\t\tposition = [ 706.178711, 3135.615967, 224.03125 ]\n-\t\t\tneighbor_indices = [ 83, 85 ]\n+\t\t\tneighbor_indices = [ 80, 82 ]\n \t\t\tneighbor_distances = [ 501.320496, 293.109192 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 85\n+\t\t\tindex = 82\n \t\t\tposition = [ 958.830322, 3280.723389, 192.03125 ]\n-\t\t\tneighbor_indices = [ 83, 84, 86 ]\n+\t\t\tneighbor_indices = [ 80, 81, 83 ]\n \t\t\tneighbor_distances = [ 273.816895, 293.109192, 175.318375 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 86\n+\t\t\tindex = 83\n \t\t\tposition = [ 888.56427, 3441.344727, 192.03125 ]\n-\t\t\tneighbor_indices = [ 85, 87 ]\n+\t\t\tneighbor_indices = [ 82, 84 ]\n \t\t\tneighbor_distances = [ 175.318375, 406.769318 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 87\n+\t\t\tindex = 84\n \t\t\tposition = [ 483.980988, 3414.273682, 224.292755 ]\n-\t\t\tneighbor_indices = [ 86, 88, 91 ]\n+\t\t\tneighbor_indices = [ 83, 85, 88 ]\n \t\t\tneighbor_distances = [ 406.769318, 371.776611, 900.999268 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 88\n+\t\t\tindex = 85\n \t\t\tposition = [ 421.603851, 3047.767334, 224.470932 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t87, 89, 90, 91,\n-\t\t\t\t93, 94,\n+\t\t\t\t84, 86, 87, 88,\n+\t\t\t\t90, 91,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -903,24 +809,24 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 89\n+\t\t\tindex = 86\n \t\t\tposition = [ 54.096111, 3020.855713, 224.84166 ]\n-\t\t\tneighbor_indices = [ 88, 90, 92, 94 ]\n+\t\t\tneighbor_indices = [ 85, 87, 89, 91 ]\n \t\t\tneighbor_distances = [ 368.491974, 366.352814, 521.951721, 778.602539 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 90\n+\t\t\tindex = 87\n \t\t\tposition = [ 28.755611, 2655.380371, 225.03125 ]\n-\t\t\tneighbor_indices = [ 88, 89, 92 ]\n+\t\t\tneighbor_indices = [ 85, 86, 89 ]\n \t\t\tneighbor_distances = [ 555.245483, 366.352814, 157.659409 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 91\n+\t\t\tindex = 88\n \t\t\tposition = [ 232.309586, 2549.137695, 225.271027 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t81, 82, 87, 88,\n-\t\t\t\t92, 93, 94,\n+\t\t\t\t78, 79, 84, 85,\n+\t\t\t\t89, 90, 91,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -929,12 +835,12 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 92\n+\t\t\tindex = 89\n \t\t\tposition = [ 48.293636, 2498.936279, 225.03125 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t81, 82, 89, 90,\n-\t\t\t\t91, 93, 94,\n+\t\t\t\t78, 79, 86, 87,\n+\t\t\t\t88, 90, 91,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -943,12 +849,12 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 93\n+\t\t\tindex = 90\n \t\t\tposition = [ 523.625244, 2684.044678, 225.531235 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t79, 81, 82, 88,\n-\t\t\t\t91, 92, 94,\n+\t\t\t\t76, 78, 79, 85,\n+\t\t\t\t88, 89, 91,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -957,13 +863,13 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 94\n+\t\t\tindex = 91\n \t\t\tposition = [ 764.373718, 2702.874512, 200.031036 ]\n \t\t\tneighbor_indices = \n \t\t\t[\n-\t\t\t\t79, 81, 82, 88,\n-\t\t\t\t89, 91, 92, 93,\n-\t\t\t\t95,\n+\t\t\t\t76, 78, 79, 85,\n+\t\t\t\t86, 88, 89, 90,\n+\t\t\t\t92,\n \t\t\t]\n \t\t\tneighbor_distances = \n \t\t\t[\n@@ -973,40 +879,56 @@\n \t\t\t]\n \t\t},\n \t\t{\n-\t\t\tindex = 95\n+\t\t\tindex = 92\n \t\t\tposition = [ 781.539978, 2046.294922, 200.031281 ]\n-\t\t\tneighbor_indices = [ 94, 96, 97, 98 ]\n+\t\t\tneighbor_indices = [ 91, 93, 94, 95 ]\n \t\t\tneighbor_distances = [ 656.803955, 322.249695, 292.622131, 476.253235 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 96\n+\t\t\tindex = 93\n \t\t\tposition = [ 465.112518, 2107.13623, 204.139343 ]\n-\t\t\tneighbor_indices = [ 95, 97 ]\n+\t\t\tneighbor_indices = [ 92, 94 ]\n \t\t\tneighbor_distances = [ 322.249695, 179.225845 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 97\n+\t\t\tindex = 94\n \t\t\tposition = [ 511.315369, 1934.016846, 200.03125 ]\n-\t\t\tneighbor_indices = [ 95, 96, 98 ]\n+\t\t\tneighbor_indices = [ 92, 93, 95 ]\n \t\t\tneighbor_distances = [ 292.622131, 179.225845, 187.609421 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 98\n+\t\t\tindex = 95\n \t\t\tposition = [ 325.283081, 1909.741699, 200.031219 ]\n-\t\t\tneighbor_indices = [ 95, 97, 99, 100 ]\n+\t\t\tneighbor_indices = [ 92, 94, 96, 97 ]\n \t\t\tneighbor_distances = [ 476.253235, 187.609421, 553.370789, 1086.194458 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 99\n+\t\t\tindex = 96\n \t\t\tposition = [ 147.783493, 1386.962646, 162.412354 ]\n-\t\t\tneighbor_indices = [ 34, 98, 100 ]\n+\t\t\tneighbor_indices = [ 34, 95, 97 ]\n \t\t\tneighbor_distances = [ 816.777527, 553.370789, 539.584778 ]\n \t\t},\n \t\t{\n-\t\t\tindex = 100\n+\t\t\tindex = 97\n \t\t\tposition = [ 90.173409, 850.7771, 144.03125 ]\n-\t\t\tneighbor_indices = [ 26, 34, 98, 99 ]\n+\t\t\tneighbor_indices = [ 26, 34, 95, 96 ]\n \t\t\tneighbor_distances = [ 518.716675, 278.29364, 1086.194458, 539.584778 ]\n \t\t},\n+\t\t{\n+\t\t\tindex = 98\n+\t\t\tposition = [ 2291.287842, -23.395325, 239.8629 ]\n+\t\t\tneighbor_indices = \n+\t\t\t[\n+\t\t\t\t49, 50, 51, 54,\n+\t\t\t\t55, 56, 57, 61,\n+\t\t\t\t62, 63,\n+\t\t\t]\n+\t\t\tneighbor_distances = \n+\t\t\t[\n+\t\t\t\t467.371552, 347.626465, 410.778381, 876.825256,\n+\t\t\t\t843.58136, 322.127777, 541.68158, 533.471924,\n+\t\t\t\t913.990601, 1154.195068,\n+\t\t\t]\n+\t\t},\n \t]\n }\n\\ No newline at end of file"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/layout/itemtile.xml",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -22,7 +22,7 @@\n \t\t<Label id=\"JsCanRentItem\" html=\"true\" class=\"item-tile__rental-expiration stratum-regular-italic can-rent\" text=\"#item-rental-time-remaining\" />\n \t\t<Panel class=\"item-tile__rarity\" id=\"JsRarity\" />\n \t\t<Panel class=\"item-tile__top-left-down\">\n-\t\t\t<Label class=\"item-tile__recent hidden\" id=\"JsRecent\" text=\"#inv_session_prop_recent\" />\n+\t\t\t<Label class=\"item-tile__recent hidden\" html=\"true\" id=\"JsRecent\" text=\"#inv_session_prop_recent\" />\n \t\t\t<Image id=\"JsOriginalOwner\" class=\"item-tile__original-owner hidden\" texturewidth=\"24\" textureheight=\"24\" src=\"s2r://panorama/images/icons/icon_original_owner.vsvg\" />\n \t\t</Panel>\n \t\t<Panel class=\"item-tile__equipped\">"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/layout/popups/popup_inspect_async-bar.xml",
          "status": "modified",
          "additions": 3,
          "deletions": 2,
          "changes": 5,
          "patch": "@@ -10,7 +10,7 @@\n \t<Panel class=\"popup-capability__button-row\" useglobalcontext=\"true\">\n \t\t<Panel class=\"left-right-flow horizontal-align-right\">\n \t\t\t<ItemImage id=\"AsyncItemWorkDescImage\" class=\"popup-capability__purchase__image\" scaling=\"stretch-to-fit-x-preserve-aspect\" />\n-\t\t\t<Label id=\"AsyncItemWorkDesc\" html=\"true\" class=\"popup-capability__purchase__text stratum-font\" text=\"\" />\n+\t\t\t<Label id=\"AsyncItemWorkDesc\" html=\"true\" hittest=\"false\" class=\"popup-capability__purchase__text stratum-font\" text=\"\" />\n \t\t\t<Panel id=\"NameableSpinner\" class=\"Spinner vertical-center horizontal-center hidden\" />\n \t\t\t<Panel class=\"spacer\" />\n \t\t\t<TextButton id=\"AsyncItemWorkAcceptNegativeHold\" class=\"PopupButtonTimer Negative AsyncItemWorkAcceptNegativeHidden\" html=\"true\" text=\"{s:action-label}\">\n@@ -23,7 +23,8 @@\n \t\t\t<TextButton id=\"AsyncItemWorkAcceptConfirm\" html=\"true\" class=\"PopupButton\" text=\"#SFUI_Accept\" />\n \t\t\t<TextButton id=\"AsyncItemWorkCancelBtn\" html=\"true\" class=\"PopupButton\" text=\"#GameUI_Close\" />\n \t\t</Panel>\n-\t\t<Panel class=\"left-right-flow horizontal-align-left\" defaultfocus=\"\">\n+\t\t<Panel class=\"left-right-flow horizontal-align-left full-height\" hittest=\"false\">\n+\t\t\t<DropDown class=\"PopupButton vertical-center horizontal-align-left\" id=\"AsyncOfferLimitDropdown\" menuclass=\"DropDownMenu hidden\" onmouseover=\"UiToolkitAPI.ShowTextTooltip( &apos;AsyncOfferLimitDropdown&apos;, &apos;#terminal_offer_limit_tooltip&apos; )\" onmouseout=\"UiToolkitAPI.HideTextTooltip();\" style=\"tooltip-position: right;\" />\n \t\t\t<Panel class=\"left-right-flow vertical-center hidden\">\n \t\t\t\t<RadioButton id=\"InspectWeaponBtn\" group=\"popup-inspect-view\" class=\"IconButton\" onmouseover=\"UiToolkitAPI.ShowTextTooltip( &apos;InspectWeaponBtn&apos;, &apos;#tooltip_inspect_weapon_model&apos; );\" onmouseout=\"UiToolkitAPI.HideTextTooltip();\">\n \t\t\t\t\t<Image class=\"\" textureheight=\"36\" texturewidth=\"36\" src=\"s2r://panorama/images/icons/equipment/p250.vsvg\" />"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/layout/popups/popup_offers_laptop_interface.xml",
          "status": "modified",
          "additions": 33,
          "deletions": 9,
          "changes": 42,
          "patch": "@@ -37,6 +37,16 @@\n \t\t\t\t<Panel id=\"id-message\" />\n \t\t\t</Panel>\n \t\t</snippet>\n+\t\t<snippet name=\"interaction-offer-limit-message\">\n+\t\t\t<Panel class=\"chat-message chat-message-interaction\">\n+\t\t\t\t<Panel id=\"id-interaction-list\" class=\"interaction-card\">\n+\t\t\t\t\t<Label class=\"interaction-card-desc stratum-regular\" text=\"#laptop_max_offer_tooltip\" />\n+\t\t\t\t</Panel>\n+\t\t\t</Panel>\n+\t\t</snippet>\n+\t\t<snippet name=\"radiobutton-limit\">\n+\t\t\t<RadioButton class=\"message-interaction__text-button\" text=\"Up to $50\" />\n+\t\t</snippet>\n \t\t<snippet name=\"system-message\">\n \t\t\t<Panel class=\"chat-message chat-message-system\">\n \t\t\t\t<Label id=\"id-chat-message-label\" class=\"chat-message__body stratum-regular\" text=\"\" />\n@@ -133,23 +143,27 @@\n \t\t\t\t\t\t</Panel>\n \t\t\t\t\t\t<Panel class=\"chat-messages-container\">\n \t\t\t\t\t\t\t<Panel id=\"id-chat-messages-bg\" class=\"chat-messages-bg\" />\n-\t\t\t\t\t\t\t<Image class=\"chat-messages-bg-icon\" textureheight=\"480\" texturewidth=\"-1\" src=\"s2r://panorama/images/icons/ui/arms_deal_icon.vsvg\" />\n \t\t\t\t\t\t\t<Panel id=\"id-chat-messages\" class=\"chat-messages\" />\n \t\t\t\t\t\t</Panel>\n-\t\t\t\t\t\t<Panel class=\"chat-user-responses\">\n+\t\t\t\t\t\t<Panel id=\"id-user-messages-parent\" class=\"chat-user-responses\">\n \t\t\t\t\t\t\t<Panel id=\"id-user-messages-container\" class=\"chat-user-responses__container\">\n-\t\t\t\t\t\t\t\t<Label html=\"true\" class=\"chat-user-responses__title stratum-regular\" text=\"{s:user-response-title}\" />\n+\t\t\t\t\t\t\t\t<Panel class=\"full-width bottom-margin left-margin-6 right-margin-6\">\n+\t\t\t\t\t\t\t\t\t<Panel class=\"left-right-flow horizontal-align-left\">\n+\t\t\t\t\t\t\t\t\t\t<Label html=\"true\" class=\"chat-user-responses__title stratum-regular\" text=\"{s:user-response-title}\" />\n+\t\t\t\t\t\t\t\t\t\t<Image id=\"id-price-tooltip\" class=\"user-response-price-tooltip\" textureheight=\"18\" texturewidth=\"-1\" src=\"s2r://panorama/images/icons/ui/info.vsvg\" />\n+\t\t\t\t\t\t\t\t\t</Panel>\n+\t\t\t\t\t\t\t\t\t<TextButton id=\"id-offer-limit-setting\" html=\"true\" class=\"chat-user-limit-offer-setting stratum-regular\" text=\"#offer_limit_setting_interface\" />\n+\t\t\t\t\t\t\t\t</Panel>\n \t\t\t\t\t\t\t\t<Panel class=\"full-width\">\n \t\t\t\t\t\t\t\t\t<Panel class=\"left-right-flow\">\n-\t\t\t\t\t\t\t\t\t\t<TextButton id=\"id-user-message-yes\" class=\"user-response-btn\" html=\"true\" text=\"#user_btn_accept\">\n+\t\t\t\t\t\t\t\t\t\t<TextButton id=\"id-user-message-yes\" class=\"user-response-btn positive\" html=\"true\" text=\"#user_btn_accept\">\n \t\t\t\t\t\t\t\t\t\t\t<Panel id=\"id-response-btn-timer\" class=\"user-response-btn__timer\" />\n \t\t\t\t\t\t\t\t\t\t</TextButton>\n-\t\t\t\t\t\t\t\t\t\t<Image id=\"id-price-tooltip\" class=\"user-response-price-tooltip\" textureheight=\"20\" texturewidth=\"-1\" src=\"s2r://panorama/images/icons/ui/info.vsvg\" />\n \t\t\t\t\t\t\t\t\t</Panel>\n-\t\t\t\t\t\t\t\t\t<TextButton id=\"id-user-message-no\" class=\"user-response-btn\" text=\"#user_btn_next\">\n+\t\t\t\t\t\t\t\t\t<TextButton id=\"id-user-message-no\" class=\"user-response-btn yellow\" text=\"#user_btn_next\">\n \t\t\t\t\t\t\t\t\t\t<Panel id=\"id-response-btn-timer\" class=\"user-response-btn__timer\" />\n \t\t\t\t\t\t\t\t\t</TextButton>\n-\t\t\t\t\t\t\t\t\t<TextButton id=\"id-user-message-end\" force-no-composition-layer=\"true\" class=\"user-response-btn\" text=\"#user_btn_end\">\n+\t\t\t\t\t\t\t\t\t<TextButton id=\"id-user-message-end\" force-no-composition-layer=\"true\" class=\"user-response-btn negative\" text=\"#user_btn_end\">\n \t\t\t\t\t\t\t\t\t\t<Panel id=\"id-response-btn-timer\" class=\"user-response-btn__timer\" />\n \t\t\t\t\t\t\t\t\t</TextButton>\n \t\t\t\t\t\t\t\t</Panel>\n@@ -227,15 +241,25 @@\n \t\t\t\t\t</Panel>\n \t\t\t\t</Panel>\n \t\t\t</Panel>\n-\t\t\t<Panel id=\"id-popup-lootlist\" class=\"popup-lootlist-container\">\n-\t\t\t\t<Button id=\"id-close-popup-lootlist\" class=\"full-width full-height\" />\n+\t\t\t<Panel id=\"id-popup-in-screen\" class=\"popup-laptop-container\">\n+\t\t\t\t<Button id=\"id-close-popup-in-screen\" class=\"full-width full-height\" />\n \t\t\t\t<Panel hittest=\"true\" class=\"popup-lootlist\" onactivate=\"\">\n \t\t\t\t\t<Panel class=\"window__title-bar\">\n \t\t\t\t\t\t<Label class=\"window__title-bar__title stratum-regular\" text=\"#popup_lootlist_title\" />\n \t\t\t\t\t</Panel>\n \t\t\t\t\t<Label class=\"popup-lootlist__desc stratum-regular\" text=\"#popup_lootlist_desc\" />\n \t\t\t\t\t<Panel id=\"id-offer-xp-lootlist\" class=\"popup-lootlist__list\" />\n \t\t\t\t</Panel>\n+\t\t\t\t<Panel hittest=\"true\" class=\"popup-offers-settings\" onactivate=\"\">\n+\t\t\t\t\t<Label class=\"popup-lootlist__desc stratum-regular\" text=\"#popup_offer_limit_desc\" />\n+\t\t\t\t\t<Panel class=\"popup-lootlist__list__section\">\n+\t\t\t\t\t\t<Image texturewidth=\"-1\" textureheight=\"8\" class=\"window__weapon-info__bracket top-right\" src=\"s2r://panorama/images/hud/bracket.vsvg\" />\n+\t\t\t\t\t\t<Image texturewidth=\"-1\" textureheight=\"8\" class=\"window__weapon-info__bracket bottom-right\" src=\"s2r://panorama/images/hud/bracket.vsvg\" />\n+\t\t\t\t\t\t<Image texturewidth=\"-1\" textureheight=\"8\" class=\"window__weapon-info__bracket top-left\" src=\"s2r://panorama/images/hud/bracket.vsvg\" />\n+\t\t\t\t\t\t<Image texturewidth=\"-1\" textureheight=\"8\" class=\"window__weapon-info__bracket bottom-left\" src=\"s2r://panorama/images/hud/bracket.vsvg\" />\n+\t\t\t\t\t\t<Panel id=\"id-offer-settings\" class=\"top-bottom-flow padding-8\" />\n+\t\t\t\t\t</Panel>\n+\t\t\t\t</Panel>\n \t\t\t</Panel>\n \t\t\t<Image class=\"laptop-broken-screen\" hittest=\"false\" src=\"s2r://panorama/images/backgrounds/broken_laptop_screen_psd.vtex\" onactivate=\"\" />\n \t\t\t<Image class=\"laptop-cracked-screen\" hittest=\"false\" src=\"s2r://panorama/images/backgrounds/cracked_laptop_screen_psd.vtex\" />"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/layout/tooltips/tooltip_inventory_item.xml",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -14,7 +14,7 @@\n \t\t\t<Panel class=\"NameCollection\">\n \t\t\t\t<Label class=\"name-label\" text=\"{s:name}\" />\n \t\t\t\t<Label id=\"jsCustomName\" class=\"custom-name-label\" text=\"{s:custom-name}\" />\n-\t\t\t\t<Label class=\"collection-label\" text=\"{s:collection}\" />\n+\t\t\t\t<Label class=\"collection-label collection-text-style\" text=\"{s:collection}\" />\n \t\t\t</Panel>\n \t\t</Panel>\n \t\t<Panel class=\"separator-top\" />\n@@ -37,7 +37,7 @@\n \t\t<Panel id=\"JsOriginalOwnerTooltipSeperator\" class=\"separator-bottom\" />\n \t\t<Panel id=\"JsOriginalOwnerTooltip\" class=\"original-owner-section\">\n \t\t\t<Image texturewidth=\"32\" textureheight=\"-1\" src=\"s2r://panorama/images/icons/icon_original_owner.vsvg\" />\n-\t\t\t<Label class=\"collection-label\" text=\"#Attrib_PurchaserAccountID\" />\n+\t\t\t<Label class=\"collection-text-style\" text=\"#Attrib_PurchaserAccountID\" />\n \t\t</Panel>\n \t\t<Panel class=\"separator-bottom\" />\n \t\t<Label class=\"desc-text\" html=\"true\" htmlescapednewlines=\"true\" text=\"{s:description}\" />"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/common/hold_button.js",
          "status": "modified",
          "additions": 3,
          "deletions": 1,
          "changes": 4,
          "patch": "@@ -31,7 +31,9 @@ var HoldButton;\n             return;\n         if ('tooltip' in settings && settings.tooltip !== '') {\n             settings.btn.SetPanelEvent('onmouseover', () => {\n-                UiToolkitAPI.ShowTextTooltipStyled(settings.btn.id, settings.tooltip, ('tooltipStyle' in settings) ? settings.tooltipStyle : '');\n+                if (settings.btn.enabled) {\n+                    UiToolkitAPI.ShowTextTooltipStyled(settings.btn.id, settings.tooltip, ('tooltipStyle' in settings) ? settings.tooltipStyle : '');\n+                }\n             });\n             settings.btn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });\n         }"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/common/item_context_entries.js",
          "status": "modified",
          "additions": 17,
          "deletions": 1,
          "changes": 18,
          "patch": "@@ -930,7 +930,23 @@ var ItemContextEntries;\n             OnSelected: (id) => {\n                 $.DispatchEvent('CSGOPlaySoundEffect', 'inventory_inspect_sellOnMarket', 'MOUSE');\n                 $.DispatchEvent('ContextMenuEvent', '');\n-                InventoryAPI.SellItem(id);\n+                InventoryAPI.MarketListingForItem(id, 'create');\n+            }\n+        },\n+        {\n+            name: 'marketlisting',\n+            style: (id) => 'TopSeparator',\n+            bActionIsRentalAware: true,\n+            AvailableForItem: (id) => {\n+                if (MyPersonaAPI.GetLauncherType() === 'perfectworld')\n+                    return false;\n+                let unProtectedEscrowValue = InventoryAPI.GetItemAttributeValue(id, '{uint32}trade protected escrow date');\n+                return ((unProtectedEscrowValue !== undefined) && (unProtectedEscrowValue == 0));\n+            },\n+            OnSelected: (id) => {\n+                $.DispatchEvent('CSGOPlaySoundEffect', 'inventory_inspect_sellOnMarket', 'MOUSE');\n+                $.DispatchEvent('ContextMenuEvent', '');\n+                InventoryAPI.MarketListingForItem(id, 'view');\n             }\n         },\n         {"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/hud/huddemocontroller.js",
          "status": "modified",
          "additions": 4,
          "deletions": 6,
          "changes": 10,
          "patch": "@@ -123,17 +123,15 @@ var HudDemoController;\n                 sFileName = sFileName.substring(nSlashIndex + 1);\n             cp.SetDialogVariable(\"total_time\", TicksToTimeText(state.nTotalTicks, state.nSecondsPerTick, false));\n             if (state?.bIsPlayingBroadcast) {\n+                hud.SetHasClass(\"DemoControllerHidden\", false);\n                 hud.SetHasClass(\"DemoControllerMinimal\", false);\n                 hud.SetHasClass(\"DemoControllerFull\", false);\n             }\n             else {\n                 let nUIMode = Number(GameInterfaceAPI.GetSettingString(\"demo_ui_mode\"));\n-                if (nUIMode == 1) {\n-                    hud.SetHasClass(\"DemoControllerMinimal\", true);\n-                }\n-                else if (nUIMode == 2) {\n-                    hud.SetHasClass(\"DemoControllerFull\", true);\n-                }\n+                hud.SetHasClass(\"DemoControllerHidden\", nUIMode == 0);\n+                hud.SetHasClass(\"DemoControllerMinimal\", nUIMode == 1);\n+                hud.SetHasClass(\"DemoControllerFull\", nUIMode == 2);\n             }\n             OnHighlightsModeChanged(state.bIsPlayingHighlights);\n             bHighlightsMode = state.bIsPlayingHighlights;"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/itemtile.js",
          "status": "modified",
          "additions": 7,
          "deletions": 1,
          "changes": 8,
          "patch": "@@ -144,9 +144,15 @@ var ItemTile;\n     }\n     ;\n     function _SetRecentLabel(id) {\n+        let elLabel = $.GetContextPanel().FindChildInLayoutFile('JsRecent');\n+        let unProtectedEscrowValue = InventoryAPI.GetItemAttributeValue(id, '{uint32}trade protected escrow date');\n+        if ((unProtectedEscrowValue !== undefined) && (unProtectedEscrowValue == 0)) {\n+            elLabel.RemoveClass('hidden');\n+            elLabel.text = $.Localize('#inv_session_prop_marketlisting');\n+            return;\n+        }\n         let isRecentValue = InventoryAPI.GetItemSessionPropertyValue(id, 'recent');\n         let isUpdatedValue = InventoryAPI.GetItemSessionPropertyValue(id, 'updated');\n-        let elLabel = $.GetContextPanel().FindChildInLayoutFile('JsRecent');\n         if (isUpdatedValue === '1' || isRecentValue === '1') {\n             let locString = 'recent';\n             if (isRecentValue === '1') {"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_async-bar.js",
          "status": "modified",
          "additions": 28,
          "deletions": 1,
          "changes": 29,
          "patch": "@@ -268,12 +268,18 @@ var InspectAsyncActionBar;\n                 elDescImage.visible = false;\n                 return;\n             }\n+            const terminalValue = InventoryAPI.GetItemAttributeValue(itemId, '{uint32}volatile container');\n+            const isTerminal = (terminalValue == '' || terminalValue == undefined || terminalValue == 0) ? false : true;\n             if (itemDefName && itemDefName.indexOf(\"spray\") != -1)\n                 sOkButtonText = sOkButtonText + \"_graffiti\";\n             else if (itemDefName && itemDefName.indexOf(\"tournament_pass_\") != -1)\n                 sOkButtonText = sOkButtonText + \"_fantoken\";\n-            else if (InventoryAPI.GetItemAttributeValue(itemId, '{uint32}volatile container'))\n+            else if (terminalValue)\n                 sOkButtonText = sOkButtonText + \"_terminal\";\n+            const elDropdown = elPanel.FindChildInLayoutFile('AsyncOfferLimitDropdown');\n+            elDropdown.SetHasClass('hidden', !isTerminal);\n+            if (isTerminal)\n+                _SetUpOfferLimitDropdown(elDropdown);\n         }\n         if (worktype === 'can_sticker') {\n             const listStickers = ItemInfo.GetitemStickerList(itemId);\n@@ -297,6 +303,27 @@ var InspectAsyncActionBar;\n         elOK.AddClass(btnStyle);\n         _SetPanelEventOnAccept();\n     }\n+    function _SetUpOfferLimitDropdown(elDropdown) {\n+        const oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());\n+        for (let i = 0; i < oLimits.choices.length; i++) {\n+            if (!elDropdown.HasOption('id-dropdown-limit-' + oLimits.choices[i].limit)) {\n+                let elOption = $.CreatePanel('Label', elDropdown, 'id-dropdown-limit-' + oLimits.choices[i].limit, {\n+                    class: 'DropDownMenu'\n+                });\n+                elOption.SetDialogVariable('limit', $.Localize(oLimits.choices[i].label));\n+                elOption.text = $.Localize('#offer_limit_setting', elOption);\n+                elOption.SetAttributeUInt32('limit', oLimits.choices[i].limit);\n+                elDropdown.AddOption(elOption);\n+            }\n+        }\n+        elDropdown.SetPanelEvent('oninputsubmit', () => _OnOfferLimitDropdownSubmit(elDropdown));\n+        elDropdown.SetSelected('id-dropdown-limit-' + oLimits.limit);\n+    }\n+    function _OnOfferLimitDropdownSubmit(elDropdown) {\n+        const elSelected = elDropdown.GetSelected();\n+        const nLimit = elSelected.GetAttributeUInt32('limit', 0);\n+        InventoryAPI.SetVolatileLimits(nLimit);\n+    }\n     function _SetUpDescription(elPanel) {\n         const elDescLabel = elPanel.FindChildInLayoutFile('AsyncItemWorkDesc');\n         const elDescImage = elPanel.FindChildInLayoutFile('AsyncItemWorkDescImage');"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_header.js",
          "status": "modified",
          "additions": 4,
          "deletions": 1,
          "changes": 5,
          "patch": "@@ -42,7 +42,10 @@ var InspectHeader;\n         elLabel.SetHasClass('hide', !bHasExpirationDate);\n     }\n     function _SetOriginalOwner(elPanel, itemId) {\n-        elPanel.FindChildInLayoutFile('InspectOriginalOwner').visible = (InventoryAPI.GetItemAttributeValue(itemId, '{uint32}purchaser account id') != undefined);\n+        const elOriginalOwner = elPanel.FindChildInLayoutFile('InspectOriginalOwner');\n+        elOriginalOwner.visible = (InventoryAPI.GetItemAttributeValue(itemId, '{uint32}purchaser account id') != undefined);\n+        const elImage = elPanel.FindChildInLayoutFile('InspectSetImage');\n+        elOriginalOwner.SetHasClass('horizontal-center', !elImage.visible);\n     }\n     function _SetRarity(elPanel, itemId) {\n         const rarityColor = InventoryAPI.GetItemRarityColor(itemId);"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/popups/popup_offers_laptop_interface.js",
          "status": "modified",
          "additions": 185,
          "deletions": 109,
          "changes": 294,
          "patch": "@@ -173,6 +173,21 @@ var CollectionOffers;\n         line: '#dealer_message_addition_factory_new_',\n         sender: 'dealer'\n     };\n+    const dealerOfferLimitMessage = {\n+        line: '#dealer_message_set_offer_limit_',\n+        sender: 'dealer',\n+        action: async () => {\n+            await Async.Delay(.5);\n+            _ShowMessageOfferLimit();\n+        }\n+    };\n+    const dealerContainerExpired = {\n+        line: '#dealer_message_timerexpired_',\n+        sender: 'dealer',\n+        action: () => {\n+            _MakeMessage(systemDealerLeaveContainerDestroy);\n+        }\n+    };\n     const systemDealerJoin = {\n         line: '#system_dealer_join_chat_0',\n         sender: 'system',\n@@ -205,13 +220,35 @@ var CollectionOffers;\n             Close(true);\n         }\n     };\n-    const systemContainerExpired = {\n-        line: '#dealer_message_timerexpired_',\n-        sender: 'dealer',\n+    const systemOfferLimitSetWithBootstrapAction = {\n+        line: '#system_user_updated_offer_limit_0',\n+        sender: 'system',\n+        action: async () => {\n+            await ShowDealerOfferLimitAcknowledge(true);\n+            const elWaitMessage = _ShowDealerWaitMessageDotDotDot();\n+            await Async.Delay(2);\n+            (await elWaitMessage).visible = false;\n+            _OnSystemDealerJoinBootstrap();\n+        }\n+    };\n+    const systemOfferLimitSet = {\n+        line: '#system_user_updated_offer_limit_0',\n+        sender: 'system',\n         action: () => {\n-            _MakeMessage(systemDealerLeaveContainerDestroy);\n+            ShowDealerOfferLimitAcknowledge();\n         }\n     };\n+    async function ShowDealerOfferLimitAcknowledge(firstTime = false) {\n+        let oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());\n+        if (oLimits.limit !== 0) {\n+            const strLine = !firstTime ? '#dealer_message_limit_' : '#dealer_message_limit_first_time_';\n+            await _MakeMessage({ line: strLine, sender: 'dealer' });\n+        }\n+        else {\n+            const strLine = !firstTime ? '#dealer_message_limit_unlimited_' : '#dealer_message_limit_first_time_unlimited_';\n+            await _MakeMessage({ line: strLine, sender: 'dealer' });\n+        }\n+    }\n     function Init(itemId, elScreen) {\n         m_idContainerItem = itemId;\n         m_defidxContainerItem = InventoryAPI.GetItemDefinitionIndex(m_idContainerItem);\n@@ -372,6 +409,7 @@ var CollectionOffers;\n     }\n     async function _OnSystemDealerJoinBootstrap() {\n         let numOffers = InventoryAPI.GetItemAttributeValue(m_idContainerItem, '{uint32}quest points remaining');\n+        let oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());\n         if (numOffers == undefined) {\n             m_numOfferCounter = 0;\n             await _MakeMessage(dealerIntroMessage);\n@@ -380,6 +418,11 @@ var CollectionOffers;\n             m_numOfferCounter = numOffers;\n             await _MakeMessage(dealerReturningToContractMessage);\n         }\n+        const setting = oLimits.choices.find(item => item.limit === oLimits.limit);\n+        m_elScreen.SetDialogVariable('limit', GetLimitString(setting?.limit, setting?.label));\n+        m_elScreen.FindChildInLayoutFile('id-offer-limit-setting').SetPanelEvent('onactivate', () => {\n+            ShowOfferLimitPopup();\n+        });\n         m_elScreen.FindChildInLayoutFile('id-laptop-connected-icon').SetHasClass('connected', true);\n         m_elScreen.FindChildInLayoutFile('id-laptop-signal-icon').SetHasClass('connected-' + m_signalBars, true);\n     }\n@@ -435,8 +478,7 @@ var CollectionOffers;\n             elUserButtonContainer.SetDialogVariable('offer-count', $.Localize('#dealer_offer_' + _CurrentOfferNumber()));\n             elUserButtonContainer.SetDialogVariable('user-response-title', $.Localize('#user_btn_purchase_title', elUserButtonContainer));\n         }\n-        m_elYesBtn.SetDialogVariable('price', OfferItemData.price);\n-        _SetUpUserOfferConfirmDeclineBtns(elWaitMessage.FindChildInLayoutFile('id-offer-' + OfferItemData.itemId));\n+        _SetUpUserOfferConfirmDeclineBtns(elWaitMessage.FindChildInLayoutFile('id-offer-' + OfferItemData.itemId), OfferItemData);\n     }\n     async function _DealerEstablishExistingOffer() {\n         const elWaitMessage = await _ShowDealerWaitMessageDotDotDot();\n@@ -652,109 +694,74 @@ var CollectionOffers;\n         m_elYesBtn.enabled = bEnable;\n         m_elNoBtn.enabled = bEnable;\n         m_elEndBtn.enabled = bEnable;\n+        m_elScreen.FindChildInLayoutFile('id-offer-limit-setting').enabled = bEnable;\n         m_elScreen.FindChildInLayoutFile('id-price-tooltip').SetHasClass('faded', !bEnable);\n     }\n-    let _m_buttonDown = false;\n-    let _m_buttonTimer = 0;\n-    let _m_buttonTimerHandle = null;\n-    function _SetUpUserOfferConfirmDeclineBtns(elOffer) {\n-        m_elEndBtn.visible = false;\n-        m_elYesBtn.SwitchClass('bnt-type', 'positive');\n-        m_elYesBtn.text = $.Localize(_RandomizeLocString('#user_btn_accept_'), m_elYesBtn);\n-        m_elYesBtn.SetPanelEvent('onmouseover', () => { UiToolkitAPI.ShowTextTooltipStyled(m_elYesBtn.id, '#user_btn_purchase_desc_purchase', 'tooltip-offer-actions'); });\n-        m_elYesBtn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });\n-        m_elYesBtn.SetPanelEvent('onmouseup', () => _OnMouseUp(m_elYesBtn));\n-        m_elYesBtn.SetPanelEvent('onmousedown', () => _OnMouseDown(m_elYesBtn, () => {\n-            _EnableActionButtons(false);\n-            _MakeMessage(dealerOpenCheckOutMessage);\n-            OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Purchased');\n-        }));\n-        if (_IsFinalOffer()) {\n-            m_elYesBtn.enabled = true;\n-            m_elNoBtn.enabled = false;\n-            m_elNoBtn.visible = false;\n-            m_elScreen.FindChildInLayoutFile('id-price-tooltip').SetHasClass('faded', false);\n-            m_elEndBtn.visible = true;\n-            m_elEndBtn.enabled = true;\n-            m_elEndBtn.SwitchClass('bnt-type', 'negative');\n-            m_elEndBtn.SetPanelEvent('onmouseover', () => { UiToolkitAPI.ShowTextTooltipStyled(m_elEndBtn.id, '#user_btn_purchase_desc_end', 'tooltip-offer-actions'); });\n-            m_elEndBtn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });\n-            m_elEndBtn.SetPanelEvent('onmouseup', () => _OnMouseUp(m_elEndBtn));\n-            m_elEndBtn.SetPanelEvent('onmousedown', () => _OnMouseDown(m_elEndBtn, () => {\n-                _EnableActionButtons(false);\n-                _DealerEndTransaction();\n-            }));\n-            return;\n-        }\n-        m_elEndBtn.visible = false;\n-        m_elNoBtn.text = $.Localize(_IsFinalOffer() ? '#user_btn_decline' : _RandomizeLocString('#user_btn_next_'), m_elNoBtn);\n-        m_elNoBtn.SwitchClass('bnt-type', 'yellow');\n-        m_elNoBtn.SetPanelEvent('onmouseover', () => { UiToolkitAPI.ShowTextTooltipStyled(m_elNoBtn.id, '#user_btn_purchase_desc_continue', 'tooltip-offer-actions'); });\n-        m_elNoBtn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });\n-        m_elNoBtn.SetPanelEvent('onmouseup', () => _OnMouseUp(m_elNoBtn));\n-        m_elNoBtn.SetPanelEvent('onmousedown', () => _OnMouseDown(m_elNoBtn, () => {\n-            _EnableActionButtons(false);\n-            elOffer.SetHasClass('rejected', true);\n-            elOffer.SetDialogVariable('offer-status', $.Localize('#dealer_offer_attachment_status-declined-price', elOffer));\n-            elOffer.FindChildInLayoutFile('id-offer-desc').text = $.Localize('#dealer_offer_attachment_status-declined', elOffer);\n-            m_elScreen.FindChildInLayoutFile('id-offer-preview-panel-container').SetHasClass('show', false);\n-            m_elScreen.FindChildInLayoutFile('id-weapon-wear-rating-pointer').style.transform = 'translateX(100%) translateY(3px) scaleY(-1);';\n-            m_elScreen.FindChildInLayoutFile('id-chat-messages-bg').SetHasClass('show', false);\n-            OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Discarded');\n-            _MakeMessage(systemUserRejectOffer);\n-            _MakeMessage(dealerNextOffer);\n-        }));\n-        _EnableActionButtons(true);\n-    }\n-    function _OnMouseDown(elBtn, funcAction) {\n-        CancelButtonTimer(elBtn);\n-        _m_buttonDown = true;\n-        _m_buttonTimer = 0;\n-        IncrementButtonTimer(elBtn, funcAction);\n-    }\n-    function _OnMouseUp(elBtn) {\n-        CancelButtonTimer(elBtn);\n-        _m_buttonDown = false;\n-        _m_buttonTimer = 0;\n-        elBtn.FindChild('id-response-btn-timer').visible = false;\n-        elBtn.FindChild('id-response-btn-timer').style.width = '0%;';\n-        _MakeFingerPrints(m_elScreen);\n-    }\n-    function IncrementButtonTimer(elBtn, funcAction) {\n-        ++_m_buttonTimer;\n-        if (_m_buttonTimer <= 10 && _m_buttonDown) {\n-            elBtn.FindChild('id-response-btn-timer').visible = true;\n-            elBtn.FindChild('id-response-btn-timer').style.width = (_m_buttonTimer * 10) + '%;';\n-            if (_m_buttonTimerHandle == null) {\n-                _m_buttonTimerHandle = $.Schedule(.1, () => IncrementButtonTimer(elBtn, funcAction));\n-                if (elBtn.id === 'id-user-message-yes') {\n-                    OffersLaptop.LaptopSoundStartLooping('UI.Laptop.ButtonFillLoop');\n-                }\n-                else {\n-                    OffersLaptop.LaptopSoundStartLooping('UI.Laptop.ButtonFillLoop_Deny');\n+    let _m_savedOffer = null;\n+    let _m_savedOfferItemData = null;\n+    function _SetUpUserOfferConfirmDeclineBtns(elOffer, OfferItemData) {\n+        _m_savedOffer = elOffer;\n+        _m_savedOfferItemData = OfferItemData;\n+        const numPaidAlready = 0;\n+        let payPrice = OfferItemData.price;\n+        m_elYesBtn.SetDialogVariable('price', payPrice);\n+        m_elYesBtn.visible = true;\n+        m_elNoBtn.visible = !_IsFinalOffer() && (numPaidAlready === 0);\n+        m_elEndBtn.visible = _IsFinalOffer() && (numPaidAlready === 0);\n+        m_elScreen.FindChildInLayoutFile('id-offer-limit-setting').visible = (numPaidAlready === 0);\n+        m_elScreen.FindChildInLayoutFile('id-price-tooltip').visible = (numPaidAlready === 0);\n+        if (m_elYesBtn.visible) {\n+            const btnYesSettings = {\n+                btn: m_elYesBtn,\n+                tooltip: '#user_btn_purchase_desc_purchase',\n+                locString: $.Localize(_RandomizeLocString('#user_btn_accept_'), m_elYesBtn),\n+                tooltipStyle: 'tooltip-offer-actions',\n+                loopingSound: 'UI.Laptop.ButtonFillLoop',\n+                timerCompleteAction: () => {\n+                    _EnableActionButtons(false);\n+                    _MakeMessage(dealerOpenCheckOutMessage);\n+                    OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Purchased');\n                 }\n-            }\n-            else {\n-                $.Schedule(.1, () => IncrementButtonTimer(elBtn, funcAction));\n-            }\n-            return;\n+            };\n+            HoldButton.SetupButton(btnYesSettings);\n         }\n-        if (_m_buttonDown) {\n-            funcAction();\n+        if (m_elEndBtn.visible) {\n+            const btnEndSettings = {\n+                btn: m_elEndBtn,\n+                tooltip: '#user_btn_purchase_desc_end',\n+                locString: $.Localize('#user_btn_end'),\n+                tooltipStyle: 'tooltip-offer-actions',\n+                loopingSound: 'UI.Laptop.ButtonFillLoop',\n+                timerCompleteAction: () => {\n+                    _EnableActionButtons(false);\n+                    _DealerEndTransaction();\n+                }\n+            };\n+            HoldButton.SetupButton(btnEndSettings);\n         }\n-        _OnMouseUp(elBtn);\n-    }\n-    function CancelButtonTimer(elBtn) {\n-        if (_m_buttonTimerHandle !== null) {\n-            $.CancelScheduled(_m_buttonTimerHandle);\n-            if (elBtn.id === 'id-user-message-yes') {\n-                OffersLaptop.LaptopSoundStopLooping('UI.Laptop.ButtonFillLoop');\n-            }\n-            else {\n-                OffersLaptop.LaptopSoundStopLooping('UI.Laptop.ButtonFillLoop_Deny');\n-            }\n-            _m_buttonTimerHandle = null;\n+        if (m_elNoBtn.visible) {\n+            const btnNoSettings = {\n+                btn: m_elNoBtn,\n+                tooltip: '#user_btn_purchase_desc_continue',\n+                locString: $.Localize(_IsFinalOffer() ? '#user_btn_decline' : _RandomizeLocString('#user_btn_next_'), m_elNoBtn),\n+                tooltipStyle: 'tooltip-offer-actions',\n+                loopingSound: 'UI.Laptop.ButtonFillLoop',\n+                timerCompleteAction: () => {\n+                    _EnableActionButtons(false);\n+                    elOffer.SetHasClass('rejected', true);\n+                    elOffer.SetDialogVariable('offer-status', $.Localize('#dealer_offer_attachment_status-declined-price', elOffer));\n+                    elOffer.FindChildInLayoutFile('id-offer-desc').text = $.Localize('#dealer_offer_attachment_status-declined', elOffer);\n+                    m_elScreen.FindChildInLayoutFile('id-offer-preview-panel-container').SetHasClass('show', false);\n+                    m_elScreen.FindChildInLayoutFile('id-weapon-wear-rating-pointer').style.transform = 'translateX(100%) translateY(3px) scaleY(-1);';\n+                    m_elScreen.FindChildInLayoutFile('id-chat-messages-bg').SetHasClass('show', false);\n+                    OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Discarded');\n+                    _MakeMessage(systemUserRejectOffer);\n+                    _MakeMessage(dealerNextOffer);\n+                }\n+            };\n+            HoldButton.SetupButton(btnNoSettings);\n         }\n+        _EnableActionButtons(numPaidAlready === 0);\n     }\n     function OnInventoryUpdated() {\n         if (m_bWrappingUpThisTransaction)\n@@ -766,7 +773,7 @@ var CollectionOffers;\n         m_idContainerItem = '';\n         _EnableActionButtons(false);\n         m_elEndBtn.enabled = false;\n-        _MakeMessage(systemContainerExpired);\n+        _MakeMessage(dealerContainerExpired);\n     }\n     CollectionOffers.OnInventoryUpdated = OnInventoryUpdated;\n     function OnItemCustomizationNotification(numericType, szType, itemid) {\n@@ -963,7 +970,6 @@ var CollectionOffers;\n         elParent.SetPanelEvent('onactivate', () => {\n             _MakeFingerPrints(m_elScreen);\n             _XpCollectionPopup();\n-            m_elScreen.FindChildInLayoutFile('id-popup-lootlist').SetHasClass('show', true);\n         });\n         for (let i = 0; i < count; i++) {\n             const itemId = InventoryAPI.GetLootListItemIdByIndex(m_idContainerItem, i);\n@@ -989,10 +995,8 @@ var CollectionOffers;\n         }\n     }\n     function _XpCollectionPopup() {\n-        m_elScreen.FindChildInLayoutFile('id-close-popup-lootlist').SetPanelEvent('onactivate', () => {\n-            OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Click');\n-            m_elScreen.FindChildInLayoutFile('id-popup-lootlist').SetHasClass('show', false);\n-        });\n+        m_elScreen.FindChildInLayoutFile('id-popup-in-screen').SetHasClass('show-lootlist', true);\n+        m_elScreen.FindChildInLayoutFile('id-close-popup-in-screen').SetPanelEvent('onactivate', () => CloseInScreenPopup('show-lootlist'));\n         const oHistoricData = InventoryAPI.GetCacheTypeElementJSOByIndex('VolatileItemOffer', InventoryAPI.GetCacheTypeElementIndexByKey('VolatileItemOffer', m_defidxContainerItem));\n         const oClaimedData = InventoryAPI.GetCacheTypeElementJSOByIndex('VolatileItemClaimedRewards', InventoryAPI.GetCacheTypeElementIndexByKey('VolatileItemClaimedRewards', m_defidxContainerItem));\n         const elParent = m_elScreen.FindChildInLayoutFile('id-offer-xp-lootlist');\n@@ -1065,6 +1069,78 @@ var CollectionOffers;\n             }\n         }\n     }\n+    async function _ShowMessageOfferLimit() {\n+        const elMessage = $.CreatePanel('Panel', m_elMessagesParent, '');\n+        elMessage.BLoadLayoutSnippet('interaction-offer-limit-message');\n+        elMessage.AddClass('show');\n+        const oSettings = {\n+            parentPanel: elMessage.FindChildInLayoutFile('id-interaction-list'),\n+            buttonClass: 'message-interaction__text-button',\n+            group: 'offer-limit-message',\n+            namePrefix: 'id-limit-message',\n+            isContextMenu: false\n+        };\n+        MakeOfferLimitRadioButton(oSettings);\n+        await Async.Delay(.1);\n+        m_elMessagesParent.ScrollToBottom();\n+        return elMessage;\n+    }\n+    function ShowOfferLimitPopup() {\n+        m_elScreen.FindChildInLayoutFile('id-popup-in-screen').SetHasClass('show-settings', true);\n+        m_elScreen.FindChildInLayoutFile('id-close-popup-in-screen').SetPanelEvent('onactivate', () => CloseInScreenPopup('show-settings'));\n+        const oSettings = {\n+            parentPanel: m_elScreen.FindChildInLayoutFile('id-offer-settings'),\n+            buttonClass: 'popup-offers-setting__text-button',\n+            group: 'offer-limit',\n+            namePrefix: 'id-limit-popup',\n+            isContextMenu: true\n+        };\n+        MakeOfferLimitRadioButton(oSettings);\n+    }\n+    function MakeOfferLimitRadioButton(oSetting) {\n+        let oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());\n+        for (let i = 0; i < oLimits.choices.length; i++) {\n+            let elButton = oSetting.parentPanel.FindChild(oSetting.namePrefix + oLimits.choices[i].limit);\n+            if (!elButton) {\n+                elButton = $.CreatePanel('RadioButton', oSetting.parentPanel, oSetting.namePrefix + oLimits.choices[i].limit, {\n+                    class: oSetting.buttonClass,\n+                    group: 'offer-limit',\n+                    html: 'true',\n+                    text: '{s:setting-label}'\n+                });\n+                elButton.SetDialogVariable('limit-setting', oLimits.choices[i]?.label);\n+                const locString = (oLimits.choices[i].limit !== 0) ?\n+                    $.Localize(_RandomizeLocString('#user_message_limit_'), elButton) :\n+                    $.Localize(_RandomizeLocString('#user_message_limit_unlimited_'), elButton);\n+                elButton.SetDialogVariable('setting-label', locString);\n+                elButton.SetPanelEvent('onactivate', () => {\n+                    InventoryAPI.SetVolatileLimits(oLimits.choices[i].limit);\n+                    m_elScreen.SetDialogVariable('limit', GetLimitString(oLimits.choices[i]?.limit, oLimits.choices[i]?.label));\n+                    if (oSetting.isContextMenu) {\n+                        $.Schedule(.25, () => CloseInScreenPopup('show-settings'));\n+                        oSetting.parentPanel.Children().forEach(element => element.enabled = false);\n+                        ShowDealerOfferLimitAcknowledge();\n+                        return;\n+                    }\n+                    else {\n+                        oSetting.parentPanel.SetHasClass('hide', true);\n+                        _MakeMessage(systemOfferLimitSetWithBootstrapAction);\n+                    }\n+                });\n+            }\n+            if (oSetting.isContextMenu) {\n+                elButton.checked = ((oLimits.limit === oLimits.choices[i].limit) && oLimits.selected === true);\n+                elButton.enabled = !elButton.checked;\n+            }\n+        }\n+    }\n+    function CloseInScreenPopup(className) {\n+        OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Click');\n+        m_elScreen.FindChildInLayoutFile('id-popup-in-screen').SetHasClass(className, false);\n+    }\n+    function GetLimitString(nLimit, sLimitLabel) {\n+        return nLimit === 0 ? $.Localize(sLimitLabel) : sLimitLabel;\n+    }\n })(CollectionOffers || (CollectionOffers = {}));\n var DecodeText;\n (function (DecodeText) {"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/styles/csgostyles.css",
          "status": "modified",
          "additions": 5,
          "deletions": 0,
          "changes": 5,
          "patch": "@@ -3773,6 +3773,11 @@ EdgeScrollBar.Vertical #MaxButton\n \tmargin-right: 4px;\n }\n \n+.right-margin-6\n+{\n+\tmargin-right: 6px;\n+}\n+\n .right-margin\n {\n \tmargin-right: 8px;"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/styles/hud/hudlegend.css",
          "status": "modified",
          "additions": 10,
          "deletions": 0,
          "changes": 10,
          "patch": "@@ -35,6 +35,11 @@\n \tvisibility: collapse;\n }\n \n+.DemoControllerHidden .HudSpecplayer__key-hints\n+{\n+\tvisibility: collapse;\n+}\n+\n .HudSpecplayer__key-hints .DemoControllerFull\n {\n \tvisibility: collapse;\n@@ -49,6 +54,11 @@\n \tmargin: 0px 4px;\n }\n \n+.DemoControllerHidden .HudSpecplayer__key-hints-text\n+{\n+\tvisibility: collapse;\n+}\n+\n .DemoControllerFull .HudSpecplayer__key-hints-text\n {\n \tvisibility: collapse;"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/styles/itemtile.css",
          "status": "modified",
          "additions": 10,
          "deletions": 0,
          "changes": 10,
          "patch": "@@ -343,6 +343,16 @@\n \tvisibility:visible;\n }\n \n+.item-tile__onmarket\n+{\n+\theight: 16px;\n+\twidth: 16px;\n+\ttransform: scaleX(-1);\n+\tvertical-align: center;\n+\tmargin-right: 1px;\n+\twash-color: baseText;\n+}\n+\n .item-tile__original-owner\n {\n \tmargin-left: 8px;"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/styles/popups/popup_offers_laptop_interface.css",
          "status": "modified",
          "additions": 325,
          "deletions": 74,
          "changes": 399,
          "patch": "@@ -3,6 +3,8 @@\n @define window-background-color: #263238;\n @define blueColor:rgb(16, 90, 133);\n @define lightCoolGreyColor: #B0BEC5;\n+@define textGreyColor: #78909C;\n+@define darkTextGreyColor: #455A64;\n @define headerBarColor: #37474F;\n .collection-laptop-container\n {\n@@ -462,7 +464,7 @@\n \tpadding-left: 16px;\n \tvertical-align: center;\n \ttransform: translateY( -1px );\n-\tcolor: #78909C;\n+\tcolor: textGreyColor;\n \theight: 16px;\n \ttext-overflow: ellipsis;\n }\n@@ -509,6 +511,11 @@\n \twidth: 100%;\n \theight: 100%;\n \tbackground-color: gradient( linear, 0% 0%, 0% 100%, from( #b3b3b3be ), to( #131313be ) );\n+\tbackground-image: url(\"s2r://panorama/images/icons/ui/arms_deal_icon.vsvg\");\n+\tbackground-img-opacity: .15;\n+\tbackground-position: 75px 120px;\n+\tbackground-size: auto 450px;\n+\tbackground-repeat: no-repeat;\n \topacity: 0;\n \ttransition-property: wash-color, opacity;\n \ttransition-duration: .5s;\n@@ -588,14 +595,14 @@\n \n .window__dealer-chat .chat-messages .chat-message.chat-message-system\n {\n-\tmargin: 4px;\n+\tmargin: 2px;\n \thorizontal-align:center;\n }\n \n .window__dealer-chat .chat-messages .chat-message.chat-message-system .chat-message__body\n {\n \tbackground-color: none;\n-\tmax-width: 380px;\n+\tmax-width: 420px;\n \tpadding: 0px;\n \thorizontal-align:center;\n \ttext-align: center;\n@@ -839,6 +846,94 @@\n \tfont-weight: bold;\n }\n \n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction\n+{\n+\tmargin-left: 54px;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction.hide\n+{\n+\tvisibility: visible;\n+\theight: 0px;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction.hide .message-interaction__text-button\n+{\n+\tvisibility: collapse;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .interaction-card\n+{\n+\tbackground-color: rgba(0, 0, 0, 0.637);\n+\tflow-children: down;\n+\tborder-radius: 4px;\n+\tpadding: 8px;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .interaction-card .interaction-card-desc\n+{\n+\tfont-size: 14px;\n+\tpadding:8px;\n+\tmax-width: 380px;\n+\tcolor:grey;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button\n+{\n+\tcolor: black;\n+\tfont-weight: bold;\n+\tmargin: 2px 0px;\n+\tborder: 1px solid rgba(128, 128, 128, 0);\n+\tborder-radius: 24px;\n+\ttransition-property: border, brightness, box-shadow;\n+\ttransition-duration: 0.20s;\n+\ttransition-timing-function: ease-in-out;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button .RadioBox\n+{\n+\tvertical-align: center;\n+\tmin-width: 12px;\n+\tmin-height: 12px;\n+\tbackground-size: auto 100%;\n+\topacity: .5;\n+\tbackground-color: rgba(0, 0, 0, 0.50 );\n+\tborder: 2px solid rgba(128, 128, 128, .25);\n+\tborder-radius: 50%;\n+\tbox-shadow: none;\n+\tmargin: 0px 8px;\n+\ttransition-property: opacity;\n+\ttransition-duration: 0.20s;\n+\ttransition-timing-function: ease-in-out;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button Label\n+{\n+\tfont-size: 16px;\n+\tpadding: 2px 8px;\n+\tcolor: rgba(255, 255, 255, 0.45);\n+\tmargin: 0px;\n+\tfont-family: Stratum2, \"Arial Unicode MS\";\n+\tfont-weight: normal;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button:hover\n+{\n+\tborder: 1px solid rgba(111, 129, 139, 0.25);\n+\tbrightness: 2;\n+\tbox-shadow: hollow #00000067 0px 0px 6px 1px;\n+\ttransition-property: border, brightness, box-shadow;\n+\ttransition-duration: 0.20s;\n+\ttransition-timing-function: ease-in-out;\n+}\n+\n+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button:selected .RadioBox\n+{\n+\topacity: 1;\n+\tbackground-color: rgba(255, 255, 255, 0.35);\n+\tborder: 2px solid rgba(65, 65, 65, 1);\n+}\n+\n .window__dealer-chat .chat-messages .chat-message.show\n {\n \tvisibility: visible;\n@@ -857,15 +952,18 @@\n .window__dealer-chat .chat-user-responses\n {\n \twidth: 100%;\n+\theight: fit-children;\n \tflow-children: down;\n+\ttransition-property: height;\n+\ttransition-duration: .25s;\n+\ttransition-timing-function: ease-in-out;\n }\n \n .window__dealer-chat .chat-user-responses .chat-user-responses__container\n {\n \tflow-children: down;\n \twidth: 100%;\n-\tmargin: 8px;\n-\theight: 80px;\n+\tmargin: 10px 8px;\n \topacity: 0;\n \ttransform: translateY( 32px );\n \ttransition-property: opacity, transform;\n@@ -882,11 +980,11 @@\n \n .window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-responses__title,.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-responses__desc\n {\n-\twidth: 400px;\n+\twidth: fit-children;\n \tfont-size: 16px;\n \tmargin-left: 6px;\n-\tmargin-bottom: 8px;\n-\tcolor: #78909C;\n+\tmargin-right: 6px;\n+\tcolor: textGreyColor;\n \ttext-transform: uppercase;\n }\n \n@@ -898,46 +996,96 @@\n \topacity: .75;\n }\n \n+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting\n+{\n+\tfont-size: 14px;\n+\tvertical-align: center;\n+\thorizontal-align: right;\n+\ttext-align:right;\n+\tborder-radius: 24px;\n+\tpadding: 2px 8px;\n+\tbox-shadow: none;\n+\ttransition-property: border, brightness, box-shadow;\n+\ttransition-duration: .25s;\n+\ttransition-timing-function: ease-in-out;\n+}\n+\n+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting Label\n+{\n+\tfont-size: 14px;\n+\tfont-weight: normal;\n+\tcolor: textGreyColor;\n+\t-s2-mix-blend-mode: additive;\n+\tfont-family: Stratum2, \"Arial Unicode MS\";\n+}\n+\n+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting .expand-icon\n+{\n+\twidth:7px;\n+\theight:7px;\n+\twash-color: textGreyColor;\n+\ttransform: translatey(-5px);\n+}\n+\n+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:hover:not(:disabled)\n+{\n+\tbrightness: 2;\n+}\n+\n+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:active\n+{\n+\tsound: \"UI.Laptop.Click\";\n+}\n+\n+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:disabled Label\n+{\n+\tcolor: darkTextGreyColor;\n+}\n+\n+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:disabled .expand-icon\n+{\n+\twash-color: darkTextGreyColor;\n+}\n+\n .window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-price-tooltip\n {\n \tvertical-align: center;\n-\twash-color: lightCoolGreyColor;\n+\twash-color: textGreyColor;\n \ttooltip-position: top;\n \ttooltip-body-position: 50% 100%;\n }\n \n .window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-price-tooltip.faded\n {\n-\twash-color: #455A64;\n+\twash-color: darkTextGreyColor;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn\n+.window__dealer-chat .chat-user-responses .user-response-btn\n {\n \tmargin: 4px 6px;\n \tborder: 2px solid grey;\n \ttooltip-position: top;\n \ttooltip-body-position: 0% 100%;\n-\tborder-radius: 24px;\n-\ttransition-property: opacity, brightness,background-color;\n+\tborder-radius: 26px;\n+\ttransition-property: opacity, brightness,background-color, box-shadow, width;\n \ttransition-duration: .25s;\n \ttransition-timing-function: ease-in-out;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn Label\n+.window__dealer-chat .chat-user-responses .user-response-btn Label\n {\n \tfont-family: Stratum2, \"Arial Unicode MS\";\n-\tfont-weight: normal;\n+\tfont-weight: medium;\n \tpadding: 8px 12px;\n \tfont-size: 16px;\n \tz-index: 2;\n-\t-s2-mix-blend-mode: additive;\n \ttext-align: center;\n \thorizontal-align: center;\n \tcolor: grey;\n \tletter-spacing: .5px;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn .user-response-btn__timer\n+.window__dealer-chat .chat-user-responses .user-response-btn .user-response-btn__timer\n {\n \twidth: 0px;\n \theight: 100%;\n@@ -947,102 +1095,109 @@\n \ttransition-timing-function: linear;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:active\n+.window__dealer-chat .chat-user-responses .user-response-btn:active\n {\n \tsound: \"UI.Laptop.Click\";\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.blue\n+.window__dealer-chat .chat-user-responses .user-response-btn.blue\n {\n \tbackground-color: rgb(5, 55, 61);\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.blue Label\n+.window__dealer-chat .chat-user-responses .user-response-btn.blue Label\n {\n \tcolor:rgb(5, 155, 175);\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.blue .user-response-btn__timer\n+.window__dealer-chat .chat-user-responses .user-response-btn.blue .user-response-btn__timer\n {\n \tbackground-color: rgb(5, 55, 61);\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive\n+.window__dealer-chat .chat-user-responses .user-response-btn.positive\n {\n-\tborder: 1px solid #4caf4f00;\n-\tbackground-color: #16681d;\n+\tborder: 1.5px solid #02a002;\n+\tbackground-color: none;\n+\tbox-shadow: hollow #00000000 0px 0px 3px 0px;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive Label\n+.window__dealer-chat .chat-user-responses .user-response-btn.positive Label\n {\n-\tcolor:rgb(163, 199, 147);\n+\tcolor:#02a002;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive .user-response-btn__timer\n+.window__dealer-chat .chat-user-responses .user-response-btn.positive .user-response-btn__timer\n {\n-\tbackground-color: #26882b;\n+\tbackground-color: #166b16;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive:hover:not(:disabled)\n+.window__dealer-chat .chat-user-responses .user-response-btn.positive:hover:not(:disabled)\n {\n-\tbox-shadow: fill #00000067 2px 2px 6px 1px;\n-\tborder: 1px solid rgb(57, 134, 59);\n+\tbox-shadow: hollow #00000067 0px 0px 8px 0px;\n+\tborder: 1.5px solid #02a002;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.yellow\n+.window__dealer-chat .chat-user-responses .user-response-btn.yellow\n {\n-\tborder: 1px solid #90A4AE;\n+\tborder: 1.5px solid #6a777e;\n \tbackground-color: none;\n \thorizontal-align: right;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.yellow Label\n+.window__dealer-chat .chat-user-responses .user-response-btn.yellow Label\n {\n \tcolor: #9badb6;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.yellow .user-response-btn__timer\n+.window__dealer-chat .chat-user-responses .user-response-btn.yellow .user-response-btn__timer\n {\n \tbackground-color: #546E7A;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.negative\n+.window__dealer-chat .chat-user-responses .user-response-btn.yellow:hover:not(:disabled)\n {\n-\tborder: 1px solid negativeColor;\n+\tbox-shadow: hollow #0000008c 0px 0px 6px 1px;\n+}\n+\n+.window__dealer-chat .chat-user-responses .user-response-btn.negative\n+{\n+\tborder: 1.5px solid negativeColor;\n \tbackground-color: rgba(129, 40, 18, 0.15);\n \thorizontal-align: right;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.negative Label\n+.window__dealer-chat .chat-user-responses .user-response-btn.negative Label\n {\n \tcolor:negativeColor;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.negative .user-response-btn__timer\n+.window__dealer-chat .chat-user-responses .user-response-btn.negative .user-response-btn__timer\n {\n \tbackground-color: rgb(129, 41, 18);\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:hover:not(:disabled)\n+.window__dealer-chat .chat-user-responses .user-response-btn:hover:not(:disabled)\n {\n \tbrightness: 1.6;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:disabled\n+.window__dealer-chat .chat-user-responses .user-response-btn:disabled\n {\n \tbrightness: 1;\n-\tborder: 1px solid #455A64;\n-\tbackground-color: #263238;\n+\tborder: 1.5px solid darkTextGreyColor;\n+\tbackground-color: none;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:disabled .user-response-btn__timer\n+.window__dealer-chat .chat-user-responses .user-response-btn:disabled .user-response-btn__timer\n {\n \twidth: 0px;\n }\n \n-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:disabled Label\n+.window__dealer-chat .chat-user-responses .user-response-btn:disabled Label\n {\n-\tcolor: #455A64;\n+\tcolor: darkTextGreyColor;\n+\tbackground-color: none;\n }\n \n .window__weapon-preview\n@@ -1191,6 +1346,7 @@\n \thorizontal-align: left;\n \tvertical-align: bottom;\n \tmargin-bottom: 16px;\n+\tz-index: 3;\n \ttransition-property: width;\n \ttransition-duration: .1s;\n \ttransition-timing-function: linear;\n@@ -1372,7 +1528,7 @@\n .window__weapon-wear .window__weapon-wear__graph-container .window__weapon-wear__graph .window__weapon-wear__graph__segment.field-tested\n {\n \twidth: 92px;\n-\tbackground-color: #78909C;\n+\tbackground-color: textGreyColor;\n }\n \n .window__weapon-wear .window__weapon-wear__graph-container .window__weapon-wear__graph .window__weapon-wear__graph__segment.well-worn\n@@ -1607,6 +1763,7 @@\n .offer-collection__lootlist .offer-collection__lootlist__item.seen\n {\n \tbackground-color: white;\n+\tborder: 0px solid rgba(255, 255, 255, 0.26);\n \topacity: 1;\n }\n \n@@ -1679,7 +1836,7 @@\n \tz-index: 4;\n \tflow-children: right;\n \tborder-radius: 24px;\n-\tborder: 1px solid lightCoolGreyColor;\n+\tbackground-color: darkTextGreyColor;\n \ttransition-property: brightness;\n \ttransition-duration: .25s;\n \ttransition-timing-function: ease-in-out;\n@@ -1690,6 +1847,7 @@\n \tfont-family: Stratum2, 'Arial Unicode MS';\n \tfont-size: 12px;\n \tmargin:4px 8px;\n+\ttext-align: center;\n \tcolor: lightCoolGreyColor;\n }\n \n@@ -1771,7 +1929,7 @@\n \tcolor:color-rarity-unusual;\n }\n \n-.popup-lootlist-container\n+.popup-laptop-container\n {\n \twidth: 100%;\n \theight: 100%;\n@@ -1781,21 +1939,43 @@\n \ttransition-timing-function: linear;\n }\n \n-.popup-lootlist-container.show\n+.popup-laptop-container.show,.popup-laptop-container.show-lootlist,.popup-laptop-container.show-settings\n+{\n+\tvisibility: visible;\n+\topacity: 1;\n+}\n+\n+.popup-laptop-container.show-lootlist\n+{\n+\tvisibility: visible;\n+\topacity: 1;\n+}\n+\n+.popup-laptop-container.show-lootlist .popup-lootlist\n+{\n+\ttransform: translateY(0px) scaleY(1);\n+\topacity: 1;\n+\ttransition-property: transform, opacity;\n+\ttransition-duration: .25s;\n+\ttransition-timing-function: linear;\n+}\n+\n+.popup-laptop-container.show-settings\n {\n \tvisibility: visible;\n \topacity: 1;\n }\n \n-.popup-lootlist-container.show .popup-lootlist\n+.popup-laptop-container.show-settings .popup-offers-settings\n {\n \ttransform: translateY(0px) scaleY(1);\n-\ttransition-property: transform;\n+\topacity: 1;\n+\ttransition-property: transform, opacity;\n \ttransition-duration: .25s;\n \ttransition-timing-function: linear;\n }\n \n-.popup-lootlist\n+.popup-lootlist,.popup-offers-settings\n {\n \thorizontal-align: right;\n \tvertical-align: bottom;\n@@ -1804,55 +1984,125 @@\n \tflow-children: down;\n \tbackground-color: window-background-color;\n \twidth: 250px;\n+\topacity: 0;\n \ttransform-origin: 0% 100%;\n \ttransform: translateY(40px);\n-\ttransition-property: transform;\n+\ttransition-property: transform, opacity;\n \ttransition-duration: .25s;\n \ttransition-timing-function: linear;\n \tbox-shadow: fill #0000005b 2px 2px 28px 1px;\n }\n \n-.popup-lootlist .popup-lootlist__desc\n+.popup-lootlist.popup-offers-settings,.popup-offers-settings.popup-offers-settings\n+{\n+\thorizontal-align: left;\n+\tmargin-left: 280px;\n+\tmargin-bottom: 120px;\n+\tmargin-right: 0px;\n+\twidth: 280px;\n+}\n+\n+.popup-lootlist.popup-offers-settings .popup-lootlist__list__section,.popup-offers-settings.popup-offers-settings .popup-lootlist__list__section\n+{\n+\tbackground-color: rgba(0, 0, 0, 0.315);\n+\tmargin: 8px;\n+\twidth: 100%;\n+}\n+\n+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button\n+{\n+\tmargin: 2px 0px;\n+\tvertical-align: center;\n+\tborder: 1px solid rgba(111, 129, 139, 0);\n+\tbox-shadow: hollow #00000000 0px 0px 6px 1px;\n+\tborder-radius: 12px;\n+\tpadding: 2px 8px 2px 8px;\n+\ttransition-property: border, brightness, box-shadow;\n+\ttransition-duration: .25s;\n+\ttransition-timing-function: ease-in-out;\n+}\n+\n+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button .RadioBox,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button .RadioBox\n+{\n+\tvertical-align: center;\n+\tmin-width: 12px;\n+\tmin-height: 12px;\n+\tbackground-size: auto 100%;\n+\topacity: .5;\n+\tbackground-color: rgba(0, 0, 0, 0.50 );\n+\tborder: 2px solid rgba(128, 128, 128, .25);\n+\tborder-radius: 50%;\n+\tbox-shadow: none;\n+\ttransition-property: opacity;\n+\ttransition-duration: 0.20s;\n+\ttransition-timing-function: ease-in-out;\n+}\n+\n+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button Label,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button Label\n+{\n+\tfont-family: Stratum2, \"Arial Unicode MS\";\n+\tfont-size: 14px;\n+\tcolor: lightCoolGreyColor;\n+}\n+\n+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button:hover,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button:hover\n+{\n+\tborder: 1px solid rgba(111, 129, 139, 0.25);\n+\tbrightness: 2;\n+\tbox-shadow: hollow #00000067 0px 0px 6px 1px;\n+\ttransition-property: border, brightness, box-shadow;\n+\ttransition-duration: 0.20s;\n+\ttransition-timing-function: ease-in-out;\n+}\n+\n+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button:selected .RadioBox,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button:selected .RadioBox\n+{\n+\topacity: 1;\n+\tbackground-color: rgba(255, 255, 255, 0.35);\n+\tborder: 2px solid rgba(65, 65, 65, 1);\n+}\n+\n+.popup-lootlist .popup-lootlist__desc,.popup-offers-settings .popup-lootlist__desc\n {\n \tfont-size: 14px;\n \tmargin: 8px 16px;\n \tvertical-align: top;\n \tcolor: lightCoolGreyColor;\n }\n \n-.popup-lootlist .popup-lootlist__list\n+.popup-lootlist .popup-lootlist__list,.popup-offers-settings .popup-lootlist__list\n {\n \tflow-children: down;\n \twidth: 100%;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section\n+.popup-lootlist .popup-lootlist__list:last-child,.popup-offers-settings .popup-lootlist__list:last-child\n {\n-\tbackground-color: rgba(0, 0, 0, 0.315);\n-\tmargin: 4px 8px;\n-\twidth: 100%;\n+\tmargin-bottom: 8px;\n }\n \n-.popup-lootlist .popup-lootlist__list:last-child\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section\n {\n-\tmargin-bottom: 8px;\n+\tbackground-color: rgba(0, 0, 0, 0.315);\n+\tmargin: 4px 8px;\n+\twidth: 100%;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items\n {\n \tflow-children: down;\n \tpadding: 16px;\n \twidth: 100%;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item\n {\n \tflow-children: right;\n \tmargin: 2px 0px 2px 0px;\n \twidth: 100%;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__rarity\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__rarity,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__rarity\n {\n \twidth: 12px;\n \theight: 12px;\n@@ -1863,7 +2113,7 @@\n \topacity: .5;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__name\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__name,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__name\n {\n \tvertical-align: center;\n \tfont-size: 14px;\n@@ -1876,28 +2126,29 @@\n \ttransition-timing-function: ease-in-out;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item.seen .popup-lootlist__list__item__rarity\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item.seen .popup-lootlist__list__item__rarity,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item.seen .popup-lootlist__list__item__rarity\n {\n \tbackground-color: white;\n+\tborder: 0px solid White;\n \topacity: 1;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item:hover .popup-lootlist__list__item__name\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item:hover .popup-lootlist__list__item__name,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item:hover .popup-lootlist__list__item__name\n {\n \tborder: 1px solid rgba(111, 129, 139, 0.25);\n \tbrightness: 2;\n \tbox-shadow: hollow #00000067 0px 0px 6px 1px;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__progress\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__progress,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__progress\n {\n \tfont-size: 12px;\n-\tcolor: #78909C;\n+\tcolor: textGreyColor;\n \twidth: 112px;\n \ttext-overflow: noclip;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn\n {\n \tborder: 1px solid rgba(111, 129, 139, 0.25);\n \tborder-radius: 12px;\n@@ -1907,7 +2158,7 @@\n \ttransition-timing-function: ease-in-out;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn Label\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn Label,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn Label\n {\n \tfont-size: 12px;\n \ttext-align: center;\n@@ -1917,14 +2168,14 @@\n \twidth: 72px;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:hover:not(:disabled)\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:hover:not(:disabled),.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:hover:not(:disabled)\n {\n \tborder: 1px solid rgba(111, 129, 139, 0.479);\n \tbrightness: 2;\n \tbox-shadow: hollow #00000067 0px 0px 6px 1px;\n }\n \n-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:disabled\n+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:disabled,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:disabled\n {\n \topacity: .20;\n }"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/styles/tooltips/tooltip_inventory_item.css",
          "status": "modified",
          "additions": 5,
          "deletions": 1,
          "changes": 6,
          "patch": "@@ -19,10 +19,14 @@\n \tvisibility:visible;\n }\n \n-.collection-label\n+.collection-text-style\n {\n \tfont-weight: normal;\n \tfont-size: 14px;\n+}\n+\n+.collection-label\n+{\n \tvisibility:collapse;\n }\n "
        },
        {
          "filename": "game/csgo/pak01_dir/resource/csgo_english.txt",
          "status": "modified",
          "additions": 55,
          "deletions": 11,
          "changes": 66,
          "patch": "@@ -2426,6 +2426,7 @@\n \t\t\"NewItemMethod_CommunityMarketPurchase\"\t\"You Received from the Community Market:\"\n \n \t\t\"ItemHistory_ActionWithTime\"\t\t\t\t\t\t\t\t\t\"%s1 on %s2\"\n+\t\t\"ItemHistory_Action_GSCreate\"\t\t\t\t\t\t\t\t\t\"Created\"\n \t\t\"ItemHistory_Action_GenericAdd\"\t\t\t\t\t\t\t\t\t\"Added\"\n \t\t\"ItemHistory_Action_GenericRemove\"\t\t\t\t\t\t\t\t\"Removed or modified\"\n \t\t\"ItemHistory_Action_Traded\"\t\t\t\t\t\t\t\t\t\t\"Traded\"\n@@ -2489,6 +2490,9 @@\n \t\t\"ItemHistory_Action_TournamentDrop\"\t\t\t\t\t\t\t\t\"Earned a souvenir drop\"\n \t\t\"ItemHistory_Action_TemplateItemGrant\"\t\t\t\t\t\t\t\"Earned\"\n \t\t\"ItemHistory_Action_Market_Add\"\t\t\t\t\t\t\t\t\t\"Received from the Community Market\"\n+\t\t\"ItemHistory_Action_Market_Sealed\"\t\t\t\t\t\t\t\t\"Created listing on the Steam Community Market\"\n+\t\t\"ItemHistory_Action_Market_Unsealed\"\t\t\t\t\t\t\t\"Removed listing from the Community Market\"\n+\t\t\"ItemHistory_Action_Market_SoldSealed\"\t\t\t\t\t\t\t\"Sold on the Steam Community Market\"\n \n \t\t\"ItemHistory_Transaction_Delete\"\t\t\t\t\t\t\t\t\"You deleted\"\n \t\t\"ItemHistory_Transaction_Craft\"\t\t\t\t\t\t\t\t\t\"Crafted\"\n@@ -2651,6 +2655,7 @@\n \t\t\"Attrib_NeverTradableButHasAfterDate1\"\t\t\"This item is not tradable and is not marketable.\"\n \t\t\"Attrib_NeverTradableButHasAfterDate2\"\t\t\"After use, items received will have a trade restriction until %s1\"\n \t\t\"Attrib_TradeProtectedEscrowDate\"\t\t\t\"⇆ This item is trade-protected and cannot be consumed, modified, or transferred until %s1\"\n+\t\t\"Attrib_TradeProtectedEscrowMarket\"\t\t\t\"⇆ This item is listed on the Steam Community Market and cannot be consumed or modified while listed.\"\n \t\t\"Attrib_TradableAfterDate\"\t\t\t\t\t\"Tradable After %s1\"\n \t\t\"Attrib_TradableMarketableAfterDate\"\t\t\"Tradable/Marketable After %s1\"\n \t\t\"Attrib_MarketableWithRestrictions\"\t\t\t\"Sellable Immediately on the Steam Community Market\"\n@@ -39494,6 +39499,7 @@\n \t\t\"SFUI_InvContextMenu_preview_musickit\"       \"Inspect - Preview Music\"\n \t\t\"SFUI_InvContextMenu_decodable\"     \"Unlock Container\"\n \t\t\"SFUI_InvContextMenu_sell\"\t\t\t\"Sell On Community Market\"\n+\t\t\"SFUI_InvContextMenu_marketlisting\"\t\"View Market Listing\"\n \t\t\"SFUI_InvContextMenu_openloadout\"   \"View Loadout Slot\"\n \t\t\"SFUI_InvContextMenu_inspectcase\"\t\"Open...\"\n \t\t\"SFUI_InvContextMenu_useitem\"\t    \"Use Item\"\n@@ -42913,6 +42919,8 @@\n \t\t\"SFUI_Settings_Network_Bandwidth_40mbps\"   \"4 Mbps\"\n \t\t\"SFUI_Settings_Network_Bandwidth_Max\"\t   \"Unrestricted\"\n \n+\t\t\"SFUI_Settings_Volatile_Limit_Unlimited\"\t\"Unlimited\"\n+\n \t\t\"SFUI_FeatureUnavailableDuringBeta\"\t\t\"Unavailable During Beta\"\n \n \t\t\"SFUI_Settings_Always_Show_Inventory\"\t\"Always Show Inventory\"\n@@ -48033,6 +48041,7 @@\n \t\t\"inv_context_remove_patch\"\t\t\t\"Remove Patch\"\t\t\n \t\t\"inv_context_openloadout\"\t\t\t\"View in Loadout\"\n \t\t\"inv_context_sell\"\t\t\t\t\t\"Sell On Community Market\"\n+\t\t\"inv_context_marketlisting\"\t\t\t\"View Market Listing\"\n \t\t\"inv_context_tradeup_add\"\t\t\t\"Use With Trade Up Contract\"\n \t\t\"inv_context_tradeup_remove\"\t\t\"Remove From Trade Up Contract\"\n \t\t\"inv_context_open_contract\"\t\t\t\"Open Contract\"\n@@ -48090,6 +48099,7 @@\n \t\t\"inv_session_prop_updated\"\t\t\t\"Updated!\"\n \t\t\"inv_session_prop_quest_reward\"\t\t\"Reward!\"\n \t\t\"inv_session_prop_xpshopredeem\"\t\t\"New!\"\n+\t\t\"inv_session_prop_marketlisting\"\t\"<img src='file://{images}/icons/ui/coupon.svg' class='item-tile__onmarket'/> On Market\"\n \t\t\"inv_equipped_item\"\t\t\t\t\t\"Equipped <b>{s:name}</b> for <b>{s:team}</b>\"\n \t\t\"inv_equipped_item_noteam\"\t\t\t\"Equipped <b>{s:name}</b>\"\n \t\t\"inv_unequipped_item\"\t\t\t\t\"Unequipped <b>{s:name}</b>\"\n@@ -51056,7 +51066,7 @@\n \t\t\"laptop_app_version\"\t\t\t\t\t\t\"v 1.1.0.2000\"\n \n \t\t\"dealer_offer_attachment_title\"\t\t\t\t\t\t\t\"{s:item-name}\"\n-\t\t\"dealer_offer_attachment_wear\"\t\t\t\t\t\t\"{s:item-rarity}\"\n+\t\t\"dealer_offer_attachment_wear\"\t\t\t\t\t\t\t\"{s:item-rarity}\"\n \t\t\"dealer_offer_attachment_remaining_title\"\t\t\t\t\"OFFER #{d:offer-total}\"\n \t\t\"dealer_offer_attachment_remaining\"\t\t\t\t\t\t\"Offer #{d:offer-total}\"\n \t\t\"dealer_offer_received_count\"\t\t\t\t\t\t\t\"<b>{s:offer-count}</b> Offer\"\n@@ -51071,8 +51081,8 @@\n \t\t\"user_btn_purchase_desc_purchase\"\t\t\"Hold to purchase this item. After purchase, the Terminal is discarded.\"\n \t\t\"user_btn_purchase_desc_continue\"\t\t\"Hold to permanently decline this offer and see the next one.\"\n \t\t\"user_btn_purchase_desc_end\"\t\t\"Decline the final offer and discard this Terminal.\"\n-\t\t\"user_btn_purchase_title\"\t\t\t\"<b>{s:offer-count} Offer</b> - Suggested Responses\"\n-\t\t\"user_btn_purchase_final_title\"\t\t\"<b>Final Offer</b> - Suggested Responses\"\n+\t\t\"user_btn_purchase_title\"\t\t\t\"{s:offer-count} - Offer\"\n+\t\t\"user_btn_purchase_final_title\"\t\t\"<b>Final Offer</b>\"\n \t\t\"user_btn_decline_desc\"\t\t\t\t\"Decline this offer and see another one\"\n \t\t\"user_btn_accept\"\t\t\"Accept Offer <b>{s:price}</b>\"\n \t\t\"user_btn_accept_final\"\t\"Accept Final Offer <b>{s:price}</b>\"\n@@ -51094,6 +51104,18 @@\n \t\t\"user_btn_pause\"\t\t\"Pause Deal\"\n \t\t\"user_btn_end\"\t\t\t\"Decline Final Offer\"\n \n+\t\t\"user_message_limit_0\"\t\t\"I can do up to <b>{s:limit-setting}</b>.\"\n+\t\t\"user_message_limit_1\"\t\t\"How about <b>{s:limit-setting}</b> as the ceiling.\"\n+\t\t\"user_message_limit_2\"\t\t\"Up to <b>{s:limit-setting}</b> works for me.\"\n+\t\t\"user_message_limit_3\"\t\t\"<b>{s:limit-setting}</b> cap is good.\"\n+\t\t\"user_message_limit_unlimited_0\"\t\"<b>No max</b>, I want to see it all.\"\n+\t\t\"user_message_limit_unlimited_1\"\t\"<b>Blank check</b>. Don't worry about the wallet.\"\n+\t\t\"user_message_limit_unlimited_2\"\t\"I'm here to buy. <b>Show me everything</b>.\"\n+\t\t\"user_message_limit_unlimited_3\"\t\"If it shoots, I'm interested.<b> No limits</b>.\"\n+\t\t\"user_message_limit_unlimited_4\"\t\"Sky's the limit\"\n+\t\t\"offer_limit_setting\"\t\t\"Offer limit: {s:limit}\"\n+\t\t\"offer_limit_setting_interface\"\t\t\"Offer limit: {s:limit} <img src='file://{images}/icons/ui/expand.svg' class='expand-icon'/>\"\n+\n \t\t\"dealer_offer_Unknown\"\t\t\t\t\t\t\t\"-\"\n \t\t\"dealer_offer_1\"\t\t\t\t\t\t\t\t\"1st\"\n \t\t\"dealer_offer_2\"\t\t\t\t\t\t\t\t\"2nd\"\n@@ -51110,7 +51132,9 @@\n \t\t\"declined_offer_tooltip\"\t\"Declined offer\"\n \t\t\"future_offer_tooltip\"\t\t\"Offer not yet revealed.\"\n \t\t\"laptop_expiration_tooltip\"\t\t\"Time remaining until this Uplink Terminal and its offers expire.\"\n+\t\t\"laptop_max_offer_tooltip\"\t\t\"Set your Max Offer Limit. You will only receive offers under that limit. You can change it at any time.\"\n \t\t\"collection_xp_tooltip\"\t\t\t\"Earn XP for viewing the offers in this collection. Open to see progress and redeem XP.\"\n+\t\t\"terminal_offer_limit_tooltip\"\t\t\"Update your max offer limit. The Arms Dealer will only show you offers up to that limit.\"\n \t\t\"popup_lootlist_title\"\t\t\t\"Collection Catalog XP\"\n \t\t\"popup_lootlist_desc\"\t\t\t\"Earn XP for viewing the offers in this collection\"\n \t\t\"popup_lootlist_progress\"\t\t\"Seen {d:seen}/{d:total} offers\"\n@@ -51121,21 +51145,25 @@\n \t\t\"popup_vpn_status_disconnected\"\t\"Status: Disconnected\"\n \t\t\"popup_signal_full\" \t\t\t\"Full Signal\"\n \t\t\"popup_signal_ok\" \t\t\t\t\"Strong Signal\"\n+\t\t\"popup_offer_limit_desc\"\t\t\"Update your max offer limit for all future offers\"\n \t\t\"laptop_battery_tooltip\" \t\t\"Battery Charge: {d:percent}%\"\n \t\t\"laptop_original_seal_tooltip\" \t\"Any item purchased from this Uplink Terminal will come with an Original Owner Certificate, which is valid while you are the owner.\"\n \t\t\"laptop_zoom_tooltip\" \t\t\t\"Scroll mouse wheel to zoom in and out\"\n \t\t\"laptop_pan_tooltip\" \t\t\t\"Hold 'Shift' key and drag to pan the camera\"\n \t\t\"laptop_pricing_tooltip\"\t\t\"Prices are global and adjusted automatically based on demand for each item in this collection.\"\n \n-\n+\t\t\"dealer_message_set_offer_limit_0\"\t\t\"First things First. How much are you authorized to drop?\"\n+\t\t\"dealer_message_set_offer_limit_1\"\t\t\"Lets get this out of the way.<!--.25--> What’s your limit?\"\n+\t\t\"dealer_message_set_offer_limit_2\"\t\t\"Before we get started...<!--.25--> What’s the cap? How much are you authorized to drop?\"\n+\t\t\n \t\t\"dealer_message_start_0\"  \t\"This stuff's contractor issue across the board.<!--.25-->All the bells and whistles. None of the paperwork.\"\n \t\t\"dealer_message_start_1\"  \t\"I'm moving gray channel stock, no paper.<!--.25-->Don't worry: they're cold. Out of circulation for years, no one's looking for them.<!--.25-->Plus they still shoot when you point them, if you're curious.\"\n \t\t\"dealer_message_start_2\"  \t\"Customs in Ahradan froze my cargo this morning. I tried thawing it out with a sob story about medical equipment and some poor dying... whoever.<!--.25-->That didn't work. But the briefcase full of money did.<!--.25-->How about we take a look at these dialysis machines before I get them to the orphans.\"\n \t\t\"dealer_message_start_3\"  \t\"Regime change just went down in one of the 'stans.<!--.25-->The depot doors swung open and I picked through the pile myself.<!--.25-->I'm only selling the sterile pieces. Take a look.\"\n \t\t\"dealer_message_start_4\"  \t\"The stuff I've got today is all clean.<!--.25-->As far as anyone knows, yours are the first hands they've passed through.\"\n \t\t\"dealer_message_start_5\"  \t\"Sterile pieces, no serials, perfect action.<!--.25-->A war tribunal would call these evidence.<!--.25-->You and I know they're goddamn masterpieces.\"\n \t\t\"dealer_message_start_6\"  \t\"This whole shipment is exotics recently liberated from a parade unit.<!--.25-->Marched around a lot. Never fired.\"\n-\t\t\"dealer_message_start_7\"  \t\"Good. It's you.<!--.25-->My other clients always want to know how I got what I'm selling. I hate that.<!--.25-->All you ever want to know is if it's the best stuff on the market.<!--.25-->Guess what: It is.\"\n+\t\t\"dealer_message_start_7\"  \t\"My other clients always want to know how I got what I'm selling. I hate that.<!--.25-->All you ever want to know is if it's the best stuff on the market.<!--.25-->Guess what: It is.\"\n \t\t\"dealer_message_start_8\"  \t\"Peace agreement in Drosvik. I love peace.<!--.25-->Because I've got a general with a lot of debts and a fully stocked armory gathering dust.<!--.25-->I mean...<!--.25-->Also because peace is good, obviously. Innocent lives and...<!--.25-->What am I saying, you don't care.\"\n \t\t\"dealer_message_start_9\"  \t\"This load's got exotics from a gray channel diversion.<!--.25-->Unusual calibers, not for amateurs. You'll love 'em.\"\n \t\t\"dealer_message_start_10\"  \t\"This is embarrassing.<!--.25-->I must have accidentally mislabeled a crate on my shipping manifest.<!--.25-->Well. A few dozen crates.<!--.25-->How about you help me make this inventory disappear before the port authority looks into it.\"\n@@ -51159,7 +51187,6 @@\n \t\t\"dealer_message_start_28\"\t\"Perennial hot zone down south just had its bi-annual parliament collapse.<!--.25-->Bunch of local armories busted open like pinatas.\"\n \t\t\"dealer_message_start_29\"\t\"Port authority inspector called this shipment irregular last Friday.<!--.25-->By Monday his daughter's got enough tuition money to attend Stamwick and the shipment is farm tools again.<!--.25-->What can I say, education's important. Let's look at some farm tools.\"\n \n-\n \t\t\"dealer_message_resume_0\"  \t\"<!--1-->You're back. Good. Deal's still on the table.\"\n \t\t\"dealer_message_resume_1\"  \t\"<!--1-->Needed a minute to think about it? Not a problem.\"\n \t\t\"dealer_message_resume_2\"  \t\"<!--1-->I figured you'd be back.\"\n@@ -51222,7 +51249,6 @@\n \t\t\"dealer_message_next_offer_39\"   \"<!--1-->Not a problem. I wouldn't have bought that either. Now this, on the other hand...\"\n \t\t\"dealer_message_next_offer_40\"   \"<!--1-->Making me go all the way in the back for the premium shelf stuff, huh? Alright, you got it.\"\n \n-\n \t\t\"dealer_message_last_offer_0\"\t\"<!--0-->Alright, last and final offer. Take it or leave it.\"\n \t\t\"dealer_message_last_offer_1\"\t\"<!--0-->Consider this my final offer.\"\n \t\t\"dealer_message_last_offer_2\"\t\"<!--0-->Final offer. Take it or leave it, let's stop wasting my time.\"\n@@ -51249,7 +51275,7 @@\n \t\t\"dealer_message_timerexpired_7\"\t\t\"<!--.1-->And here I thought I was helping you waste people.<!--.5-->Turns out you're just wasting my time.\"\n \t\t\"dealer_message_timerexpired_8\"\t\t\"<!--.1-->Deal's off.\"\t\n \t\t\"dealer_message_timerexpired_9\"\t\t\"<!--.1-->Time's up.\"\n-\t\t\"dealer_message_timerexpired_10\"\t\t\"<!--.1-->Alright, I'm officially bored. We're done here.\"\t\t\n+\t\t\"dealer_message_timerexpired_10\"\t\"<!--.1-->Alright, I'm officially bored. We're done here.\"\t\t\n \n \t\t\"dealer_message_open_check_out_0\"\t\t\"<!--.5-->This one had your name all over it. That's why I thought of you first. Let's seal this deal.\"\n \t\t\"dealer_message_open_check_out_1\"\t\t\"<!--.5-->An excellent decision. I'll make sure it's packed and ready.\"\n@@ -51258,8 +51284,8 @@\n \t\t\"dealer_message_open_check_out_4\"\t\t\"<!--.5-->Perfect. Let's do this.\"\t\t\n \t\t\"dealer_message_open_check_out_5\"\t\t\"<!--.5-->Good choice.\"\t\n \t\t\"dealer_message_open_check_out_6\"\t\t\"<!--.5-->Smartest choice you've ever made. Let's make it final.\"\t\t\n-\t\t\"dealer_message_open_check_out_7\"\t\t\"<!--.5-->Good. Let's make it official.\"\t\n-\t\t\n+\t\t\"dealer_message_open_check_out_7\"\t\t\"<!--.5-->Good. Let's make it official.\"\n+\n \t\t\"dealer_message_txn_xld_bailout_0\"\t\t\"<!--.5-->No rush. You know where to find me.\"\n \t\t\"dealer_message_txn_xld_bailout_1\"\t\t\"<!--.5-->I'm not going anywhere.\"\n \t\t\"dealer_message_txn_xld_bailout_2\"\t\t\"<!--.5-->I'll keep this one on the table for now.\"\n@@ -51327,12 +51353,30 @@\n \t\t\"dealer_message_addition_factory_new_1\"\t\"<!--.25-->And it's factory new. Pristine.\"\n \t\t\"dealer_message_addition_factory_new_2\"\t\"<!--.25-->Straight from the vault. Factory new.\"\n \t\t\"dealer_message_addition_factory_new_3\"\t\"<!--.25-->This one's factory new. Never fired.\"\n+\t\t\n+\t\t\"dealer_message_limit_first_time_0\"\t\t\"Good to know, I'll only show you offers up to {s:limit}.<!--.25--> Let's see what you need.\"\n+\t\t\"dealer_message_limit_first_time_2\"\t\t\"Only offer under {s:limit}, I'll keep that in mind.<!--.25--> Clock's ticking. Let's start.\"\n+\t\t\"dealer_message_limit_first_time_3\"\t\t\"Noted. Updated.<!--.25--> Here we go.\"\n+\t\t\"dealer_message_limit_first_time_unlimited_0\"\t\t\"No max, Excellent. I'll open the current catalog going forward.<!--.25--> Clock's ticking. Let's start.\"\n+\t\t\"dealer_message_limit_first_time_unlimited_1\"\t\t\"Roger. Uncapped. Now we’re getting serious.<!--.25--> Let's see what you need.\"\n+\n+\t\t\"dealer_message_limit_0\"\t\t\t\t\"Good to know, I'll only show you offers up to {s:limit}.\"\n+\t\t\"dealer_message_limit_1\"\t\t\t\t\"Only offers under {s:limit}, I'll keep that in mind.\"\n+\t\t\"dealer_message_limit_2\"\t\t\t\t\"Adjusting the parameters. Only offers up to {s:limit}.\"\n+\t\t\"dealer_message_limit_3\"\t\t\t\t\"Offers up to {s:limit}. Noted. Updated.\"\n+\t\t\"dealer_message_limit_4\"\t\t\t\t\"I’ll only pull what fits the tag, up to {s:limit}\"\n+\t\t\"dealer_message_limit_5\"\t\t\t\t\"{s:limit}, got the new cap\"\n+\t\t\"dealer_message_limit_6\"\t\t\t\t\"Understood. Resetting the filter for offers up to {s:limit}.\"\n+\t\t\"dealer_message_limit_unlimited_0\"\t\t\"No max, Excellent. I'll open the current catalog going forward.\"\n+\t\t\"dealer_message_limit_unlimited_1\"\t\t\"Got it, uncapped. If any thing exotic comes up I won't hold back.\"\n+\t\t\"dealer_message_limit_unlimited_2\"\t\t\"Music to my ears. If something that fits the bill shows up I won't hesitate to show you\"\n+\t\t\"dealer_message_limit_unlimited_3\"\t\t\"Roger. Uncapped. Now we’re getting serious.\"\n \n \t\t\"system_dealer_left_chat_0\"\t\t\t\t\"The Dealer has left your chat.\"\n \t\t\"system_dealer_join_chat_0\"\t\t\t\t\"{s:collection} Arms Deal Offers.<!--1.25-->Dealer Connected\"\n \t\t\"system_user_reject_offer_0\"\t\t\t\"{s:user-name} Declined Offer.\"\n-\t\t\n \n+\t\t\"system_user_updated_offer_limit_0\"\t\t\t\"Max Offer Limit updated to {s:limit}. You can update the setting at any time.\"\n \t\t////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n \t\t//Retakes\n \t\t////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
        },
        {
          "filename": "game/csgo/readonly_tools_asset_info.txt",
          "status": "modified",
          "additions": 12,
          "deletions": 0,
          "changes": 12,
          "patch": "@@ -123034,3 +123034,15 @@ panorama/images/map_icons/map_icon_de_warden.vsvg\n panorama/videos/limited_edition_variations.webm\n scripts/workshop_cvar_whitelist.txt\n maps/editor/zoo/scripts/input.vjs\n+panorama/images/econ/status_icons/maptoken_alpine_png.vtex\n+panorama/images/econ/status_icons/maptoken_alpine_small_png.vtex\n+panorama/images/econ/status_icons/maptoken_poseidon_png.vtex\n+panorama/images/econ/status_icons/maptoken_poseidon_small_png.vtex\n+panorama/images/econ/status_icons/maptoken_sanctum_png.vtex\n+panorama/images/econ/status_icons/maptoken_sanctum_small_png.vtex\n+panorama/images/econ/status_icons/maptoken_stronghold_png.vtex\n+panorama/images/econ/status_icons/maptoken_stronghold_small_png.vtex\n+panorama/images/econ/status_icons/maptoken_warden_png.vtex\n+panorama/images/econ/status_icons/maptoken_warden_small_png.vtex\n+materials/models/inventory_items/music_kit/label_cs2.vmat\n+materials/models/inventory_items/music_kit/label_cs2_color_psd_ad840642.vtex"
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000738\n-ServerVersion=2000738\n-PatchVersion=1.41.3.7\n+ClientVersion=2000744\n+ServerVersion=2000744\n+PatchVersion=1.41.3.8\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=10477407\n-VersionDate=Feb 25 2026\n-VersionTime=13:52:57\n+SourceRevision=10494140\n+VersionDate=Mar 04 2026\n+VersionTime=13:26:09"
        },
        {
          "filename": "game/csgo_community_addons/de_sanctum/de_sanctum_dir.txt",
          "status": "modified",
          "additions": 1025,
          "deletions": 1102,
          "changes": 2127,
          "patch": null
        },
        {
          "filename": "game/csgo_community_addons/de_warden/de_warden_dir.txt",
          "status": "modified",
          "additions": 4,
          "deletions": 2,
          "changes": 6,
          "patch": "@@ -372,7 +372,7 @@ materials/de_warden/monterey_cypress_bark/monterey_cypress_bark.vmat_c CRC:00716\n materials/de_warden/monterey_cypress_bark/monterey_cypress_bark_color_tif_a716819.vtex_c CRC:00543b56f9 size:1400212\n materials/de_warden/monterey_cypress_bark/monterey_cypress_bark_normal_tif_acf65e41.vtex_c CRC:00256f339d size:2798436\n materials/de_warden/monterey_cypress_bark/monterey_cypress_bark_vmat_g_tambientocclusion_9782fd5c.vtex_c CRC:00fbd446d5 size:2008\n-materials/de_warden/moss_01/moss_01.vmat_c CRC:001ca18853 size:4309\n+materials/de_warden/moss_01/moss_01.vmat_c CRC:00af8acde0 size:4392\n materials/de_warden/moss_01/moss_01_color_png_f4e9893b.vtex_c CRC:00d16dc9ff size:1400180\n materials/de_warden/moss_01/moss_01_height_png_1f83de80.vtex_c CRC:0046998172 size:1400244\n materials/de_warden/moss_01/moss_01_height_png_3a4cf3f3.vtex_c CRC:006d948792 size:1400292\n@@ -390,7 +390,7 @@ materials/de_warden/painted_bricks_worn/painted_bricks_worn.vmat_c CRC:000c454eb\n materials/de_warden/painted_bricks_worn/painted_bricks_worn_color_png_512d594c.vtex_c CRC:00c436afcd size:5594548\n materials/de_warden/painted_bricks_worn/painted_bricks_worn_height_png_adbf20cb.vtex_c CRC:009ee6d134 size:5594612\n materials/de_warden/painted_bricks_worn/painted_bricks_worn_normal_png_9c4f459.vtex_c CRC:00a10ff897 size:5594628\n-materials/de_warden/painted_concrete_01/painted_concrete_01.vmat_c CRC:001b4baecc size:4181\n+materials/de_warden/painted_concrete_01/painted_concrete_01.vmat_c CRC:006e9461af size:4312\n materials/de_warden/painted_concrete_01/painted_concrete_01_color_psd_4c3b9834.vtex_c CRC:00407790e1 size:5594468\n materials/de_warden/painted_concrete_01/painted_concrete_01_damaged_blend.vmat_c CRC:0003ba9900 size:7240\n materials/de_warden/painted_concrete_01/painted_concrete_01_damaged_blend_overlay.vmat_c CRC:00d739e772 size:7592\n@@ -604,8 +604,10 @@ materials/de_warden/worn_plaster_01/worn_plaster_01_color_tga_523055d3.vtex_c CR\n materials/de_warden/worn_plaster_01/worn_plaster_01_height_tga_32fbcc90.vtex_c CRC:00684b826b size:1400212\n materials/de_warden/worn_plaster_01/worn_plaster_01_height_tga_4cec3a67.vtex_c CRC:00d8479e8a size:1400212\n materials/de_warden/worn_plaster_01/worn_plaster_01_normal_tga_c8fb9d5a.vtex_c CRC:00b69c768f size:1400276\n+materials/de_warden/worn_plaster_02/worn_plaster_02.vmat_c CRC:0058855c09 size:4264\n materials/de_warden/worn_plaster_02/worn_plaster_02_color_png_fefea71f.vtex_c CRC:003b6b23b7 size:5594548\n materials/de_warden/worn_plaster_02/worn_plaster_02_height_png_7172ac85.vtex_c CRC:0032375bc6 size:5594564\n+materials/de_warden/worn_plaster_02/worn_plaster_02_height_png_762c4102.vtex_c CRC:00966b9c16 size:5594580\n materials/de_warden/worn_plaster_02/worn_plaster_02_normal_png_6772b05a.vtex_c CRC:000bba71de size:5594628\n materials/default/default_ao_tga_559f1ac6.vtex_c CRC:00aef61552 size:2200\n materials/default/default_bentnormal_tga_2023e987.vtex_c CRC:00f3748ef8 size:2272"
        }
      ]
    },
    {
      "event_id": "gh:afce635",
      "detected_at_utc": "2026-03-10T10:56:02.192Z",
      "commit_date_utc": "2026-02-25T22:53:49Z",
      "commit": {
        "sha": "afce63577859a4d15c32b6bebfc6a2d23eafdbd7",
        "short": "afce635",
        "message": "2000738 | 19 files | M DumpSource2/convars.txt,  M content/csgo/maps/editor/zoo/scripts/chess.js,  M content/csgo/maps/editor/zoo/scripts/point_script.d.ts,  M content/csgo/maps/editor/zoo/scripts/setup.js,  M game/bin/built_from_cl.txt,  M game/bin/linuxsteamrt64/libengine2_strings.txt,  M game/bin/linuxsteamrt64/libnetworksystem_strings.txt,  M game/csgo/bin/linuxsteamrt64/libclient_strings.txt,  M game/csgo/bin/linuxsteamrt64/libserver_strings.txt,  M game/csgo/pak01_dir.txt,  M game/csgo/pak01_dir/maps/editor/zoo/scripts/chess.js,  M game/csgo/pak01_dir/maps/editor/zoo/scripts/setup.js,  M game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt,  M game/csgo/readonly_tools_asset_info.txt,  M game/csgo/steam.inf,  M game/csgo_core/gameinfo.gi,  M game/csgo_core/gameinfo_branchspecific.gi, ?? content/csgo/maps/editor/zoo/scripts/input.js, ?? game/csgo/pak01_dir/maps/editor/zoo/scripts/input.js",
        "url": "https://github.com/SteamDatabase/GameTracking-CS2/commit/afce63577859a4d15c32b6bebfc6a2d23eafdbd7"
      },
      "classification": {
        "tags": [
          "scripts",
          "assets",
          "misc",
          "content-change"
        ],
        "important_files": [
          "content/csgo/maps/editor/zoo/scripts/chess.js",
          "content/csgo/maps/editor/zoo/scripts/input.js",
          "content/csgo/maps/editor/zoo/scripts/point_script.d.ts",
          "content/csgo/maps/editor/zoo/scripts/setup.js",
          "game/csgo/pak01_dir/maps/editor/zoo/scripts/chess.js",
          "game/csgo/pak01_dir/maps/editor/zoo/scripts/input.js",
          "game/csgo/pak01_dir/maps/editor/zoo/scripts/setup.js",
          "game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt"
        ]
      },
      "ai_summary": "Assets/UI/maps update (content/csgo/maps/editor/zoo/scripts/chess.js, content/csgo/maps/editor/zoo/scripts/input.js, content/csgo/maps/editor/zoo/scripts/point_script.d.ts).",
      "stats": {
        "files_changed": 19,
        "additions": 308,
        "deletions": 50
      },
      "files": [
        {
          "filename": "DumpSource2/convars.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 0,
          "changes": 3,
          "patch": "@@ -10779,6 +10779,9 @@ sv_weapon_swap_difficulty_near_hi_pri 2 (gamedll clientdll replicated release)\n sv_workshop_allow_other_maps true (gamedll release)\n \tWhen hosting a workshop collection, users can play other workshop map on this server when it is empty and then mapcycle into this server collection.\n \n+sv_workshop_map_save_data_max_filesize_mb 1 (gamedll release commandline_enforced)\n+\t<no description>\n+\n sys_minidumpexpandedspew true (developmentonly defensive)\n \t<no description>\n "
        },
        {
          "filename": "content/csgo/maps/editor/zoo/scripts/chess.js",
          "status": "modified",
          "additions": 33,
          "deletions": 11,
          "changes": 44,
          "patch": "@@ -303,7 +303,7 @@ function ChessJS() {\n                 [\"A\", \"Z\"],\n             ],\n             false,\n-            false\n+            false,\n         );\n         var peg$e6 = peg$otherExpectation(\"tag value\");\n         var peg$e7 = peg$classExpectation(['\"'], true, false);\n@@ -1390,7 +1390,7 @@ function ChessJS() {\n             throw peg$buildStructuredError(\n                 peg$maxFailExpected,\n                 peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n-                peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n+                peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos),\n             );\n         }\n     }\n@@ -3468,7 +3468,7 @@ function ChessJS() {\n     };\n }\n \n-const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE } = ChessJS();\n+const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE, validateFen } = ChessJS();\n \n let chess = new Chess();\n \n@@ -3497,13 +3497,7 @@ async function RunChess() {\n \n     while (!chess.isGameOver()) {\n         await Delay(0);\n-        let move;\n-        if (chess.turn() === BLACK) {\n-            move = await AIMove();\n-        } else {\n-            move = await AIMove();\n-        }\n-\n+        const move = await AIMove();\n         await AnimateMove(move);\n     }\n \n@@ -3667,6 +3661,7 @@ async function AIMove() {\n         undosNeeded--;\n     }\n     chess.move(bestMove);\n+    writeSaveKey(\"chess\", chess.fen());\n     return bestMove;\n }\n \n@@ -3737,7 +3732,17 @@ function GetFitness(color) {\n \n /** @param {Chess?} oldChess  */\n function Init(oldChess) {\n-    if (oldChess && !oldChess.isGameOver()) chess = oldChess;\n+    if (oldChess) {\n+        if (!oldChess.isGameOver()) {\n+            chess = oldChess;\n+        }\n+    } else {\n+        // Check if save data exists. Because script_zoo is not a workshop addon it won't find any unless the user ran with \"-addon\".\n+        const saveData = readSaveKey(\"chess\");\n+        if (validateFen(saveData).ok) {\n+            chess.load(saveData);\n+        }\n+    }\n     FindCenters();\n     Instance.SetNextThink(Instance.GetGameTime());\n }\n@@ -3784,3 +3789,20 @@ function shuffle(arr) {\n     }\n     return arr;\n }\n+\n+// Allows multiple scripts to use the same save without stepping on each other's toes\n+function readSaveKey(key) {\n+    const data = Instance.GetSaveData();\n+    try {\n+        return JSON.parse(data)[key];\n+    } catch {}\n+    return \"\";\n+}\n+function writeSaveKey(key, value) {\n+    let json = {};\n+    try {\n+        json = JSON.parse(Instance.GetSaveData());\n+    } catch {}\n+    json[key] = value;\n+    Instance.SetSaveData(JSON.stringify(json));\n+}"
        },
        {
          "filename": "content/csgo/maps/editor/zoo/scripts/input.js",
          "status": "added",
          "additions": 42,
          "deletions": 0,
          "changes": 42,
          "patch": "@@ -0,0 +1,42 @@\n+import { Instance, CSInputs, CSPlayerPawn } from \"cs_script/point_script\";\n+\n+const CSInputsValues = Object.values(CSInputs).filter((i) => typeof i === \"number\");\n+\n+/** @type {CSPlayerPawn | undefined} */\n+let inputPawn = undefined;\n+\n+Instance.OnPlayerChat(({ player, text }) => {\n+    if (text === \"!showinput\") {\n+        inputPawn = inputPawn == player?.GetPlayerPawn() ? undefined : player?.GetPlayerPawn();\n+    }\n+});\n+\n+/**\n+ * @param {string} name\n+ * @param {(input:CSInputs) => boolean} getter\n+ * @param {number} x\n+ * @param {number} y\n+ */\n+function printInputType(name, getter, x, y) {\n+    const inputs = CSInputsValues.filter(getter).map((i) => CSInputs[i]);\n+    let inputText = inputs.length === 0 ? \"NONE\" : inputs.join(\"|\");\n+    Instance.DebugScreenText({ text: `${name}: ${inputText}`, x, y });\n+}\n+\n+/**\n+ * @param {CSPlayerPawn | undefined} pawn\n+ */\n+function printInput(pawn) {\n+    if (pawn) {\n+        printInputType(\"Pressed\", pawn.IsInputPressed.bind(pawn), 100, 500);\n+        printInputType(\"Just Pressed\", pawn.WasInputJustPressed.bind(pawn), 100, 510);\n+        printInputType(\"Just Released\", pawn.WasInputJustReleased.bind(pawn), 100, 520);\n+    }\n+}\n+\n+Instance.OnActivate(() => Instance.SetNextThink(Instance.GetGameTime()));\n+Instance.OnScriptReload({ after: () => Instance.SetNextThink(Instance.GetGameTime()) });\n+Instance.SetThink(() => {\n+    Instance.SetNextThink(Instance.GetGameTime());\n+    printInput(inputPawn);\n+});"
        },
        {
          "filename": "content/csgo/maps/editor/zoo/scripts/point_script.d.ts",
          "status": "modified",
          "additions": 84,
          "deletions": 12,
          "changes": 96,
          "patch": "@@ -61,6 +61,21 @@ declare module \"cs_script/point_script\"\n          */\n         OnScriptReload<T>(config: { before?: () => T, after?: (memory: T) => void }): void;\n \n+        /**\n+         * Writes save data associated with this workshop addon.\n+         * Will synchronously write to disk every time this is called.\n+         * @experimental This method is experimental and may experience breaking changes.\n+         * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n+         */\n+        SetSaveData(data: string): void;\n+        /**\n+         * Retrieves the save data associated with this workshop addon.\n+         * Will synchronously read from disk the first time this is called.\n+         * @experimental This method is experimental and may experience breaking changes.\n+         * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n+         */\n+        GetSaveData(): string;\n+\n         /** Called at a specified time. Control when this is run using SetNextThink. */\n         SetThink(callback: () => void): void;\n         /** Set when the OnThink callback should next be run. The exact time will be on the tick nearest to the specified time, which may be earlier or later. */\n@@ -88,12 +103,17 @@ declare module \"cs_script/point_script\"\n         /** Called when a player defuses the c4 */\n         OnBombDefuse(callback: (event: { plantedC4: Entity, defuser: CSPlayerPawn }) => void): void;\n         /**\n-         * Called when a CSPlayerPawn is about to take damage\n+         * Called immediately before a CSPlayerPawn takes damage to armor and health.\n+         * Called after hitgroup modifications are applied such as headshot multiplier.\n+         * This won't be called if the player would take no damage. Such as if they're frozen or invulnerable or if friendly fire would disable the damage.\n          * @param callback\n-         * Return `{ damage: N }` to modify the amount of damage. Armor and hitgroup modifications will be applied to this new value.\n+         * Return `{ damage: N }` to modify the amount of damage.\n+         * Return `{ damageFlags: event.damageFlags | CSDamageFlags.IGNORE_ARMOR }` to have the damage pierce armor.\n          * Return `{ abort: true }` to cancel the damage event.\n+         * @experimental This method is experimental and may experience breaking changes.\n+         * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n          */\n-        OnBeforePlayerDamage(callback: (event: BeforePlayerDamageEvent) => BeforePlayerDamageModify | { abort: true } | void): void;\n+        OnModifyPlayerDamage(callback: (event: ModifyPlayerDamageEvent) => ModfiyPlayerDamageResult | void): void;\n         /** \n          * Called when a player has taken damage.\n          */\n@@ -170,6 +190,8 @@ declare module \"cs_script/point_script\"\n         /** Issue a command. */\n         ServerCommand(command: string): void;\n \n+        /** @deprecated This method will be removed in a future update */\n+        OnBeforePlayerDamage(callback: () => any): void;\n         /** @deprecated This method will be removed in a future update */\n         OnBeforeReload(callback: () => any): void;\n         /** @deprecated This method will be removed in a future update */\n@@ -291,6 +313,7 @@ declare module \"cs_script/point_script\"\n         PREVENT_DEATH = 1 << 3,\n         FORCE_DEATH = 1 << 4,\n         SUPPRESS_DAMAGE_MODIFICATION = 1 << 5,\n+        IGNORE_ARMOR = 1 << 6,\n     }\n \n     export enum CSHitGroup {\n@@ -306,6 +329,23 @@ declare module \"cs_script/point_script\"\n         NECK,\n     }\n \n+    export enum CSInputs {\n+        NONE = 0,\n+        FORWARD = 1 << 0,\n+        BACK = 1 << 1,\n+        LEFT = 1 << 2,\n+        RIGHT = 1 << 3,\n+        WALK = 1 << 4,\n+        DUCK = 1 << 5,\n+        JUMP = 1 << 6,\n+        USE = 1 << 7,\n+        ATTACK = 1 << 8,\n+        ATTACK2 = 1 << 9,\n+        RELOAD = 1 << 10,\n+        SHOW_SCORES = 1 << 11,\n+        LOOK_AT_WEAPON = 1 << 12,\n+    }\n+\n     interface BaseTraceConfig {\n         start: Vector;\n         end: Vector;\n@@ -358,24 +398,28 @@ declare module \"cs_script/point_script\"\n         hitGroup: CSHitGroup;\n     }\n \n-    interface BeforePlayerDamageEvent {\n+    interface ModifyPlayerDamageEvent {\n         /** The victim that is taking damage */\n         player: CSPlayerPawn;\n-        /** The amount of damage being applied, before armor and hitgroup modifications */\n+        /** The amount of damage being applied, after hitgroup modifications and before armor modifications */\n         damage: number;\n-        /** The type or types of damage. */\n+        /** The types of damage. */\n         damageTypes: CSDamageTypes;\n         /** The flags configuring how to interpret the damage. */\n         damageFlags: CSDamageFlags;\n+        /** The hit group where the damage occured. */\n+        hitGroup: CSHitGroup;\n         /** The entity applying the damage. For bullets this is the owner of the gun. For grenades this is the exploding projectile. */\n-        inflictor?: Entity;\n+        inflictor: Entity;\n         /** The entity credited with causing the damage. For bullets this is the shooter. For grenades this is the thrower. */\n         attacker?: Entity;\n         /** The weapon used. For grenades this will not be present because the weapon is often removed before the projectile explodes. */\n         weapon?: CSWeaponBase;\n     }\n \n-    interface BeforePlayerDamageModify {\n+    interface ModfiyPlayerDamageResult {\n+        /** If true, stop processing this damage */\n+        abort?: boolean;\n         /** The amount of damage being applied, before armor and hitgroup modifications */\n         damage?: number;\n         /** The type or types of damage. */\n@@ -387,14 +431,16 @@ declare module \"cs_script/point_script\"\n     interface PlayerDamageEvent {\n         /** The victim that has taken damage */\n         player: CSPlayerPawn;\n-        /** The actual health lost after armor and hitgroup modifications */\n+        /** The actual health lost after hitgroup and armor modifications */\n         damage: number;\n         /** The type or types of damage. */\n         damageTypes: CSDamageTypes;\n         /** The flags configuring how to interpret the damage. */\n         damageFlags: CSDamageFlags;\n+        /** The hit group where the damage occured. */\n+        hitGroup: CSHitGroup;\n         /** The entity applying the damage. For bullets this is the owner of the gun. For grenades this is the exploding projectile. */\n-        inflictor?: Entity;\n+        inflictor: Entity;\n         /** The entity credited with causing the damage. For bullets this is the shooter. For grenades this is the thrower. */\n         attacker?: Entity;\n         /** The weapon used. For grenades this will not be present because the weapon is often removed before the projectile explodes. */\n@@ -447,7 +493,7 @@ declare module \"cs_script/point_script\"\n         Kill(): void;\n         Remove(): void;\n \n-        /** @deprecated This method will be removed in a future update */\n+        /** @deprecated This overload will be removed in a future update */\n         Teleport(newPosition: Vector | null, newAngles: QAngle | null, newVelocity: Vector | null): void;\n         /** @deprecated This method will be removed in a future update */\n         GetLocalVelcoity(): Vector;\n@@ -529,6 +575,24 @@ declare module \"cs_script/point_script\"\n         GetPlayerController(): CSPlayerController | undefined;\n         /** Gets the controller that this player pawn was originally spawned for. */\n         GetOriginalPlayerController(): CSPlayerController;\n+        /**\n+         * @returns `true` if specified inputs are pressed at the end of the current tick.\n+         * @experimental This method is experimental and may experience breaking changes.\n+         * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n+         */\n+        IsInputPressed(inputs: CSInputs): boolean;\n+        /**\n+         * @returns `true` if specified inputs went from released to pressed at some point during the current tick.\n+         * @experimental This method is experimental and may experience breaking changes.\n+         * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n+         */\n+        WasInputJustPressed(inputs: CSInputs): boolean;\n+        /**\n+         * @returns `true` if specified inputs went from pressed to released at some point during the current tick.\n+         * @experimental This method is experimental and may experience breaking changes.\n+         * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n+         */\n+        WasInputJustReleased(inputs: CSInputs): boolean;\n         FindWeapon(name: string): CSWeaponBase | undefined;\n         FindWeaponBySlot(slot: CSGearSlot): CSWeaponBase | undefined;\n         GetActiveWeapon(): CSWeaponBase | undefined;\n@@ -539,14 +603,22 @@ declare module \"cs_script/point_script\"\n         GiveNamedItem(name: string, autoDeploy?: boolean): void;\n         GetArmor(): number;\n         SetArmor(value: number): void;\n+        IsDucking(): boolean;\n+        IsDucked(): boolean;\n+        IsNoclipping(): boolean;\n+\n+        /** @deprecated This method will be removed in a future update */\n         IsCrouching(): boolean;\n+        /** @deprecated This method will be removed in a future update */\n         IsCrouched(): boolean;\n-        IsNoclipping(): boolean;\n     }\n \n     export class PointTemplate extends Entity {\n         ForceSpawn(origin?: Vector, angle?: QAngle): Entity[] | undefined;\n     }\n+\n+    /** @deprecated This enum will be removed in a future update */\n+    export enum CSDamageType { }\n }\n \n /**"
        },
        {
          "filename": "content/csgo/maps/editor/zoo/scripts/setup.js",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,4 +1,4 @@\n-import { CSDamageFlags, CSLoadoutSlot, Instance } from \"cs_script/point_script\";\n+import { CSDamageFlags, Instance } from \"cs_script/point_script\";\n \n Instance.ServerCommand(\"mp_warmup_offline_enabled 1\");\n Instance.ServerCommand(\"mp_warmup_pausetimer 1\");\n@@ -9,7 +9,7 @@ Instance.OnPlayerActivate(({ player }) => {\n     Instance.ServerCommand(\"bot_add\");\n });\n \n-Instance.OnBeforePlayerDamage(({ player }) => {\n+Instance.OnModifyPlayerDamage(({ player }) => {\n     if (player.GetOriginalPlayerController().IsBot()) {\n         return { damageFlags: CSDamageFlags.PREVENT_DEATH };\n     }"
        },
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-10470273\n+10477372"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libengine2_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -4643,6 +4643,7 @@ Force full sendtable sending path.\n Force toggle hibernation state\n Force uncompressed update\n Force user input to this split screen player.\n+ForceFixedAppIds\n Forced by cvar\\n\n Forcing engine to render for the next %d frames\\n\n Forward"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libnetworksystem_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 0,
          "changes": 2,
          "patch": "@@ -620,6 +620,7 @@ Netchan queued message new high water mark reached by %s at %d messages\\n\n Network System Initialized\\n\n Network field tried to use a priority that has not been registered!\\n\n Network socket '%s' opened on port %d\\n\n+NetworkConfigLimits\n NetworkMessages::FindOrCreateNetMessage: Message %s is of size %d in leaf code, but protobuf object is size %lld, the added fields should be placed into object derived from protobuf and then CNetMessagePB references that\\n\n NetworkReplayCompatField_t %s::%s on field '%s' is using possibly bogus this pointer from class %s!\\n\n NetworkSystem\n@@ -663,6 +664,7 @@ ProcessMessages\n ProcessOverride encountered unknown directive NetworkOverrideType_t(%d)\\n\n Processing\n Proto \n+PublicUniverse\n QAngle\n Quaternion\n QuaternionStorage"
        },
        {
          "filename": "game/csgo/bin/linuxsteamrt64/libclient_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -17457,6 +17457,7 @@ JZIX\n J\\nHBF\n J`KL\n Japanese\n+Jg-a~\n Job %s has EXCEEDED TIMEOUT THRESHOLD exclusive time: %ums >= %ums\\n\n Job %s has EXCEEDED TIMEOUT THRESHOLD yield time: %ums >= %ums\\n\n Job %s has spent >%2.3fms without yielding: %2.3fms\\n"
        },
        {
          "filename": "game/csgo/bin/linuxsteamrt64/libserver_strings.txt",
          "status": "modified",
          "additions": 40,
          "deletions": 0,
          "changes": 40,
          "patch": "@@ -1391,13 +1391,15 @@ $light_emissive\n (config:{text: string, x: number, y: number, duration: number, color: Color})\n (connectionId:number)\n (damage: number, info?: Object)\n+(data: string)\n (debug)\n (default)\n (duration: number)\n (from angle, to angle, time) - Spherical lerp of angle from->to based on time\n (hInflictor, hAttacker, flDamage) - Allocate a damageinfo object, used as an argument to TakeDamage(). Call DestroyDamageInfo( hInfo ) to free the object.\n (health: number)\n (immunityColor: color)\n+(inputs:number)\n (int iIndex, int iPoint, Vector vOrigin, QAngle qAngles ) - Set the transform for a control on a particle effect\n (int iIndex, int iPoint, Vector vOrigin, Vector vecForward ) - Set the origin and forward direction for a control on a particle effect\n (int iIndex, int iPoint, Vector vecOffset ) - Set the linear offset for a control on a particle effect\n@@ -2725,6 +2727,7 @@ $light_emissive\n 15CCSHitboxSystem\n 15CCSObserverPawn\n 15CCSPetPlacement\n+15CCSScriptSystem\n 15CCSUsrMsg_Shake\n 15CCSUsrMsg_Train\n 15CCSWeaponSystem\n@@ -5496,6 +5499,7 @@ $light_emissive\n 22CUserMessageScreenTilt\n 22CUserMessageWaterShake\n 22CUserMessage_DllStatus\n+22IAddonListChangeNotify\n 22IBoneTransformOverride\n 22IEconItemSetDefinition\n 22IEventRegisterCallback\n@@ -5711,6 +5715,7 @@ $light_emissive\n 24CGameSystemStaticFactoryI14CGameTimescaleS0_E\n 24CGameSystemStaticFactoryI15CCSAddonManagerS0_E\n 24CGameSystemStaticFactoryI15CCSHLTVDirectorS0_E\n+24CGameSystemStaticFactoryI15CCSScriptSystemS0_E\n 24CGameSystemStaticFactoryI15CCSWeaponSystemS0_E\n 24CGameSystemStaticFactoryI15CItemGenerationS0_E\n 24CGameSystemStaticFactoryI16CFuncMoverSystemS0_E\n@@ -7025,6 +7030,7 @@ $light_emissive\n >KS[ac5>IU^c+0<LZc\n ?33s?\n ???CRR_Response bogus index\n+?KA8\n @player_start_teleport_destination\n @workshop\n A CT bot doesn't know what to do while the bomb is planted!\\n\n@@ -7144,7 +7150,9 @@ APPSYSTEM: In ConnectGameInterfaces(), tried to use different connection modes!\\\n APPSYSTEM: In ReconnectGameInterface(), tried to use different connection modes!\\n\n AREA_DAMAGE\n ASN1 lib\n+ATTACK\n ATTACK END\\n\n+ATTACK2\n ATTACKING: %s\n AVOID\n AVelocity: %.2f %.2f %.2f\n@@ -7227,6 +7235,8 @@ Additive Blend\n Additive Blend (Masked): %.2f%%\n Additive Blend: %.2f%%\n AdditiveAnims\n+Addon save file exceeds max size setting (%s)\\n\n+Addon save file reached max size for this server (%s)\\n\n Adds CSS class(es) to the panel\n Adds a team (by index) to the broadcast list\n Adds an I/O connection that will call the named function on the passed entity when the specified output fires.\n@@ -7432,6 +7442,7 @@ AwardText\n Axis\n AxisAngleToQuaternion\n B-Spline\n+BACK\n BADFUNCTIONPOINTER\n BANG!\n BAddToMessage\n@@ -7884,6 +7895,7 @@ CCSPointPulseAPI::OnRoundEnd\n CCSPointPulseAPI::OnRoundFreezeEnd\n CCSPointPulseAPI::OnRoundStart\n CCSPointPulseSystem\n+CCSScriptSystem\n CCSUsrMsg_AdjustMoney_t\n CCSUsrMsg_CallVoteFailed_t\n CCSUsrMsg_CurrentRoundOdds_t\n@@ -8635,6 +8647,7 @@ CS2Bullets\n CS2ClientPerfData\n CSDamageFlags\n CSDamageType\n+CSDamageTypes\n CSForceTeamThink\n CSGO Compute AI Data\\n\n CSGO: CSGO: Compute Hiding spots [ disabled for survival maps ]\\n\n@@ -8646,6 +8659,7 @@ CSGO: Compute Hiding spots\n CSGOVScriptGameSystem\n CSGearSlot\n CSHitGroup\n+CSInputs\n CSLoadoutSlot\n CSMovementVelocityQuantizer_t\n CSObserverPawn\n@@ -9422,6 +9436,7 @@ DSA-SHA1-old\n DSA-old\n DSO lib\n DSO support routines\n+DUCK\n DUCKING \n DVCS\n DX11\n@@ -10102,6 +10117,7 @@ FLASHBANG: %0.2f \\n\n FOLLOW\n FORCE_DEATH\n FORCE_NOT_USED\n+FORWARD\n FOV2D\n FPlayerCanRespawn: pPlayer=0\n FX_FireBullets: GetCSWeaponDataFromItem failed for weapon %s\\n\n@@ -10173,6 +10189,7 @@ Failed to load %s\\n\n Failed to load KV3 AI Data\\n\n Failed to load cs_script \"%s\"\\n\n Failed to load file: %s\\n\n+Failed to load map save file %s\\n\n Failed to open file\n Failed to play server side instructor hint: no player specified for hint\\n\n Failed to precache script entity %s of type %s: script entity instance is null\\n\n@@ -10193,6 +10210,8 @@ Failed to start replay, requires HTLV to be enabled to work\\n\n Failed to update networkable loadout\\n\n Failed to update on remove script entity %s of type %s: script entity instance is null\\n\n Failed to write %s!\\n\n+Failed to write '%s' to steam cloud\\n\n+Failed to write map save file to %s\\n\n Failed with no pGoalArea and no pGoalPos\n Failed with no pStartArea\n Failing to submit row for a grenade detonation: Grenade has no weapon info!\\n\n@@ -10844,6 +10863,7 @@ GetReportedPosition\n GetRightVector\n GetRootMoveParent\n GetRoundsPlayed\n+GetSaveData\n GetSceneByIndex\n GetScore\n GetScriptClassForDesignerName\n@@ -11154,6 +11174,7 @@ IDEA-ECB\n IDEA-OFB\n IGNORED due to being marked \"Dont save\".\\n\n IGNORED, no across_transition flag & no globalname\\n\n+IGNORE_ARMOR\n IGNORE_ENEMIES\n IGameSystem::Init( %-80s ) %8.3f msec\n IGameSystem::PostInit( %-80s ) %8.3f msec\n@@ -11869,6 +11890,7 @@ Invalid request for mesh %d in model %s with %d entry remapping start table\\n\n Invalid request for mesh %d in model %s with no remapping table starts\\n\n Invalid request for mesh %d in model %s with no remapping table\\n\n Invalid return type from Instance.OnBeforePlayerDamage.\\n\n+Invalid return type from Instance.OnModifyPlayerDamage.\\n\n Invalid save, failed to open file\\n\n Invalid script. No valid imports found.\\n\n Invalid skirmish '%s' in mp_endmatch_votenextmap_wargames_modes\\n\n@@ -11923,6 +11945,7 @@ IsFreezePeriod\n IsGlowing\n IsGrabbable\n IsInToolsMode\n+IsInputPressed\n IsLineBlockedBySmoke\n IsMarkedForDeletion\n IsMaster\n@@ -12050,12 +12073,14 @@ LADDER\n LARGE_CENTERED_HULL\n LARGE_HULL\n LATE \n+LEFT\n LEFTARM\n LEFTLEG\n LEVEL DESIGN ERROR: Divide by zero in math_value\\n\n LEVEL DESIGN ERROR: Entity %s is parented to itself!\\n\n LOCKED\n LOOK_AT_SPOT\n+LOOK_AT_WEAPON\n LOOK_TOWARDS_SPOT\n LOS check failed.  Obstructed.\n LOST DAMAGE:\\t\\t\n@@ -12154,6 +12179,7 @@ LoadNavMesh: unable to read movable meshes setting 'gravity follows rotation'.\\n\n LoadSubclasses\n LoadThink\n Loaded %d rays\\n\n+Loaded existing workshop save file from %s\\n\n Loaded server checkpoint %s, starting match with score %d:%d after round %d\\n\n Loading custom game \"%s\" with map \"%s\"\\n\n Loading script \"%s\"\\n\n@@ -13396,6 +13422,7 @@ OnMinPlayerDist2\n OnMinPlayerDist3\n OnMinPlayerDistAll\n OnMixed\n+OnModifyPlayerDamage\n OnMoneySpent\n OnMoneySpentFail\n OnMotionEnabled\n@@ -14042,6 +14069,7 @@ RC5-CFB\n RC5-ECB\n RC5-OFB\n RDO_AB\n+RELOAD\n REMOVENORAGDOLL\n RESCUE_HOSTAGES\n RESOURCE_HANDLE_INVALID\n@@ -14064,6 +14092,7 @@ RIFLE1\n RIFLE2\n RIFLE3\n RIFLE4\n+RIGHT\n RIGHTARM\n RIGHTLEG\n RIPEMD160\n@@ -14429,6 +14458,7 @@ SHA512\n SHOCK\n SHOTGUN\n SHOULD_BE_DESTROYED\n+SHOW_SCORES\n SKIP (no prior visit of '%s')\n SLASH\n SLOWBURN\n@@ -14544,6 +14574,8 @@ SaveRestoreIO\n SaveRestoreIOFiltered\n SaveRestoreSyncIO\n SaveThink\n+Saved to '%s' steam cloud\\n\n+Saving existing workshop save file from %s\\n\n Saving game to %s...\\n\n Saving money for next round.\\n\n Scale INV R%d <- R%d / R%d\n@@ -15264,6 +15296,7 @@ SetRestLength\n SetRotateType\n SetRotationDistance\n SetRotatorTarget\n+SetSaveData\n SetScale\n SetScriptOwnerEntity\n SetScrollSpeed\n@@ -16429,6 +16462,8 @@ Warp XY\n Warp XYZ\n Warp Z\n Warp attempted for animation with invalid warp events!\n+WasInputJustPressed\n+WasInputJustReleased\n Water.PlayerEnter\n Water.PlayerExit\n Water: Level %0.3f\\n\n@@ -16577,6 +16612,7 @@ ZN30CheckAreasOverlappingBreakable6SearchEvEUlR8CNavAreaE_\n ZN9CSNavMesh19FindMinimumCostAreaINS_26FarAwayFromPositionFunctorEEEP8CNavAreaS3_RT_EUlRS2_E_\n ZNK19CNavObstacleOverlap22AppendElemsForObstacleEyP23CUtlVectorFixedGrowableIjLm64EiEEUlRKjE_\n ZNK19CNavObstacleOverlap22AppendObstaclesForElemEjP23CUtlVectorFixedGrowableIyLm32EiEEUlRKyE_\n+ZOOM\n Z]_abcTZ\\_bcLTV[`c@FJS]c-27AQc\n Z^`bccUY\\`ccMPU\\acADIR\\c./4=Oc\n Zero Pose Task\n@@ -22278,6 +22314,7 @@ save/%s/%s.sav\n save/%s_%s.kv3.txt\n save/*.hl?\n saveAndRestore\n+save_%s.txt\n save_maxarray_spew set to %d\\n\n save_threshold\n savedwep_lastinv\n@@ -23883,6 +23920,7 @@ v8::HandleScope::~HandleScope()\n v8::Int32::Value() const\n v8::Integer::New(v8::Isolate*, int)\n v8::Integer::NewFromUnsigned(v8::Isolate*, unsigned int)\n+v8::Integer::Value() const\n v8::Isolate::Enter()\n v8::Isolate::Exit()\n v8::Isolate::GetCurrent()\n@@ -23937,6 +23975,7 @@ v8::Value::IsObject() const\n v8::Value::IsUint32() const\n v8::Value::NumberValue(v8::Local<v8::Context>) const\n v8::Value::ToInt32(v8::Local<v8::Context>) const\n+v8::Value::ToInteger(v8::Local<v8::Context>) const\n v8::Value::ToNumber(v8::Local<v8::Context>) const\n v8::Value::ToObject(v8::Local<v8::Context>) const\n v8::Value::ToString(v8::Local<v8::Context>) const\n@@ -24363,6 +24402,7 @@ wm_bodygroup_override\n wm_bodygroup_state_override\n work item\n workshop\n+workshop_saves\n workthreadpool.cpp\n world\n world.glass"
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 5,
          "changes": 11,
          "patch": "@@ -4437,11 +4437,12 @@ maps/de_train_camera_nodes.kv3 CRC:00c2db3b8b size:26613\n maps/de_train_retake.txt CRC:0002fee1a2 size:4826\n maps/de_vertigo_camera_nodes.kv3 CRC:003995c8c5 size:16095\n maps/de_vertigo_retake.txt CRC:0041f38891 size:4630\n-maps/editor/zoo/scripts/chess.vjs_c CRC:005d447f9b size:142965\n+maps/editor/zoo/scripts/chess.vjs_c CRC:005adbfaa7 size:143685\n maps/editor/zoo/scripts/grenadetraining.vjs_c CRC:0042df3cd1 size:5668\n maps/editor/zoo/scripts/hello.vjs_c CRC:0085031ac4 size:919\n+maps/editor/zoo/scripts/input.vjs_c CRC:0077381b08 size:2301\n maps/editor/zoo/scripts/mdlchange.vjs_c CRC:0025d1e734 size:2582\n-maps/editor/zoo/scripts/setup.vjs_c CRC:001bf897ce size:1365\n+maps/editor/zoo/scripts/setup.vjs_c CRC:000d9de9d7 size:1350\n maps/editor/zoo/scripts/trace.vjs_c CRC:00388091aa size:6616\n maps/workshop_compatibility_versions.txt CRC:0026cd2bf9 size:1428\n materials/anubis/anubis_water_canal.vmat_c CRC:007e7b5225 size:5763\n@@ -78645,9 +78646,9 @@ resource/csgo_koreana.txt CRC:0094ae07a7 size:4822017\n resource/csgo_latam.txt CRC:0088605eef size:4901995\n resource/csgo_norwegian.txt CRC:00155c7d7f size:4656283\n resource/csgo_polish.txt CRC:00ea6940aa size:5042271\n-resource/csgo_portuguese.txt CRC:0070428009 size:4797723\n+resource/csgo_portuguese.txt CRC:0006399b4f size:4797727\n resource/csgo_romanian.txt CRC:0011ba6df7 size:4991821\n-resource/csgo_russian.txt CRC:0043a2d0a3 size:6235328\n+resource/csgo_russian.txt CRC:009cc7b664 size:6234936\n resource/csgo_schinese.txt CRC:00d0741e1a size:4648471\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n resource/csgo_spanish.txt CRC:00bc293312 size:4864560\n@@ -78808,7 +78809,7 @@ scripts/talker/swat_fem.vrr_c CRC:00c4cdd7b0 size:22650\n scripts/tools/anim_preview_archetypes.vdata_c CRC:00d242f917 size:6878\n scripts/tools/game_asset_tags.vdata_c CRC:00559be7bf size:2755\n scripts/weapons.vdata_c CRC:009e00c0ab size:32148\n-scripts/workshop_cvar_whitelist.txt CRC:007ee7ec6e size:17545\n+scripts/workshop_cvar_whitelist.txt CRC:00f5d54e5d size:17584\n smartprops/bicycle/bicycle_rack.vsmart_c CRC:0097f4a6c4 size:1423\n smartprops/bicycle/bicycle_single.vsmart_c CRC:001f5c91ad size:1628\n smartprops/debris/debris_ceiling_tiles_01.vsmart_c CRC:00c0a90e2e size:2600"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/editor/zoo/scripts/chess.js",
          "status": "modified",
          "additions": 33,
          "deletions": 11,
          "changes": 44,
          "patch": "@@ -303,7 +303,7 @@ function ChessJS() {\n                 [\"A\", \"Z\"],\n             ],\n             false,\n-            false\n+            false,\n         );\n         var peg$e6 = peg$otherExpectation(\"tag value\");\n         var peg$e7 = peg$classExpectation(['\"'], true, false);\n@@ -1390,7 +1390,7 @@ function ChessJS() {\n             throw peg$buildStructuredError(\n                 peg$maxFailExpected,\n                 peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n-                peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n+                peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos),\n             );\n         }\n     }\n@@ -3468,7 +3468,7 @@ function ChessJS() {\n     };\n }\n \n-const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE } = ChessJS();\n+const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE, validateFen } = ChessJS();\n \n let chess = new Chess();\n \n@@ -3497,13 +3497,7 @@ async function RunChess() {\n \n     while (!chess.isGameOver()) {\n         await Delay(0);\n-        let move;\n-        if (chess.turn() === BLACK) {\n-            move = await AIMove();\n-        } else {\n-            move = await AIMove();\n-        }\n-\n+        const move = await AIMove();\n         await AnimateMove(move);\n     }\n \n@@ -3667,6 +3661,7 @@ async function AIMove() {\n         undosNeeded--;\n     }\n     chess.move(bestMove);\n+    writeSaveKey(\"chess\", chess.fen());\n     return bestMove;\n }\n \n@@ -3737,7 +3732,17 @@ function GetFitness(color) {\n \n /** @param {Chess?} oldChess  */\n function Init(oldChess) {\n-    if (oldChess && !oldChess.isGameOver()) chess = oldChess;\n+    if (oldChess) {\n+        if (!oldChess.isGameOver()) {\n+            chess = oldChess;\n+        }\n+    } else {\n+        // Check if save data exists. Because script_zoo is not a workshop addon it won't find any unless the user ran with \"-addon\".\n+        const saveData = readSaveKey(\"chess\");\n+        if (validateFen(saveData).ok) {\n+            chess.load(saveData);\n+        }\n+    }\n     FindCenters();\n     Instance.SetNextThink(Instance.GetGameTime());\n }\n@@ -3784,3 +3789,20 @@ function shuffle(arr) {\n     }\n     return arr;\n }\n+\n+// Allows multiple scripts to use the same save without stepping on each other's toes\n+function readSaveKey(key) {\n+    const data = Instance.GetSaveData();\n+    try {\n+        return JSON.parse(data)[key];\n+    } catch {}\n+    return \"\";\n+}\n+function writeSaveKey(key, value) {\n+    let json = {};\n+    try {\n+        json = JSON.parse(Instance.GetSaveData());\n+    } catch {}\n+    json[key] = value;\n+    Instance.SetSaveData(JSON.stringify(json));\n+}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/editor/zoo/scripts/input.js",
          "status": "added",
          "additions": 42,
          "deletions": 0,
          "changes": 42,
          "patch": "@@ -0,0 +1,42 @@\n+import { Instance, CSInputs, CSPlayerPawn } from \"cs_script/point_script\";\n+\n+const CSInputsValues = Object.values(CSInputs).filter((i) => typeof i === \"number\");\n+\n+/** @type {CSPlayerPawn | undefined} */\n+let inputPawn = undefined;\n+\n+Instance.OnPlayerChat(({ player, text }) => {\n+    if (text === \"!showinput\") {\n+        inputPawn = inputPawn == player?.GetPlayerPawn() ? undefined : player?.GetPlayerPawn();\n+    }\n+});\n+\n+/**\n+ * @param {string} name\n+ * @param {(input:CSInputs) => boolean} getter\n+ * @param {number} x\n+ * @param {number} y\n+ */\n+function printInputType(name, getter, x, y) {\n+    const inputs = CSInputsValues.filter(getter).map((i) => CSInputs[i]);\n+    let inputText = inputs.length === 0 ? \"NONE\" : inputs.join(\"|\");\n+    Instance.DebugScreenText({ text: `${name}: ${inputText}`, x, y });\n+}\n+\n+/**\n+ * @param {CSPlayerPawn | undefined} pawn\n+ */\n+function printInput(pawn) {\n+    if (pawn) {\n+        printInputType(\"Pressed\", pawn.IsInputPressed.bind(pawn), 100, 500);\n+        printInputType(\"Just Pressed\", pawn.WasInputJustPressed.bind(pawn), 100, 510);\n+        printInputType(\"Just Released\", pawn.WasInputJustReleased.bind(pawn), 100, 520);\n+    }\n+}\n+\n+Instance.OnActivate(() => Instance.SetNextThink(Instance.GetGameTime()));\n+Instance.OnScriptReload({ after: () => Instance.SetNextThink(Instance.GetGameTime()) });\n+Instance.SetThink(() => {\n+    Instance.SetNextThink(Instance.GetGameTime());\n+    printInput(inputPawn);\n+});"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/editor/zoo/scripts/setup.js",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,4 +1,4 @@\n-import { CSDamageFlags, CSLoadoutSlot, Instance } from \"cs_script/point_script\";\n+import { CSDamageFlags, Instance } from \"cs_script/point_script\";\n \n Instance.ServerCommand(\"mp_warmup_offline_enabled 1\");\n Instance.ServerCommand(\"mp_warmup_pausetimer 1\");\n@@ -9,7 +9,7 @@ Instance.OnPlayerActivate(({ player }) => {\n     Instance.ServerCommand(\"bot_add\");\n });\n \n-Instance.OnBeforePlayerDamage(({ player }) => {\n+Instance.OnModifyPlayerDamage(({ player }) => {\n     if (player.GetOriginalPlayerController().IsBot()) {\n         return { damageFlags: CSDamageFlags.PREVENT_DEATH };\n     }"
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 0,
          "changes": 3,
          "patch": "@@ -521,6 +521,9 @@\n \t\t\"sv_gameinstructor_enable\",\n \t\t\"sv_gameinstructor_disable\",\n \t\t\"radio\",\n+\t\t\"radio1\",\n+\t\t\"radio2\",\n+\t\t\"radio3\",\n \t\t\"player_ping\",\n \t\t\"mp_teamlogo_1\",\n \t\t\"mp_teamlogo_2\","
        },
        {
          "filename": "game/csgo/readonly_tools_asset_info.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -123033,3 +123033,4 @@ panorama/images/map_icons/map_icon_de_stronghold.vsvg\n panorama/images/map_icons/map_icon_de_warden.vsvg\n panorama/videos/limited_edition_variations.webm\n scripts/workshop_cvar_whitelist.txt\n+maps/editor/zoo/scripts/input.vjs"
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000735\n-ServerVersion=2000735\n-PatchVersion=1.41.3.6\n+ClientVersion=2000738\n+ServerVersion=2000738\n+PatchVersion=1.41.3.7\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=10470435\n-VersionDate=Feb 23 2026\n-VersionTime=15:06:02\n+SourceRevision=10477407\n+VersionDate=Feb 25 2026\n+VersionTime=13:52:57"
        },
        {
          "filename": "game/csgo_core/gameinfo.gi",
          "status": "modified",
          "additions": 5,
          "deletions": 0,
          "changes": 5,
          "patch": "@@ -145,6 +145,11 @@\n \n \tNetworkSystem\n \t{\n+\t\tPublicUniverse\n+\t\t{\n+\t\t\t\"NetworkConfigLimits\"\t\"1\"\n+\t\t}\n+\n \t\tBetaUniverse\n \t\t{\n \t\t\t\"FakeLag\"\t\t\t\"40\""
        },
        {
          "filename": "game/csgo_core/gameinfo_branchspecific.gi",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -7,6 +7,7 @@\n \n \tFileSystem\n \t{\n+\t\tForceFixedAppIds\t1\n \t\tSteamAppId\t\t\t730\n \t\tBreakpadAppId\t\t\t2347771\n \t\tBreakpadAppId_Tools\t\t2347779"
        }
      ]
    },
    {
      "event_id": "gh:64d53b6",
      "detected_at_utc": "2026-03-10T10:56:03.087Z",
      "commit_date_utc": "2026-02-23T23:38:41Z",
      "commit": {
        "sha": "64d53b6e3305dc97f247783ea4bfc436b33f2422",
        "short": "64d53b6",
        "message": "2000735 | 37 files | M DumpSource2/convars.txt,  M Protobufs/source2_steam_stats.proto,  M game/bin/built_from_cl.txt,  M game/bin/linuxsteamrt64/libengine2_strings.txt,  M game/bin/linuxsteamrt64/liblocalize_strings.txt,  M game/bin/linuxsteamrt64/libmaterialsystem2_strings.txt,  M game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt,  M game/bin/linuxsteamrt64/libpulse_system_strings.txt,  M game/bin/linuxsteamrt64/libsteamnetworkingsockets_strings.txt,  M game/bin/linuxsteamrt64/libtier0_strings.txt,  M game/bin/linuxsteamrt64/libvconcomm_strings.txt,  M game/bin/linuxsteamrt64/libvphysics2_strings.txt,  M game/bin/linuxsteamrt64/libworldrenderer_strings.txt,  M game/bin/win64/assetrename_strings.txt,  M game/bin/win64/cs_mdl_import.exe_strings.txt,  M game/bin/win64/csgocfg.exe_strings.txt,  M game/bin/win64/resourcecompiler_strings.txt,  M game/bin/win64/resourceinfo.exe_strings.txt,  M game/bin/win64/source1import.exe_strings.txt,  M game/bin/win64/tools/cs2_item_editor_strings.txt,  M game/bin/win64/tools/met_strings.tx",
        "url": "https://github.com/SteamDatabase/GameTracking-CS2/commit/64d53b6e3305dc97f247783ea4bfc436b33f2422"
      },
      "classification": {
        "tags": [
          "scripts",
          "ui",
          "localization",
          "assets",
          "misc",
          "content-change"
        ],
        "important_files": [
          "game/csgo/pak01_dir/panorama/scripts/common/item_context_entries.js",
          "game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_async-bar.js",
          "game/csgo/pak01_dir/resource/csgo_english.txt",
          "game/csgo/pak01_dir/scripts/replay_compatability_settings.txt",
          "game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt"
        ]
      },
      "ai_summary": "Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).",
      "stats": {
        "files_changed": 37,
        "additions": 382,
        "deletions": 292
      },
      "files": [
        {
          "filename": "DumpSource2/convars.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 0,
          "changes": 3,
          "patch": "@@ -466,6 +466,9 @@ bot_debug 0 (gamedll cheat)\n bot_debug_target 0 (gamedll cheat)\n \tFor internal testing purposes.\n \n+bot_defense_rush_chance 33 (gamedll cheat)\n+\tAre the defense bots going to rush.\n+\n bot_defer_to_human_goals false (gamedll release commandline_enforced)\n \tIf nonzero and there is a human on the team, the bots will not do the scenario tasks.\n "
        },
        {
          "filename": "Protobufs/source2_steam_stats.proto",
          "status": "modified",
          "additions": 19,
          "deletions": 0,
          "changes": 19,
          "patch": "@@ -170,3 +170,22 @@ message CSource2Metrics_RecordPlayStats_Notification {\n \trepeated .CMsgSource2PlayStatsPackedRecordList record_types = 1;\n \toptional uint32 appid = 2;\n }\n+\n+message CSource2Metrics_FetchMapData_Request {\n+\toptional uint32 appid = 1;\n+\toptional string map_name = 2;\n+\toptional uint32 game_type = 3;\n+\toptional uint32 game_mode = 4;\n+\toptional string param = 5;\n+\toptional uint32 time_span = 6;\n+}\n+\n+message CSource2Metrics_FetchMapData_Response {\n+\tmessage MapData {\n+\t\toptional string name = 1;\n+\t\toptional string type = 2;\n+\t\toptional string data = 3;\n+\t}\n+\n+\trepeated .CSource2Metrics_FetchMapData_Response.MapData results = 1;\n+}"
        },
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-10439824\n+10470273"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libengine2_strings.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 2,
          "changes": 8,
          "patch": "@@ -1667,7 +1667,7 @@ $lZT\n 20ISource2ServerConfig\n 20ISource2WorldSession\n 20PacketEntitiesFilter\n-21:37:27\n+21:54:28\n 21C2S_CONNECT_Message_t\n 21CCLCMsg_BaselineAck_t\n 21CEngineGotvSyncPacket\n@@ -1952,9 +1952,11 @@ $lZT\n 36CMsgSource2PlayStatsPackedRecordList\n 36CNETMsg_SpawnGroup_SetCreationTick_t\n 36CSource1InputHandlerPreClientHandler\n+36CSource2Metrics_FetchMapData_Request\n 37CCompressedResourceManifestRefCounted\n 37CMetaDuplicationAutoCompletionFunctor\n 37CSource1InputHandlerPostClientHandler\n+37CSource2Metrics_FetchMapData_Response\n 37CVConsole2FlattenedSerializerListener\n 37CWaitForGameServerStartupPrerequisite\n 37IKV3TransferInterface_Worldspace_Load\n@@ -1994,6 +1996,7 @@ $lZT\n 456789:;<=\n 45CMsgSource2PlayStatsPackedRecordList_FieldDef\n 45CNetworkServerSpawnGroup_AllocatePrerequisite\n+45CSource2Metrics_FetchMapData_Response_MapData\n 45CSource2Metrics_MatchPerfSummary_Notification\n 476\\r\n 488:1: POS_FLOATLITERAL : ( ( DIGIT )+ '.' ( DIGIT )* ( EXPONENT )? | '.' ( DIGIT )+ ( EXPONENT )? | ( DIGIT )+ EXPONENT );\n@@ -4544,7 +4547,7 @@ Failure\n False\n FastHexToBuffer() wants non-negative integers, not \n Features\n-Feb  9 2026\n+Feb 23 2026\n February\n Feel free to add support for more if you need it.\n Field \"\n@@ -8212,6 +8215,7 @@ ThreadGetProcessPriority\n ThreadInMainThread\n ThreadInPrimaryOrSecondaryMainThread\n ThreadNanoSleep\n+ThreadSetPerfSetAffinity\n ThreadSetPriority\n ThreadSetProcessPriority\n ThreadSleep"
        },
        {
          "filename": "game/bin/linuxsteamrt64/liblocalize_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 1,
          "changes": 3,
          "patch": "@@ -144,7 +144,6 @@\n +Inf\n -Inf\n /resource/valve_\n-0qe`(\n 12CRefCounted1I23ILocalizeCompiledString20CRefCountServiceBaseI6CRefMTEE\n 14CBaseAppSystemI9ILocalizeE\n 15CTier0AppSystemI9ILocalizeLx0EE\n@@ -157,6 +156,7 @@\n 34CLocalizeCompiledStringSinglePlain\n 35CLocalizeCompiledStringLocVariables\n 36CLocalizeCompiledStringMessageFormat\n+4k4$\n 9CLocalize\n 9ILocalize\n :help\n@@ -332,6 +332,7 @@ es-419\n es_419\n es_ES\n fi_FI\n+file://\n finnish\n fr_FR\n french"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libmaterialsystem2_strings.txt",
          "status": "modified",
          "additions": 21,
          "deletions": 21,
          "changes": 42,
          "patch": "@@ -653,7 +653,7 @@ ZN37CTypesafeIntrospectedToKV3TypeManagerILy500152889462E24PostProcessingResourc\n \\n*** Unable to parse Version in HEADER section of %s!\\n\\n\n \\n*** Unknown rule \"%s\" in %s!\\n\\n\n \\n*** Unknown text found in FEATURES section in %s: \"%s\"\\n\\n\n-\\n*** material2.cpp(1570): Error! Trying to load material \"%s\" without any params!\\n\n+\\n*** material2.cpp(1548): Error! Trying to load material \"%s\" without any params!\\n\n \\n*** vfx_common.cpp(1410): Error opening file \"%s\"!\\n\\n\n \\n*** vfx_common.cpp(1487): Error opening file \"%s\"!\\n\\n\n \\n*** vfx_common.cpp(5867): Error opening file \"%s\"!\\n\\n\n@@ -674,18 +674,18 @@ ZN37CTypesafeIntrospectedToKV3TypeManagerILy500152889462E24PostProcessingResourc\n \\n\\t%02i%% (%i/%i)\n \\n\\t\\tDynamic:\n \\nmaterial2.cpp(119): ERROR! Can't load vfx_dx dll, dynamic shader compile unavailable!\\n\n-\\nmaterial2.cpp(1565): Error! Material \"%s\" is already loaded!\\n\n-\\nmaterial2.cpp(1599): Cannot find shader entry in material \"%s\"! Using error.vfx!\\n\n-\\nmaterial2.cpp(1642): Error creating shader %s and cannot load error.vfx instead!\\n\n-\\nmaterial2.cpp(1681): Error creating fallback shader %s for %s for material %s! A fallback shader cannot fallback to a different shader!\\n\n-\\nmaterial2.cpp(1693): Error creating fallback shader %s for %s for material %s!\\n\n-\\nmaterial2.cpp(1697): Error creating fallback shader %s for %s and cannot load error.vfx instead!\\n\n-\\nmaterial2.cpp(1724): Error creating shader %s for material %s!\\n\n-\\nmaterial2.cpp(1729): Error creating shader %s and cannot load error.vfx instead!\\n\n-\\nmaterial2.cpp(1739): Error creating static combos for shader %s and error.vfx instead!\\n\n-\\nmaterial2.cpp(2868): Dynamic shader compile failed for %s in material \"%s\"!\\n\n-\\nmaterial2.cpp(3590): All bad! The error material failed in dynamic shader compile!\\n\n-\\nmaterial2.cpp(4414): Find a graphics programmer! Trying to bind a \"%s\" shader that doesn't exist! for %s\\n\n+\\nmaterial2.cpp(1543): Error! Material \"%s\" is already loaded!\\n\n+\\nmaterial2.cpp(1577): Cannot find shader entry in material \"%s\"! Using error.vfx!\\n\n+\\nmaterial2.cpp(1620): Error creating shader %s and cannot load error.vfx instead!\\n\n+\\nmaterial2.cpp(1659): Error creating fallback shader %s for %s for material %s! A fallback shader cannot fallback to a different shader!\\n\n+\\nmaterial2.cpp(1671): Error creating fallback shader %s for %s for material %s!\\n\n+\\nmaterial2.cpp(1675): Error creating fallback shader %s for %s and cannot load error.vfx instead!\\n\n+\\nmaterial2.cpp(1702): Error creating shader %s for material %s!\\n\n+\\nmaterial2.cpp(1707): Error creating shader %s and cannot load error.vfx instead!\\n\n+\\nmaterial2.cpp(1717): Error creating static combos for shader %s and error.vfx instead!\\n\n+\\nmaterial2.cpp(2843): Dynamic shader compile failed for %s in material \"%s\"!\\n\n+\\nmaterial2.cpp(3565): All bad! The error material failed in dynamic shader compile!\\n\n+\\nmaterial2.cpp(4389): Find a graphics programmer! Trying to bind a \"%s\" shader that doesn't exist! for %s\\n\n \\src\\shaders\\\n \\t\\tStatic:\n ^^^ Attribute-based texture warning is now disabled after outputting 50 warnings.\\n\n@@ -981,14 +981,14 @@ mat_print_materials %s -show_none\n mat_print_shader_info %s -show_used_combos\n mat_print_shader_info %s -show_used_combos -%s\n material2.cpp\n-material2.cpp(1638): Error creating shader %s for material %s!\\n\n-material2.cpp(2460): DxSupportLevel %d not supported!\\n\n-material2.cpp(3175): Failed call to FindOrLoadStaticComboData()!\\n\n-material2.cpp(660): Material \"%s\" is requesting a bad mode \"%s\"!\\n\n-material2.cpp(783): Error! Material \"%s\" doesn't have any valid layers to get the CVsInputSignatureVector from!\\n\n-material2.cpp(815): Error! Material \"%s\" doesn't have a CVsInputSignatureVector!\\n\n-material2.cpp(833): Error! Material \"%s\" has invalid signature index %d!\\n\n-material2.cpp:2811\n+material2.cpp(1616): Error creating shader %s for material %s!\\n\n+material2.cpp(2435): DxSupportLevel %d not supported!\\n\n+material2.cpp(3150): Failed call to FindOrLoadStaticComboData()!\\n\n+material2.cpp(644): Material \"%s\" is requesting a bad mode \"%s\"!\\n\n+material2.cpp(767): Error! Material \"%s\" doesn't have any valid layers to get the CVsInputSignatureVector from!\\n\n+material2.cpp(799): Error! Material \"%s\" doesn't have a CVsInputSignatureVector!\\n\n+material2.cpp(817): Error! Material \"%s\" has invalid signature index %d!\\n\n+material2.cpp:2786\n material_shader_params.cpp(1002): Unknown variable type for %s in material \"%s\"!\\n\n material_shader_params.cpp(1047): Invalid data type for render state variable %s in material \"%s\"!\\n\n material_shader_params.cpp(1100): Invalid data type for render state variable %s in material \"%s\"!\\n"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -2106,6 +2106,7 @@ program\n progress\n pthread_cancel\n purple\n+qd$6\n radial\n radial( \n rebeccapurple"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libpulse_system_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -133,7 +133,6 @@\n 49PulseSystemEventObservableVariableSourceChanged_t\n 50PulseSystemEventObservableVariableListenerNotify_t\n 56CPulseGraphInstance_TestDomain_UseReadOnlyBlackboardView\n-8R\\S\n <No Cell>\n <map_key>\n <map_value>"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libsteamnetworkingsockets_strings.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 5,
          "changes": 8,
          "patch": "@@ -534,14 +534,14 @@ $d`D-laM\n /data/src/steamnetworkingsockets/clientlib/steam/csteamnetworkingsockets_steampartner.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_connections.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_connections.h\n+/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_ice_client.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.h\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p.h\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.h\n-/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_stun.cpp\n /data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_udp.cpp\n /data/src/steamnetworkingsockets/sdr/steamdatagram_network_config.cpp\n /data/src/steamnetworkingsockets/sdr/steamdatagram_network_config.h\n@@ -572,6 +572,7 @@ $d`D-laM\n 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./\n 08bX\n 0Z@q\n+0\\7!6w#\n 0\\n(legacy_authorized_client_identity_binary\n 0\\n,k_ESteamDatagramMsg_GameserverSessionRequest\n 0\\r0#0)070;0U0Y0[0g0q0y0}0\n@@ -772,7 +773,6 @@ $d`D-laM\n 99Ov\n 99rKJJ\n 9<n\\nM\n-9H@T\n 9IGv\n 9\\n\\noneof_decl\n 9eZI\n@@ -3156,9 +3156,7 @@ Fatal Assertion Failed: EVP_EncryptFinal_ex( ctx, pOut, &nBytesWritten ) == 1\n Fatal Assertion Failed: EVP_EncryptInit_ex( ctx, nullptr, nullptr, nullptr, (const uint8*)pIV ) == 1\n Fatal Assertion Failed: EVP_EncryptUpdate( ctx, nullptr, &nBytesWritten, (const uint8*)pAdditionalAuthenticationData, (int)cbAuthenticationData ) == 1\n Fatal Assertion Failed: EVP_EncryptUpdate( ctx, pOut, &nBytesWritten, (const uint8*)pPlaintextData, (int)cbPlaintextData ) == 1\n-Fatal Assertion Failed: EVP_PKEY_derive(ctx, bufSharedSecret, &skeylen ) == 1\n Fatal Assertion Failed: EVP_PKEY_derive_init(ctx) == 1\n-Fatal Assertion Failed: EVP_PKEY_derive_set_peer(ctx, peerkey) == 1\n Fatal Assertion Failed: GetRawData( privateKey ) == 32\n Fatal Assertion Failed: GetRawData( publicKey ) == 32\n Fatal Assertion Failed: SetRawDataAndWipeInput( tmp, cbData )\n@@ -7995,7 +7993,7 @@ legacy_your_public_port\n length is greater than %ld\\n\n length too long\n level_add_node\n-lib Oct  2 2025 23:55:42\n+lib Feb 10 2026 01:04:29\n lib(%lu)\n librt.so.1\n libstdc++.so.6"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libtier0_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -6472,6 +6472,7 @@ _txnal_logic_error_get_msg(void*)\n _txnal_runtime_error_get_msg(void*)\n _txnal_sso_string_c_str(void const*)\n _wWT+\n+a lz\n a?y#c?sIe?\n aC.B\n aG0\"\n@@ -7326,7 +7327,6 @@ l<}2l\n lDa>\n lQ?2\n lR(g \n-l^g%B\n labM\n large\n large:"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libvconcomm_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -30,7 +30,6 @@ Clearing %d buffered messages of %d bytes\\n\n Clients %d of %d:\\n\n Connection in progress...\\n\n Connection will timeout in %d seconds...\\n\n-Dd6/q\n Invalid connection type.\n List connections\n Make VConsole Foreground(): ReturnToWindow:0x%p, Timeout:%d, UseHostPath:%d\\n"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libvphysics2_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -406,7 +406,6 @@\n <tr><td>Set <b>ON</b></td>\n <ul><li><font color=\"cyan\">\"%s\"(%d)</font></li><li><font color=\"green\">\"%s\"(%d)</font></li></ul>\n ?unsupported?\n-A4juu\n ATTACHMENT_INFLUENCE_FLAGS_NONE\n Accelerate\n AddMultipleToTail"
        },
        {
          "filename": "game/bin/linuxsteamrt64/libworldrenderer_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -154,6 +154,7 @@ Not safe to 'new' this class due to alignment requirements\n NumCols() <= V_ARRAYSIZE( s_DummyRow )\n Physics\n PushCurrentSkewBrightnessValuesToSceneObject\n+QAw#Z\n RESOURCE_TYPE_ENTITY_LUMP\n RESOURCE_TYPE_WORLD\n RESOURCE_TYPE_WORLD_NODE\n@@ -195,7 +196,6 @@ ZN37CTypesafeIntrospectedToKV3TypeManagerILy431366240118E11WorldNode_tE15Allocat\n ZN37CTypesafeIntrospectedToKV3TypeManagerILy431366240118E11WorldNode_tE24DeallocateDestroyCleanupEPvP25IResourceDeallocatorUtilsE17CDeallocatorUtils\n ZN37CTypesafeIntrospectedToKV3TypeManagerILy495874631030E20PermEntityLumpData_tE15AllocateAndLoadER23CKV3TransferLoadContextPK21ResourceBindingBase_tP29IRD_RegisterResourceDataUtilsE15CAllocatorUtils\n ZN37CTypesafeIntrospectedToKV3TypeManagerILy495874631030E20PermEntityLumpData_tE24DeallocateDestroyCleanupEPvP25IResourceDeallocatorUtilsE17CDeallocatorUtils\n-\\Q1JO\\v^\n \\nLoaded List:\\n\n \\nPending List:\\n\n \\tWorld: %s"
        },
        {
          "filename": "game/bin/win64/assetrename_strings.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 7,
          "changes": 13,
          "patch": "@@ -470,6 +470,7 @@ $x(<*L(^$*.d$40.2Z$D6@$Q\n &nbsp;&nbsp;There is one code reference that may need to be manually fixed:<br>\\n\n &nbsp;&nbsp;There is one code reference that will need to be manually fixed:<br>\\n\n &nbsp;&nbsp;VMDL File saved: %s<br>\\n\n+&nbsp;&nbsp;VTEX File saved : %s<br>\\n\n '%s' is not a valid variable type\n 'OverrideClass' was specified but class '%s' has not been previously defined.\\n\n '\\n#k_EProtoDebugVisibility_ValveServer\n@@ -14492,6 +14493,7 @@ $x(<*L(^$*.d$40.2Z$D6@$Q\n <font color=red>&nbsp;&nbsp;ERROR: Failed to read VTEX file.</font><br>\\n\n <font color=red>&nbsp;&nbsp;ERROR: Failed to read file.</font><br>\\n\n <font color=red>&nbsp;&nbsp;ERROR: Failed to save kv1: %s.</font><br>\\n\n+<font color=red>&nbsp;&nbsp;ERROR: Failed to save kv3 to buffer: %s.</font><br>\\n\n <font color=red>&nbsp;&nbsp;ERROR: Failed to save kv3: %s.</font><br>\\n\n <font color=red>&nbsp;&nbsp;ERROR: Failed to write fixed-up data %s</font><br>\\n\n <font color=red>ERROR: Failed to load file %s.</font><br>\\n\n@@ -16811,7 +16813,6 @@ CDmeDag::GetParentWorldMatrix called on a dag that has different rotation and tr\n CDmeDotaTileGrid\n CDmeDrawCallSnapshot\n CDmeImageProcessor\n-CDmeInputTexture\n CDmeLog: interpolable type %s doesn't have an interpolation function!\n CDmeNavData\n CDmeNodeInstanceData\n@@ -19110,6 +19111,7 @@ DriverBone\n DumpModeDecode: Not enough data for scanline %d\n Duplicate a UV Map texcoord channel\n Duplicate attribute name %s encountered!\\n\n+Duplicate bone %d renamed :: \"%s\" -> \"%s\"\\n\n Duplicate child mesh name\n Duplicate hit group (%s) specified in destructible parts system data.  Please fix.\n Duplicate model config '%s'\n@@ -25411,8 +25413,6 @@ Zpm\"U\n \\ng default\\n\n \\nh?oT\n \\nk>oB\n-\\r&nbsp;&nbsp;VTEX File saved : %s<br>\\n\n-\\r<font color=red>&nbsp;&nbsp;ERROR: Failed to save kv3 to buffer: %s.</font><br>\\n\n \\r?darker@QColor@@QEBA?AV1@H@Z\n \\r?event@QObject@@UEAA_NPEAVQEvent@@@Z\n \\r?eventFilter@QObject@@UEAA_NPEAV1@PEAVQEvent@@@Z\n@@ -25427,7 +25427,7 @@ Zpm\"U\n \\r?information@QMessageBox@@SA?AW4StandardButton@1@PEAVQWidget@@AEBVQString@@1V?$QFlags@W4StandardButton@QMessageBox@@@@W421@@Z\n \\r?information@QMessageBox@@SA?AW4StandardButton@1@PEAVQWidget@@AEBVQString@@1W421@2@Z\n \\r?initPainter@QWidget@@MEBAXPEAVQPainter@@@Z\n-\\rDuplicate bone %d renamed :: \"%s\" -> \"%s\"\\n\n+\\rCDmeInputTexture\n \\rGraph Object is null\n \\rModelDoc\n \\r\\f?focusInEvent@QLineEdit@@MEAAXPEAVQFocusEvent@@@Z\n@@ -25440,8 +25440,9 @@ Zpm\"U\n \\r\\n\\tTYPE_ENUM\n \\r\\r?heightForWidth@QGridLayout@@UEBAHH@Z\n \\r\\tV_expf\n+\\rinvalid bone index(%d) specified, valid range[0:%d]\\n\n \\rp\\f`\\v0\\nP!'\\f\n-\\rsmartprop2\n+\\rvsmart\n \\src\\shaders\\\n \\t2t4J6$\"$\n \\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z\n@@ -28153,7 +28154,6 @@ interpolator_right\n interpretation\n interrupted\n intmap\n-invalid bone index(%d) specified, valid range[0:%d]\\n\n invalid compound data group\n invalid hash bucket count\n invalid header in CprImpl(Compound)\n@@ -31542,7 +31542,6 @@ vs_5_0\n vs_6_0\n vscale\n vsky\n-vsmart\n vsubgrph\n vsutils_py\n vtex"
        },
        {
          "filename": "game/bin/win64/cs_mdl_import.exe_strings.txt",
          "status": "modified",
          "additions": 17,
          "deletions": 19,
          "changes": 36,
          "patch": "@@ -7364,30 +7364,34 @@ $prefix_element$\n /yQA\n 0 0 0\n 0 0 0 255\n-00H@\n 0123456789abcdefghijklmnopqrstuvwxyz\n 016@\n 019@\n 02P@\n 02w@\n 031@\n+03H@\n+04H@\n 04a@\n 073@\n+07H@\n 07b@\n 08T@\n+09w@\n 0A8@\n 0AW@\n-0BH@\n 0BT@\n+0DH@\n 0E>X\n 0ET@\n 0EZ@\n+0Gw@\n 0HT@\n 0J6@\n+0Jw@\n 0KQ@\n 0LT@\n 0M5@\n-0Mw@\n 0SS@\n 0U9@\n 0UN@\n@@ -7401,9 +7405,12 @@ $prefix_element$\n 0i4@\n 0iN>/\n 0iT@\n+0jw@\n+0kw@\n+0mw@\n 0nS@\n+0ow@\n 0pT@\n-0sw@\n 0w1@\n 0wL@\n 0wP@\n@@ -13131,17 +13138,14 @@ Overrides the target VSNAP resource (defaults to \"particles/models/%model_name%/\n Overwrite all bone data\n Overwrite existing flags only\n Overwriting existing wrinkle map data on mesh\n-P0H@\n P0R@\n P1w@\n P2M@\n P2v@\n P3N@\n P46@\n P4File\n-P4H@\n P58@\n-P5w@\n P6M@\n P6v@\n P7E@\n@@ -13169,11 +13173,11 @@ PATTACH_RENDERORIGIN_FOLLOW\n PATTACH_ROOTBONE_FOLLOW\n PATTACH_WATERWAKE\n PATTACH_WORLDORIGIN\n-PBH@\n PBM@\n PBW@\n PCW@\n PE7@\n+PEw@\n PFNoiseModifier_t\n PFNoiseTurbulence_t\n PFNoiseType_t\n@@ -13259,7 +13263,6 @@ PInstruction_t<41>::Run\n PInstruction_t<42>::Run\n PJT@\n PKT@\n-PKw@\n PLATFORM\n PMS@\n PMZ@\n@@ -13545,9 +13548,7 @@ Pitch Friction\n Pitch Yaw Roll\n Pitch Yaw Roll Max\n PivotPaint\n-Piw@\n PixarLog\n-Pkw@\n Place On Attachment\n Place On Bone\n Place on Floor\n@@ -13627,8 +13628,6 @@ Plat_VirtualAlloc\n Plat_VirtualFree\n Plat_WindowToOsSpecificHandle\n Play End Cap Effect\n-Plw@\n-Pnw@\n Po8@\n Point\n Point 0\n@@ -13683,7 +13682,6 @@ PosterSettings\n Posture\n Power scale for applying the supplemental ambient occlusion map.\n Pp8@\n-Ppw@\n Pre-Age Noise\n Pre-Clear Selection\n Precision Degrees\n@@ -13743,7 +13741,6 @@ PropertyEditorSystem_001\n Prune pieces < error threshold\n PsJ@\n PsM@\n-Ptw@\n Pull towards control point\n Pulse\n Pulse Graph\n@@ -20406,32 +20403,34 @@ owM&\n owner dead\n ownerlog\n owns_polymorphic_data\n+p0H@\n p10@\n+p1H@\n p2S@\n p3a@\n p3b@\n p46@\n-p4H@\n p4lib\n p5F@\n p71@\n-p7H@\n p7b@\n p8H@\n p9T@\n+pBH@\n+pCH@\n pCT@\n pCheckpointName\n pDescription\n pEb@\n pFZ@\n pGN@\n+pIw@\n pM0@\n pM5@\n pMessage\n pO6@\n pOb@\n pQ7@\n-pRw@\n pSb@\n pTG@\n pTagName\n@@ -20497,7 +20496,6 @@ pathclass\n pathnode\n pathnodeclass\n pattern\n-pcw@\n peP@\n peT@\n peak"
        },
        {
          "filename": "game/bin/win64/csgocfg.exe_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -410,7 +410,7 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n /src/\n 0iN>/\n 11Y@\n-13:36:50\n+13:57:21\n 1:1: Tokens : ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );\n 1AcceptIfItemPicked()\n 1OnAccept()\n@@ -1603,7 +1603,7 @@ Failed to load layered mod '%s'.  %s\n Failed to map from %s to content-path\\n\n Failed to map from %s to game-path\\n\n Failed to parse KeyValues\n-Feb  9 2026\n+Feb 23 2026\n February\n FileSystem\n FileSystem/SearchPaths"
        },
        {
          "filename": "game/bin/win64/resourcecompiler_strings.txt",
          "status": "modified",
          "additions": 4,
          "deletions": 5,
          "changes": 9,
          "patch": "@@ -20681,7 +20681,6 @@ $prefix_element$\n 0\\r%0t\n 0\\r0#0)070;0U0Y0[0g0q0y0}0\n 0\\tV_isfinited\n-0d,Y\n 0e\\r8\n 0iN>/\n 0pp@5tqE?|sO541\n@@ -20713,7 +20712,7 @@ $prefix_element$\n 12'0\n 1280x720\n 12v)\n-13:41:00\n+13:59:27\n 14 (default)\n 15\\tr\\\n 16-byte data pool\n@@ -21279,7 +21278,7 @@ $prefix_element$\n ?FixSlashes@CUtlString@@QEAAXD@Z\n ?FixupPathName@CBufferString@@QEAAPEBDD@Z\n ?FixupPathName@CUtlString@@QEAAXXZ\n-?Foot Cycle Override start frame is larger than the number of frames\n+?Foot Cycle Override toe lift frame is larger than the number of frames\n ?ForEachInBox@CVertexKDTree@@QEBAXAEBV?$Vec3D@M@@0AEBV?$function@$$A6AXPEBM@Z@std@@H@Z\n ?Format@CBufferString@@QEAAHPEBDZZ\n ?Format@CUtlString@@QEAAHPEBDZZ\n@@ -29448,10 +29447,10 @@ Foot Cycle Override heel land frame is larger than the number of frames\n Foot Cycle Override heel land frame is less than zero\n Foot Cycle Override heel lift frame is larger than the number of frames\n Foot Cycle Override heel lift frame is less than zero\n+Foot Cycle Override start frame is larger than the number of frames\n Foot Cycle Override start frame is less than zero\n Foot Cycle Override toe land frame is larger than the number of frames\n Foot Cycle Override toe land frame is less than zero\n-Foot Cycle Override toe lift frame is larger than the number of frames\n Foot Cycle Override toe lift frame is less than zero\n Foot Lock node (%s): Failed to find foot with name \"%s\"\n Foot Lock node (%s): No feet defined; node will do nothing \n@@ -47312,7 +47311,7 @@ pbeWithSHA1And40BitRC2-CBC\n pbeWithSHA1And40BitRC4\n pbeWithSHA1AndDES-CBC\n pbeWithSHA1AndRC2-CBC\n-pc64 Feb  9 2026 13:40:52\n+pc64 Feb 23 2026 13:59:31\n pcPathLengthConstraint\n peak_attr\n peak_cycle"
        },
        {
          "filename": "game/bin/win64/resourceinfo.exe_strings.txt",
          "status": "modified",
          "additions": 71,
          "deletions": 68,
          "changes": 139,
          "patch": "@@ -1187,10 +1187,11 @@ $prefix_element$\n 093@\n 0;Q5[\n 0<cz\n-0B6@\n 0C3@\n 0C5@\n 0D5@\n+0E6@\n+0G6@\n 0H3@\n 0I3@\n 0I6@\n@@ -1200,41 +1201,46 @@ $prefix_element$\n 0M5@\n 0MD5\n 0N3@\n+0N6@\n 0O4@\n-0O6@\n 0P4@\n-0P6@\n+0Q6@\n 0R3@\n 0T3@\n 0U3@\n 0W/5\n 0W4@\n 0X3@\n 0X4@\n+0X6@\n 0Y3@\n-0Y6@\n 0Z@q\n 0\\r0#0)070;0U0Y0[0g0q0y0}0\n 0b3@\n-0b6@\n 0c3@\n+0c6@\n 0d3@\n 0e3@\n+0e6@\n 0e\\r8\n+0f6@\n 0h3@\n 0i3@\n 0i6@\n 0iN>/\n 0k3@\n+0k6@\n+0l6@\n+0n6@\n 0pp@5tqE?|sO541\n 0q3@\n 0q6@\n 0r3@\n+0t6@\n 0tU+xc:\n-0w6@\n+0u6@\n 0x%llx\n-0y6@\n-0z6@\n+0x6@\n 0}dV\n 1!1'1-191C1E1K1]1a1g1m1s1\n 1#IND\n@@ -1405,15 +1411,15 @@ $prefix_element$\n 8<pl\n 8= zp\n 8A3@\n+8A6@\n 8A6j\n 8B3@\n-8C6@\n 8ClipBoard\n 8Csinf\n-8D6@\n 8E3@\n 8E5@\n 8F5@\n+8F6@\n 8G5@\n 8GZS\n 8H5@\n@@ -1424,36 +1430,33 @@ $prefix_element$\n 8N5@\n 8O3@\n 8P3@\n+8P6@\n 8Q3@\n 8S3@\n 8SIffK5W\n 8TZvrv<\n 8V3@\n 8W3@\n 8W6@\n+8Y6@\n 8Z3@\n-8Z6@\n 8\\v8!83858A8G8K8S8W8_8e8o8q8}8\n 8]Vc2\n 8a6@\n 8b3@\n-8c6@\n 8ca1\n-8d6@\n 8dS2\n-8j6@\n-8l6@\n+8g6@\n 8m3@\n 8n3@\n 8o3@\n 8o6@\n 8p3@\n 8pe7?\n 8q-S*]X\n-8r6@\n-8s6@\n 8sOy\n-8x6@\n+8w6@\n+8y6@\n 9#9%9)9/9=9A9M9[9k9y9}9\n 9)PF\n 9)jx\n@@ -3754,12 +3757,13 @@ H8xp\n H=`HY\n H@H9xqI\n HA3@\n-HA6@\n HB3@\n HBJ\\nTRF\n HD3@\n HD5@\n+HE6@\n HEAD \n+HF6@\n HH&a\n HH3@\n HH:mm:ss\n@@ -3774,21 +3778,21 @@ HMAC routines\n HMAC-MD5\n HMAC-SHA1\n HMAC_Init_ex\n+HN6@\n HO4@\n HO8?\n-HP6@\n HR4@\n HT3@\n HU3@\n HU>mA$_E*\n HW3@\n+HW6@\n HWyn\n+HX6@\n HY3@\n-HY6@\n Hammer temp export\n HammerMapLoader001\n Hash Algorithm: \n-Hb6@\n HbAta\n Hc S\n Hc3@\n@@ -3798,19 +3802,17 @@ Hd3@\n Hd4@\n HdEu\n He3@\n+He6@\n Heap32First\n Heap32ListFirst\n Heap32ListNext\n Heap32Next\n HelpSystem_001\n Hf3@\n-Hg6@\n Hg>?S\n Hh4@\n Hhr+g\n-Hi6@\n Hj3@\n-Hj6@\n Hk3@\n Hl3@\n Ho6@\n@@ -3824,9 +3826,11 @@ Hostname mismatch\n Hp)X?\n Hp3@\n Hq,r/f\n+Hq6@\n HqI9x\n Ht4qw\n-Hy6@\n+Hw6@\n+Hx6@\n H{1S\n I\"9|OxTex\n I+8G\n@@ -4476,7 +4480,6 @@ PARSE_BAGS\n PARSE_HTTP_LINE1\n PARSE_TAGGING\n PATHBYADDR\n-PB6@\n PBE-MD2-DES\n PBE-MD2-RC2-64\n PBE-MD5-DES\n@@ -4496,7 +4499,6 @@ PBKDF2\n PBKDF2PARAM\n PBMAC1\n PC5@\n-PD6@\n PE5@\n PEIF\n PEM lib\n@@ -4529,6 +4531,7 @@ PEM_write\n PEM_write_bio\n PF5@\n PG5@\n+PG6@\n PGr]\n PHAG2\n PHhn}Y\n@@ -4652,6 +4655,7 @@ PL5@\n PLATFORM\n PM3@\n PM5@\n+PM6@\n PN3@\n PN4@\n PO3@\n@@ -4670,6 +4674,7 @@ PPz\\v=\n PQ3@\n PR3@\n PR4@\n+PR6@\n PRB+\n PRINTABLE\n PRINTABLESTRING\n@@ -4691,9 +4696,7 @@ PUT\n PV3@\n PW3@\n PW4@\n-PW6@\n PZ3@\n-PZ6@\n Pa6@\n Packed store %s with refcount > 0.\\n\n PackedBlobNormal\n@@ -4706,7 +4709,6 @@ Particle Configuration File\n ParticleSystemMgr003\n Pb3@\n Pd4@\n-Pd6@\n PeekNamedPipe\n Peer haven't sent GOST certificate, required for selected ciphersuite\n PerVertexLighting\n@@ -4717,7 +4719,7 @@ Ph4@\n Physics\n PhysicsBuilderMgr001\n PivotPaint\n-Pl6@\n+Pk6@\n Plat_AttachDebuggerToProcess\n Plat_CPUTickFrequency\n Plat_CheckSDL\n@@ -4765,7 +4767,6 @@ Plat_UnloadSDL\n Pm8A?\n PmR\"H?\n Pn3@\n-Pn6@\n Pointers cannot be used as numeric values\n Policy Qualifier CPS\n Policy Qualifier User Notice\n@@ -4801,13 +4802,12 @@ Process32Next\n PropWorldOrigin\n PropertyEditorSystem_001\n Proxy Certificate Information\n-Pt6@\n Public Key\n Public-Key\n Public-Key: (%d bit)\\n\n Pv6@\n Pw3@\n-Pz6@\n+Py6@\n P|iC\\r\n Q*hd\n Q/xtJ2\n@@ -6078,52 +6078,62 @@ X9_62_PENTANOMIAL\n X9cm\n X:vS\n XA3@\n+XA6@\n XB3@\n XB`i|\n+XC6@\n XD3@\n+XD6@\n XD{p7\n-XE6@\n XF3@\n XF6@\n XFle\n XG3@\n-XG6@\n XG[r\n XH5@\n+XH6@\n XI3@\n XI5@\n-XI6@\n XJ3@\n XLuC'4\n XM4@\n XMM{*\n XN5@\n XNU`{3\n+XP6@\n XQ6@\n XR4@\n XRJ2\n+XW6@\n XWY]\n XX3@\n XX6@\n+XY6@\n XYD%\n X\\tQo\n Xa3@\n+Xb6@\n+Xc6@\n Xd3@\n Xd3h\n+Xd6@\n Xe6@\n Xf6@\n XfJ7\n XjfR\n Xk3@\n Xm3@\n+Xn6@\n Xo3@\n Xo6@\n Xp3@\n XqgA+\n+Xu6@\n Xuub\n Xw6@\n XwA0\n Xz\"7\n+Xz6@\n Y-Ny\n Y4i%\n Y93a=7c@\n@@ -7920,24 +7930,24 @@ h93@\n hA3@\n hB6@\n hC3@\n-hC6@\n-hD6@\n hE5@\n hEM&!\n hF3@\n-hF6@\n hF\\rDz\n hFcg\n hG3@\n-hH6@\n+hG6@\n hI3@\n hJ3@\n hJxRX@_\n hM4@\n+hM6@\n hN2D\n+hN6@\n hO3@\n-hO6@\n hP4@\n+hP6@\n+hQ6@\n hR3@\n hRB.\n hS3@\n@@ -7946,28 +7956,26 @@ hV3@\n hW*m\n hW1M\n hW_z\n+hX6@\n hX@e\n hZ3@\n-hZ6@\n h`Zr\n hammer\n hash\n hashAlgorithm\n hashFunc\n-hb6@\n hb`V\n hbvc\n hc[N\n hc\\raF\n-hd6@\n+he6@\n header too long\n heartbeat request already pending\n height\n hex:\n hex_to_string\n hexkey\n hg3@\n-hg6@\n hhwi\n hiddenFlags\n hiddenGroups\n@@ -8003,9 +8011,8 @@ houseIdentifier\n hr_H\n http request\n https proxy request\n-hv6@\n hvL&\n-hw6@\n+hy6@\n hz6@\n h|gg\n i <= EVP_MAX_MD_SIZE\n@@ -9439,8 +9446,6 @@ pB3@\n pC5@\n pD4t\n pE3@\n-pE6@\n-pG6@\n pG_*h\n pH5@\n pI5@\n@@ -9452,24 +9457,23 @@ pM3@\n pM4@\n pM5@\n pN4@\n-pN6@\n pO0h\n pO4@\n pP3@\n pQ3@\n-pQ6@\n pR4@\n pRTH\n pSPo\n pSourceFunc\n pSpecified\n pT3@\n pU>\\AL\n+pW6@\n pX3@\n-pX6@\n pY3@\n p^i9\n pa3@\n+pa6@\n packet length too long\n padding check failed\n pagerTelephoneNumber\n@@ -9504,6 +9508,7 @@ pathlen\n pattern\n payload + padding <= 16381\n payment gateway capabilities\n+pb6@\n pbeWithMD2AndDES-CBC\n pbeWithMD2AndRC2-CBC\n pbeWithMD5AndCast5CBC\n@@ -9521,7 +9526,7 @@ pc6@\n pcPathLengthConstraint\n pd3@\n pd4@\n-pe6@\n+pd6@\n peer did not return a certificate\n peer does not accept heartbeats\n peer error\n@@ -9563,7 +9568,6 @@ pin_enabled\n pivotOffset\n pixelAspectRatio\n pk3@\n-pk6@\n pkL'\n pkcs\n pkcs decoding error\n@@ -9597,7 +9601,6 @@ pkeyalg\n pkix\n pkparameters2group failure\n pl3@\n-pl6@\n pm3@\n pn6@\n point arithmetic failure\n@@ -9641,7 +9644,6 @@ pp&c\n pp3@\n ppBasis\n pq3@\n-pq6@\n pqualid\n pre mac length too long\n prefab_has_runtime_entity_by_default\n@@ -9705,8 +9707,6 @@ pseudonym\n psk identity not found\n psk no client cb\n psk no server cb\n-pt6@\n-pu6@\n pub: \n pub_key\n pubkey\n@@ -9726,7 +9726,7 @@ publish_data.txt\n purecall\n pvk data too short\n pvk too short\n-px6@\n+pw6@\n pzKD)\n q not prime\n q&A\\nn\n@@ -11068,49 +11068,52 @@ x509_store\n x931\n x93@\n xA3@\n-xA6@\n xC3@\n xD5@\n+xD6@\n xE5@\n+xE6@\n xF5@\n-xF6@\n xFKF\n xG5@\n+xH6@\n xJ5@\n xL5@\n xN5@\n+xO6@\n xOu\\vsF\n xP4@\n xP6@\n+xQ6@\n xQfF\n+xR6@\n xU3@\n xUN'\n xV3@\n xV4@\n xW3@\n xW4@\n-xW6@\n xX3@\n+xX6@\n xY6@\n x\\v6V\n-xa6@\n xb3@\n xc3@\n xe3@\n xg-9Ja\n xg3@\n-xg6@\n xh3@\n xi3@\n+xk6@\n xo6@\n xp$=S\n xpH8\n+xq6@\n xqI9\n xrJ:DCG\n xsK;\n-xw6@\n+xx6@\n xxH}\n-xy6@\n xzxv\n y#y&Jb\n y0JY"
        },
        {
          "filename": "game/bin/win64/source1import.exe_strings.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 5,
          "changes": 8,
          "patch": "@@ -3728,15 +3728,16 @@ $woundcutouttexture\n 0Hh@\n 0I0@\n 0IT@\n-0IW@\n 0Ig@\n 0J4@\n 0K7@\n 0M7@\n 0N7@\n 0NT@\n+0NW@\n 0O7@\n 0OS@\n+0OW@\n 0P9@\n 0QW@\n 0R8@\n@@ -9384,6 +9385,7 @@ PFNoiseTurbulence_t\n PFNoiseType_t\n PFP@\n PFQ@\n+PFW@\n PF\\n%d %d\\n-1.000000\\n\n PF_BIAS_TYPE_COUNT\n PF_BIAS_TYPE_EXPONENTIAL\n@@ -9472,7 +9474,6 @@ PIX@\n PIg@\n PInstruction_t<41>::Run\n PInstruction_t<42>::Run\n-PKW@\n PLATFORM\n PLUG_TYPE_INPUT\n PLUG_TYPE_OUTPUT\n@@ -9481,7 +9482,6 @@ PLUG_TYPE_RELAY_PREFAB_INBOUND\n PLUG_TYPE_RELAY_PREFAB_LOCAL\n PLUG_TYPE_RELAY_PREFAB_OUTBOUND\n PLUG_TYPE_UNKNOWN\n-PLW@\n PMM@\n PMW@\n PM_TYPE_CONTROL_POINT\n@@ -17836,7 +17836,6 @@ pIX@\n pJT@\n pK2@\n pLS@\n-pLW@\n pMaterialGroupName\n pMessage\n pModelResourceName\n@@ -19595,7 +19594,6 @@ yaw_stop_time\n yield_token\n yields\n z>AlignedByteArray not properly aligned\\n\n-zD R\n z\\tV_tand\n zero\n zero_value"
        },
        {
          "filename": "game/bin/win64/tools/cs2_item_editor_strings.txt",
          "status": "modified",
          "additions": 59,
          "deletions": 39,
          "changes": 98,
          "patch": "@@ -13,10 +13,13 @@\n  #Valve_Reject_Reserved_For_Lobby\n  (%d remaining)...\n  (08@HPX`hpx\n- (08@HPX`j\n- (08@HPXb \n- (08@HPZ\n- (0X`hpz \n+ (08@HPX`j0k\n+ (08@HPXbP\n+ (08@HPZ0k\n+ (08@HRP\n+ (08@J0k\n+ (08@JP\n+ (0X`hpzP\n  (Boosted +1)\n  (repeat)\n  - IsCheckedOut: %s\\n\n@@ -443,20 +446,25 @@ $schemasystem/schema_enable_defines.h\n (#Player_DisconnectReason_InputAutomation\n ((6\"8(:,<*>\n (0`hpx\n-(1TX\n-(1nX\n-(5HX\n-(5aX\n+(10X\n+(1jX\n+(53X\n+(A2X\n+(A6X\n+(ADX\n+(AMX\n (Documents Filter - Use | for OR, space for AND)\n-(EWX\n+(EPX\n+(EYX\n+(ElX\n (Filter)\n-(IVX\n+(IwY\n+(MSX\n (No Active Session)\n (Outliner Filter)\n-(QLX\n-(QRX\n-(U9X\n-(YJX\n+(Q4X\n+(UKX\n+(YWX\n (YbX\n (\\f\"(\\n&CMsgGCCStrike15_v2_ClientRequestOffers\"\\\\n(CMsgGCCStrike15_v2_ClientRequestSouvenir\n (\\f\"?\\n#CMsgGCCStrike15_v2_Client2GCTextMsg\n@@ -608,16 +616,15 @@ $schemasystem/schema_enable_defines.h\n (\\v2\\v.CMsgVector\n (\\v2\\v.CMsg_CVars:\n (\\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z\n-(avX\n (default)\n-(e2X\n-(i3X\n-(iUX\n-(ihX\n+(i8X\n+(m6X\n (null)\n-(qHX\n-(udX\n-(ygX\n+(qEX\n+(qIX\n+(qgX\n+(qxX\n+(ujX\n ) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z\n )#GameUI_Disconnect_PureServer_ClientExtra\n )#GameUI_Disconnect_RemoteProblem_BadCrypt\n@@ -3025,8 +3032,9 @@ $schemasystem/schema_enable_defines.h\n /weapons/customization/paints_gloves/\n 0$2z4\n 08@HP\n-08@HR\n-08@J \n+08@HR0k\n+08@JP\n+08B0k\n 08\\fj\n 0:<\\n\\fdelta_ignore\n 0T.Q\n@@ -3206,6 +3214,7 @@ $schemasystem/schema_enable_defines.h\n 2\\r?hideEvent@QWidget@@MEAAXPEAVQHideEvent@@@Z\n 2\\tV_isnand\n 2\\v?event@QAction@@MEAA_NPEAVQEvent@@@Z\n+2\\vpT\n 2aboutToShow()\n 2activated( int )\n 2changed()\n@@ -3277,6 +3286,7 @@ $schemasystem/schema_enable_defines.h\n 5\\n\\vnested_type\n 5\\n\\vtype_caches\n 5\\v?event@QCheckBox@@MEAA_NPEAVQEvent@@@Z\n+6Pr?\n 6[?setRenderHint@QPainter@@QEAAXW4RenderHint@1@_N@Z\n 6\\n1k_EGCItemCustomizationNotification_CasketContents\n 6\\n1k_EGCItemCustomizationNotification_ExtractSticker\n@@ -3300,11 +3310,14 @@ $schemasystem/schema_enable_defines.h\n 7\\n2k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment\n 7\\n\\tenum_type\n 8#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay\n-8-eX\n-8-uW\n 8@HP:\n+8@J0k\n+8B0k\n 8Csinf\n+8QfX\n+8UZW\n 8\\f?focusOutEvent@QTextBrowser@@MEAAXPEAVQFocusEvent@@@Z\n+8\\n0k\n 8\\n3k_EGCItemCustomizationNotification_ActivateFanToken\n 8\\n3k_EGCItemCustomizationNotification_GenerateSouvenir\n 8\\n3k_EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2\n@@ -3313,6 +3326,7 @@ $schemasystem/schema_enable_defines.h\n 8\\n\\textension\n 8\\v?event@QCompleter@@MEAA_NPEAVQEvent@@@Z\n 8]?size@QPixmap@@QEBA?AVQSize@@XZ\n+8}qX\n 9\\f?focusOutEvent@QTextEdit@@MEAAXPEAVQFocusEvent@@@Z\n 9\\n4k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification\n 9\\n4k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser\n@@ -4991,9 +5005,13 @@ $schemasystem/schema_enable_defines.h\n @#?write@QTableWidgetItem@@UEBAXAEAVQDataStream@@@Z\n @08@HPX`hpx\n @08N\n+@20k\n+@6pm?\n @HPX\n @HPX&I\n-@HPX`hv0\n+@HPX`hv`\n+@HV0\n+@HdR\n @\\n\\fSingleObject\n @\\n\\vserver_type\n @\\v?event@QFrame@@MEAA_NPEAVQEvent@@@Z\n@@ -5837,6 +5855,7 @@ FGD Variable %s has bad default value %d (has bits set that are not valid choice\n FOLDER\n FORCE_NOT_USED\n F\\n%NETWORK_DISCONNECT_DISCONNECT_BY_USER\n+F\\n0k\n F\\n\\foptimize_for\n F\\n\\rroundstatsall\n F\\v?event@QGroupBox@@MEAA_NPEAVQEvent@@@Z\n@@ -5908,7 +5927,6 @@ FocusOut\n FolderName\n FoliageAnimation\n Follow user preference\n-Fpv?\n FreeEnvironmentStringsW\n FreeLibrary\n From EconItems\n@@ -6567,9 +6585,10 @@ OrigMat\n Other Tools\n Outliner\n OverlayProjectionDirection\n-P08@J \n+P08@JP\n P08J\n P08N\n+P20k\n P?isValid@QColor@@QEBA_NXZ\n P?isValid@QTextCharFormat@@QEBA_NXZ\n P?itemData@QStandardItemModel@@UEBA?AV?$QMap@HVQVariant@@@@AEBVQModelIndex@@@Z\n@@ -6626,12 +6645,13 @@ Patina\n Patina Extended\n Pedestal Model\n PerVertexLighting\n-Pf t?\n+PfPt?\n PgDn\n PgUp\n Physics\n Picks\n PivotPaint\n+Pj0k\n PlayerCommendationInfo\n PlayerDecalDigitalSignature\n PlayerMedalsInfo\n@@ -7317,7 +7337,7 @@ X\\n\\tTeamStats\n X\\n\\vFantasyTeam\n X\\r?horizontalHeader@QTableView@@QEBAPEAVQHeaderView@@XZ\n X\\v?event@QPushButton@@MEAA_NPEAVQEvent@@@Z\n-X`hr\n+X`hr0k\n XpProgressData\n Y?setData@QStandardItem@@UEAAXAEBVQVariant@@H@Z\n Y?setData@QStandardItemModel@@UEAA_NAEBVQModelIndex@@AEBVQVariant@@H@Z\n@@ -7435,7 +7455,6 @@ Zip system failure.\\n\n \\f\\f?focusInEvent@QLabel@@MEAAXPEAVQFocusEvent@@@Z\n \\f\\n EGCItemCustomizationNotification\n \\f\\n?deselect@QLineEdit@@QEAAXXZ\n-\\fp\\vPX\n \\n CMsgItemAcknowledged__DEPRECATED\n \\n CSVCMsg_GameSessionConfiguration\n \\n google/protobuf/descriptor.proto\n@@ -7940,6 +7959,7 @@ Zip system failure.\\n\n \\n\\vvalue_bytes\n \\n\\vxp_category\n \\n\\vyoutube_url\n+\\nqZW\n \\r?darker@QColor@@QEBA?AV1@H@Z\n \\r?data@QStandardItem@@UEBA?AVQVariant@@H@Z\n \\r?data@QStandardItemModel@@UEBA?AVQVariant@@AEBVQModelIndex@@H@Z\n@@ -7975,6 +7995,7 @@ Zip system failure.\\n\n \\r\\n\\tTYPE_BOOL\n \\r\\n\\tTYPE_ENUM\n \\r\\r?heightForWidth@QGridLayout@@UEBAHH@Z\n+\\rtext\n \\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z\n \\t?alpha@QColor@@QEBAHXZ\n \\t?alphaF@QColor@@QEBANXZ\n@@ -8106,13 +8127,16 @@ _nodrips\n _sm.png\n _sticker_capsule\n _toolsautosave\n+`20k\n `?validate@QDoubleValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z\n `?validate@QRegExpValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z\n `RTTI\n `\\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z\n `adjustor{\n `anonymous namespace'\n+`b0k\n `copy constructor closure'\n+`d0k\n `default constructor closure'\n `dynamic atexit destructor for '\n `dynamic initializer for '\n@@ -8146,7 +8170,6 @@ _toolsautosave\n `template-type-parameter-\n `typeof'\n `udt returning'\n-`ufX\n `unknown ecsu'\n `vbase destructor'\n `vbtable'\n@@ -8913,7 +8936,6 @@ h\\n,NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING\n h\\r?horizontalScrollbarAction@QTreeView@@MEAAXH@Z\n h\\v?event@QTabWidget@@MEAA_NPEAVQEvent@@@Z\n ha?window@QPalette@@QEBAAEBVQBrush@@XZ\n-ha\\rX\n halfgridsnap\n handle\n hbox\n@@ -8946,7 +8968,7 @@ host_computationtime\n host_frame_dropped_pct_x10\n host_unfiltered_frametime\n hours\n-hpz \n+hpzP\n i ?topLevelWidgets@QApplication@@SA?AV?$QList@PEAVQWidget@@@@XZ\n iValueIn\n i\\f?forward@QTextBrowser@@UEAAXXZ\n@@ -9666,7 +9688,6 @@ my_current_event_stages\n my_current_event_teams\n my_current_team\n n03>Pu\n-n0w?\n nBuildError\n nCentralDirectoryEntries_ThisDisk\n nCentralDirectoryEntries_Total\n@@ -9796,16 +9817,14 @@ owner dead\n owner_only\n owns_polymorphic_data\n p08@H^\n-p0jp\n p0p@\n-p6`s?\n+p20k\n p@HPX`h\\f\n pButton\n pCurrentFocusWidget\n pData\n pEvent\n pFilter\n-pFpv?\n pPrevFocusWidget\n pResultKV\n pV?read@QImageReader@@QEAA?AVQImage@@XZ\n@@ -9869,6 +9888,7 @@ payload\n payment_row_usd\n payment_rules/0/workshop_revenue_share\n payment_us_usd\n+pb0k\n pearlescent\n pedestal display model\n pedestal_display_model"
        },
        {
          "filename": "game/bin/win64/tools/met_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -990,7 +990,7 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n 1/2/3\n 11Y@\n 128 x 128\n-13:36:34\n+13:54:32\n 1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );\n 1AboutAction()\n 1AcceptColorInternal(FatColor_t)"
        },
        {
          "filename": "game/bin/win64/tools/modeldoc_editor_strings.txt",
          "status": "modified",
          "additions": 33,
          "deletions": 31,
          "changes": 64,
          "patch": "@@ -27,7 +27,7 @@\n   R%d: %15s %25s %s\\n\n   Top-level Mesh Op '%s' returning a cached result.\\n\n   V%d: '%s' (%s)\\n\n- !\"#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@\n+ !\"#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n  !\"#$%&'()*+,-./\n  !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\n  #%d: %d Faces, %d Verts, %d Edges\\n\n@@ -686,29 +686,34 @@ $schemasystem/schema_enable_defines.h\n (%d tracks)\n ((6\"8(:,<*>\n (0`hpx\n+(19H\n+(1RH\n (1iH\n (4pZ\\n\n-(5IH\n-(5nH\n-(5vH\n-(9LH\n+(58H\n+(9nH\n+(9wH\n (? Queued)\n (?!\\d)[\\w_]*\n (Advanced Feature) Used to specify special interaction rules or exclusions. References a name in scripts/collision_properties.txt.\n (Anonymous)\n+(AtH\n (Cannot dynamically spawn a prop_static)\n (Custom Colors Disabled)\n (Debug Feature) Used to draw collision with the same material in Physics Debugger as in Hammer.\n (Debug) Visualize Simplification Edges\n+(EDH\n+(EdH\n (Edges to Faces)\n (Edges to Vertices)\n-(EeH\n (EpH\n+(ErH\n (Error)\n (Faces to Edges)\n (Faces to Vertices)\n (Filter)\n-(MNH\n+(I0H\n+(MJH\n (Mesh Substring Filter)\n (Multiple)\n (No Active Session)\n@@ -718,16 +723,12 @@ $schemasystem/schema_enable_defines.h\n (No class selected)\n (Outliner Filter)\n (Preview Outliner Filter)\n-(QGO\n-(QKO\n-(QrH\n+(QeH\n (Specified in project's gameinfo.gi)\n (Steam Audio) Update physics surface property of VMDL files. They are used for picking acoustic material property for Steam Audio.\n-(UBH\n-(UPH\n+(U7H\n (Vertices to Edges)\n (Vertices to Faces)\n-(YAH\n (\\f?focusOutEvent@QAbstractButton@@MEAAXPEAVQFocusEvent@@@Z\n (\\r?hideEvent@QAbstractSpinBox@@MEAAXPEAVQHideEvent@@@Z\n (\\t\"\\r\\n\\vCNETMsg_NOP\"'\\n\n@@ -756,23 +757,20 @@ $schemasystem/schema_enable_defines.h\n (\\v2\\v.CMsgVector\n (\\v2\\v.CMsg_CVars:\n (\\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z\n-(aCH\n-(axH\n+(aAH\n+(aFH\n+(aZH\n (export) %d %s %d %s %s\\n\n (export) %d %s %d %s\\n\n-(i1H\n-(iZH\n (layer %d)\n-(mbH\n-(mmH\n+(m5H\n+(myH\n (no-compile)\n (null)\n-(q9H\n-(qRH\n-(qiH\n-(u8H\n-(ynH\n-(ywH\n+(qqH\n+(qvH\n+(uLH\n+(yfH\n ) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z\n )#GameUI_Disconnect_PureServer_ClientExtra\n )#GameUI_Disconnect_RemoteProblem_BadCrypt\n@@ -13145,8 +13143,6 @@ $schemasystem/schema_enable_defines.h\n 8-byte data pool\n 8@HP:\n 8Csinf\n-8QSH\n-8YGH\n 8\\f?focusOutEvent@QTextBrowser@@MEAAXPEAVQFocusEvent@@@Z\n 8\\n\\textension\n 8\\v?event@QCompleter@@MEAA_NPEAVQEvent@@@Z\n@@ -13794,6 +13790,7 @@ $schemasystem/schema_enable_defines.h\n ?MoveFrom@CBufferString@@QEAAXAEAV1@@Z\n ?Nearest@CVertexKDTree@@QEBAXAEBV?$Vec3D@M@@AEAV?$CUtlVectorFixedGrowable@PEBM$0EA@H@@@Z\n ?OutputIndentation@IFormatOutputStream@@UEAAXXZ\n+?PaV\n ?ParallelCallQueued@CCallQueue@@QEAAXPEBDPEAVIThreadPool@@@Z\n ?ParseToken@CUtlBuffer@@QEAA_NPEBD0PEADH@Z\n ?PathJoin@CUtlString@@SA?AV1@PEBD0@Z\n@@ -19840,7 +19837,7 @@ Grow or Shrink\n Grow or shrink a selection\n Grow the selection by adding contiguous components to the selection.\n H.FM\n-H5CO\n+H1DO\n HAC K  Unused Binding\n HELPER_BONE\n HH:mm:ss\n@@ -19850,6 +19847,7 @@ HSVA\n HSVA\\t\n HSequence ID\n HUD Display\n+HYDO\n Hack Dota Layer Opaque\n Hack Dota Layer Opaque Translucent\n HairShader\n@@ -19959,7 +19957,6 @@ How much to consider facing angle in occlusion.\n How quickly the elasticity target pose changes to match the current pose\n How sensitive the setting thresholds for 'stationary' should be - a value of 1 means use the vdata settings directly.\n How the end effector should be rotated after the solve.\n-HqDO\n Hud Settings\n Hull\n Hull Per Element\n@@ -20148,6 +20145,7 @@ Importing a file whose mod (%s) is not in the leafiest search path.<br>Do you wa\n Imports The Skeleton From The Specified File Or SkeletonFile Node\n In Frame\n In-Game Animation Capture\n+InEO\n InFrame\n InFrame frame, also called \"apex\" and \"in\", can be aliased via \"entrytag\" in sequence KV\n Inactive events ignored\n@@ -25249,14 +25247,14 @@ YCbCrCoefficients\n YCbCrPositioning\n YCbCrSubsampling\n YClipPathUnits\n-YJEO\n YO?insertColumns@QStandardItemModel@@UEAA_NHHAEBVQModelIndex@@@Z\n YPosition\n YResolution\n YY?setDropAction@QDropEvent@@QEAAXW4DropAction@Qt@@@Z\n Y\\n)NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS\n Y\\n*NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW\n Y\\n0NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID\n+Y\\nEO\n Y\\tV_roundf\n Y\\v?event@QRadioButton@@MEAA_NPEAVQEvent@@@Z\n Yaw Bounce\n@@ -25504,6 +25502,7 @@ Zpm\"U\n \\n?editorEvent@QStyledItemDelegate@@MEAA_NPEAVQEvent@@PEAVQAbstractItemModel@@AEBVQStyleOptionViewItem@@AEBVQModelIndex@@@Z\n \\nDescription: %s\n \\nErrors Found:\\n%s\n+\\nGGH\n \\nIHDRPLTEIDATIENDtRNScHRMgAMAiCCPsBITsRGBtEXtzTXtiTXtbKGDhISTpHYssPLTtIMEoFFseXIf\n \\nThickness: %.1f [inches]\n \\n[ERR] Not enough memory, shop for some more RAM. See you!\\n\n@@ -25577,7 +25576,6 @@ Zpm\"U\n \\n\\voutput_type\n \\n\\vsource_file\n \\n\\vspawn_count\n-\\neEO\n \\ng default\\n\n \\nh?oT\n \\nk>oB\n@@ -25895,6 +25893,8 @@ _zero\n `Q?lightnessF@QColor@@QEBANXZ\n `RTTI\n `V?queryKeyboardModifiers@QGuiApplication@@SA?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ\n+`YFO\n+`YHH\n `\\r?entryInfoList@QDir@@QEBA?AV?$QList@VQFileInfo@@@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z\n `\\tV_sinf\n `\\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z\n@@ -25926,6 +25926,7 @@ _zero\n `omni callsig'\n `placement delete closure'\n `placement delete[] closure'\n+`qGO\n `scalar deleting destructor'\n `string'\n `template static data member constructor helper'\n@@ -25949,6 +25950,7 @@ _zero\n `virtual displacement map'\n `vtordispex{\n `vtordisp{\n+`yFO\n a6>r\n a:fulltype\n a:typeparam"
        },
        {
          "filename": "game/bin/win64/tools/pet_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -9477,6 +9477,7 @@ Zpm\"U\n \\r\\f\\v\\v\\n\\n\\t\\t\\t\\t\\t\n \\r\\r?heightForWidth@QGridLayout@@UEBAHH@Z\n \\r\\tV_expf\n+\\rpSp\n \\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z\n \\t?alpha@QColor@@QEBAHXZ\n \\t?alphaF@QColor@@QEBANXZ"
        },
        {
          "filename": "game/bin/win64/tools/postprocessingeditor_strings.txt",
          "status": "modified",
          "additions": 7,
          "deletions": 8,
          "changes": 15,
          "patch": "@@ -293,11 +293,11 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n (Filter)\n (No Active Session)\n (No Asset)\n+(Ykm\n (\\f?focusOutEvent@QAbstractButton@@MEAAXPEAVQFocusEvent@@@Z\n (\\r?hideEvent@QAbstractSpinBox@@MEAAXPEAVQHideEvent@@@Z\n (\\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z\n (null)\n-(ykm\n ) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z\n )\\f?focusOutEvent@QAbstractItemView@@MEAAXPEAVQFocusEvent@@@Z\n )\\r?hideEvent@QComboBox@@MEAAXPEAVQHideEvent@@@Z\n@@ -3047,15 +3047,14 @@ $\\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z\n ?userType@QVariant@@QEBAHXZ\n ?valueToKeys@QMetaEnum@@QEBA?AVQByteArray@@H@Z\n ?xMk\n-?xNk\n ?ysB\n @#?write@QTableWidgetItem@@UEBAXAEAVQDataStream@@@Z\n @Integer overflow in %s\n @PXk\n+@Tgm\n @\\v?event@QFrame@@MEAA_NPEAVQEvent@@@Z\n @^8U)zj\n @spawn\n-@tgm\n A fatal error occurred.\n A new location must be selected in order to save the file.\n A resource error occurred.\n@@ -4146,9 +4145,10 @@ Greens\n Grid layout should be an array of arrays\n Group3Options\n Group4Options\n+H%gm\n HAC K  Unused Binding\n-HEgm\n HH:mm:ss\n+HMgm\n HSLA\n HSLA\\t\n HSVA\n@@ -4164,7 +4164,7 @@ Hide\n Hide unless error/warning occurs\n High Contrast\n Highlights\n-Hmgm\n+Hihm\n Home\n Horizontal differencing \"Predictor\" not supported with %d-bit samples\n HorizontalStrafeCamera\n@@ -5581,6 +5581,7 @@ Y?setHotSpot@QDrag@@QEAAXAEBVQPoint@@@Z\n Y?setHslF@QColor@@QEAAXNNNN@Z\n Y?setHsvF@QColor@@QEAAXNNNN@Z\n Y?setIcon@QStandardItem@@QEAAXAEBVQIcon@@@Z\n+YBim\n YCbCrCoefficients\n YCbCrPositioning\n YCbCrSubsampling\n@@ -5593,7 +5594,6 @@ Y\\tV_roundf\n Y\\v?event@QRadioButton@@MEAA_NPEAVQEvent@@@Z\n YawCameraLeft\n YawCameraRight\n-Ybim\n Yellow\n Yellows\n Yes - Discard and reload from disk\n@@ -5767,7 +5767,6 @@ Zpm\"U\n \\r\\f\\v\\v\\n\\n\\t\\t\\t\\t\\t\n \\r\\r?heightForWidth@QGridLayout@@UEBAHH@Z\n \\r\\tV_expf\n-\\rxRk\n \\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z\n \\t?addPolygon@QPainterPath@@QEAAXAEBVQPolygonF@@@Z\n \\t?alpha@QColor@@QEBAHXZ\n@@ -5887,13 +5886,13 @@ _nextafter\n _toolsautosave\n _volumeatlas_\n _wjb\n+`9km\n `?validate@QDoubleValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z\n `?validate@QIntValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z\n `?value@QColor@@QEBAHXZ\n `?valueF@QColor@@QEBANXZ\n `Q?lightnessF@QColor@@QEBANXZ\n `RTTI\n-`Ykm\n `\\r?entryInfoList@QDir@@QEBA?AV?$QList@VQFileInfo@@@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z\n `\\tV_sinf\n `\\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z"
        },
        {
          "filename": "game/bin/win64/tools/sfm_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 2,
          "changes": 3,
          "patch": "@@ -712,7 +712,6 @@ $schemasystem/schema_enable_defines.h\n ---- dmxconvert output ----\\n\n ---------------------------\\n\n -> Success (%d attempts)\\n\n--?VertexColorUVPos_t\n -\\nLx.\\nAh/\\n/4h\n -cmd\n -memory-\n@@ -13505,6 +13504,7 @@ Velocity Inherit from Control Point\n Velocity Noise\n Velocity Random\n Velocity Repulse from World\n+VertexColorUVPos_t\n VertexElementAnnotation\n VertexGenericIntegerData\n VertexPaintBlendParams\n@@ -17409,7 +17409,6 @@ zero_value\n {flat}\n {for \n |\"?verticalHeader@QTableView@@QEBAPEAVQHeaderView@@XZ\n-|BhE\n }\\n?connectOutputInterface@QFutureWatcherBase@@IEAAXXZ\n }\\n?dragMoveEvent@QAbstractItemView@@MEAAXPEAVQDragMoveEvent@@@Z\n }\\r?erase@QListData@@QEAAPEAPEAXPEAPEAX@Z"
        },
        {
          "filename": "game/bin/win64/vrad3_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -2730,7 +2730,7 @@ path_trace_triangles_gpu_init\n path_trace_triangles_gpu_shutdown\n path_trajectory\n pattern\n-pc64 Feb  9 2026 13:35:40\n+pc64 Feb 23 2026 13:53:16\n permission denied\n physicsSimplificationError\n physicsSimplificationOverride"
        },
        {
          "filename": "game/csgo/bin/linuxsteamrt64/libclient_strings.txt",
          "status": "modified",
          "additions": 8,
          "deletions": 6,
          "changes": 14,
          "patch": "@@ -9103,6 +9103,7 @@ $taser_charge\n 4tpD\n 4zj@1;IJ\n 4|2;#GameUI_Retake_Card_LightEmUp,1,1,rifle1,grenade0|2;#GameUI_Retake_Card_Kobe,1,1,rifle1,grenade2|1;#GameUI_Retake_Card_1g,1,1,rifle1,grenade3|1;#GameUI_Retake_Card_DisappearingAct,1,1,rifle1,grenade1|1;#GameUI_Retake_Card_EyesOnTarget,1,1,weapon_aug\n+4~3<M\n 5'0v2ZP\n 5-535;5A5Q5e5o5q5w5{5}5\n 5-\\rGw\n@@ -9303,6 +9304,7 @@ $taser_charge\n 8192\n 8285-YOAZ-6049\n 82\\n:XPH\n+83\\nN\n 851Pe\n 8835-KLXV-0292\n 8<pl\n@@ -9565,7 +9567,6 @@ $taser_charge\n <weapon>\n =!=-=3=7=?=C=o=s=u=y={=\n =&sf9\n-=3fL\n == %d Entities Dumped\\n\n == PulseGraphDef ==\\n\n == false\\n\n@@ -26357,7 +26358,7 @@ _var\n _xU`u\n _}eOk\n `28)fk\n-`43!D\n+`43!T\n `:zQF\n `D$daM-l\n `DZG\n@@ -28566,8 +28567,8 @@ component\n composite_inputs\n composite_material_order\n composite_material_path\n-compositematerialmanager.cpp(3293): \n-compositematerialmanager.cpp(3316): \n+compositematerialmanager.cpp(3300): \n+compositematerialmanager.cpp(3323): \n compositematerials/compositematerialgamesystem.cpp\n compositematerialslib\n compressed length too long\n@@ -31699,7 +31700,7 @@ i2d_pr.c\n i2o_ECPublicKey\n i2s_ASN1_ENUMERATED\n i2s_ASN1_INTEGER\n-i4@E\n+i4@U\n i4a.\"\n i5BH\n iA5StringSyntax\n@@ -33062,6 +33063,7 @@ kv 0x%p Release refcount == %d\\n\n kw.6#\n k~Rz\n l <= sizeof(c->iv)\n+l&+3Sl\n l&rB6\n l4Ot\n l7@J\n@@ -38453,6 +38455,7 @@ t1_ext.c\n t1_lib.c\n t1_reneg.c\n t2U \n+t3@P\n t4O_\n t80z\n tA`KO/3G!\\n7h=\n@@ -40575,7 +40578,6 @@ y#y&Jb\n y-offset\n y0JY\n y2Cu\n-y3}o\n y;w9\n y?iLa\n yG/9"
        },
        {
          "filename": "game/csgo/bin/linuxsteamrt64/libmatchmaking_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -209,7 +209,6 @@ $%llx\n 54CProductInfo_SetRichPresenceLocalization_Request_Token\n 59CChinaAgreementSessions_StartAgreementSessionInGame_Request\n 59CQuest_PublisherAddCommunityItemsToPlayer_Request_Attribute\n-5Sh&\n 60CChinaAgreementSessions_StartAgreementSessionInGame_Response\n 60CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule\n 61CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule\n@@ -461,6 +460,7 @@ GamesTypes: unable to set convars. There are no convars for game type/mode (%s:%\n GamesTypes: unable to set game type and mode. Could not find type/mode matching type:%s/mode:%s.\\n\n GamesTypes: unable to set game type and mode. Game type value is outside valid range.  (value == %d)\\n\n GetPchTempTextBuffer() called after UninitTempTextBuffers()\n+Host settings have bad key %s:%d\\n\n HostUtils001\n InetSearchServerDetails\n InetSearchServerDetails/pingxuid"
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 48,
          "deletions": 48,
          "changes": 96,
          "patch": "@@ -40201,7 +40201,7 @@ models/props/de_nuke/windows/nuke_window_93x76_broken_trans_psd_72f14967.vtex_c\n models/props/de_nuke/windows/nuke_window_93x76_broken_vmat_g_tglasstintcolor_911c8aca.vtex_c CRC:00e3a1d3b0 size:1952\n models/props/de_nuke/windows/nuke_window_unbroken.vmat_c CRC:00db46b8fb size:3504\n models/props/de_nuke/windows/nuke_window_unbroken_vmat_g_tglasstintcolor_911c8aca.vtex_c CRC:00e3a1d3b0 size:1952\n-models/props/de_overpass/balloon.vmdl_c CRC:000234b448 size:11064\n+models/props/de_overpass/balloon.vmdl_c CRC:005b842743 size:17009\n models/props/de_overpass/balloon_breakable.vmdl_c CRC:0026ea4ca2 size:11953\n models/props/de_overpass/bank_sign.vmdl_c CRC:006a8aae99 size:17578\n models/props/de_overpass/cafe_display_cabinet.vmdl_c CRC:00494f7b2b size:15573\n@@ -74099,12 +74099,12 @@ panorama/images/map_icons/screenshots/1080p/de_nuke_2_png.vtex_c CRC:00a91003ff\n panorama/images/map_icons/screenshots/1080p/de_nuke_3_png.vtex_c CRC:00a1f45184 size:2683396\n panorama/images/map_icons/screenshots/1080p/de_nuke_4_png.vtex_c CRC:0044245a10 size:2267537\n panorama/images/map_icons/screenshots/1080p/de_nuke_png.vtex_c CRC:00c9829a43 size:2609065\n-panorama/images/map_icons/screenshots/1080p/de_overpass_1_png.vtex_c CRC:005560fa7b size:3562602\n-panorama/images/map_icons/screenshots/1080p/de_overpass_2_png.vtex_c CRC:00baf69758 size:3455292\n-panorama/images/map_icons/screenshots/1080p/de_overpass_3_png.vtex_c CRC:00a5d18197 size:2972773\n-panorama/images/map_icons/screenshots/1080p/de_overpass_4_png.vtex_c CRC:000c846f63 size:3418050\n-panorama/images/map_icons/screenshots/1080p/de_overpass_5_png.vtex_c CRC:0065a71b44 size:3330129\n-panorama/images/map_icons/screenshots/1080p/de_overpass_png.vtex_c CRC:00dbd2a310 size:3408168\n+panorama/images/map_icons/screenshots/1080p/de_overpass_1_png.vtex_c CRC:003b761633 size:3558047\n+panorama/images/map_icons/screenshots/1080p/de_overpass_2_png.vtex_c CRC:005f710f80 size:3457142\n+panorama/images/map_icons/screenshots/1080p/de_overpass_3_png.vtex_c CRC:0088d06e56 size:2971254\n+panorama/images/map_icons/screenshots/1080p/de_overpass_4_png.vtex_c CRC:003ad145b1 size:3412505\n+panorama/images/map_icons/screenshots/1080p/de_overpass_5_png.vtex_c CRC:0096fa6c94 size:3321647\n+panorama/images/map_icons/screenshots/1080p/de_overpass_png.vtex_c CRC:002aa62bb5 size:3393714\n panorama/images/map_icons/screenshots/1080p/de_poseidon_png.vtex_c CRC:003f163c21 size:1575971\n panorama/images/map_icons/screenshots/1080p/de_sanctum_png.vtex_c CRC:00e1e5d5ef size:3205096\n panorama/images/map_icons/screenshots/1080p/de_stronghold_png.vtex_c CRC:00a176bc85 size:2855140\n@@ -74137,7 +74137,7 @@ panorama/images/map_icons/screenshots/360p/de_dust_png.vtex_c CRC:007fd5e1b6 siz\n panorama/images/map_icons/screenshots/360p/de_inferno_png.vtex_c CRC:0012ebbc61 size:404600\n panorama/images/map_icons/screenshots/360p/de_mirage_png.vtex_c CRC:008449f607 size:454106\n panorama/images/map_icons/screenshots/360p/de_nuke_png.vtex_c CRC:00bfe7927f size:353074\n-panorama/images/map_icons/screenshots/360p/de_overpass_png.vtex_c CRC:0020dd2112 size:420529\n+panorama/images/map_icons/screenshots/360p/de_overpass_png.vtex_c CRC:00ed9d8c68 size:419660\n panorama/images/map_icons/screenshots/360p/de_poseidon_png.vtex_c CRC:00a25b4ca2 size:332332\n panorama/images/map_icons/screenshots/360p/de_sanctum_png.vtex_c CRC:00d64af9e3 size:478326\n panorama/images/map_icons/screenshots/360p/de_stronghold_png.vtex_c CRC:00bd6e04f1 size:411925\n@@ -74209,12 +74209,12 @@ panorama/images/map_icons/screenshots/720p/de_nuke_2_png.vtex_c CRC:00fd70de3c s\n panorama/images/map_icons/screenshots/720p/de_nuke_3_png.vtex_c CRC:00fec523a7 size:1268819\n panorama/images/map_icons/screenshots/720p/de_nuke_4_png.vtex_c CRC:0043518b7d size:1074973\n panorama/images/map_icons/screenshots/720p/de_nuke_png.vtex_c CRC:00285275dc size:1256338\n-panorama/images/map_icons/screenshots/720p/de_overpass_1_png.vtex_c CRC:00843db6c8 size:1591743\n-panorama/images/map_icons/screenshots/720p/de_overpass_2_png.vtex_c CRC:006fc689ff size:1609605\n-panorama/images/map_icons/screenshots/720p/de_overpass_3_png.vtex_c CRC:0019e08fa2 size:1347968\n-panorama/images/map_icons/screenshots/720p/de_overpass_4_png.vtex_c CRC:00c49dc062 size:1604447\n-panorama/images/map_icons/screenshots/720p/de_overpass_5_png.vtex_c CRC:00c053f00e size:1523012\n-panorama/images/map_icons/screenshots/720p/de_overpass_png.vtex_c CRC:0064ff88c7 size:1574652\n+panorama/images/map_icons/screenshots/720p/de_overpass_1_png.vtex_c CRC:00e1be8f78 size:1589528\n+panorama/images/map_icons/screenshots/720p/de_overpass_2_png.vtex_c CRC:00b8084088 size:1611145\n+panorama/images/map_icons/screenshots/720p/de_overpass_3_png.vtex_c CRC:0065c7fc58 size:1346677\n+panorama/images/map_icons/screenshots/720p/de_overpass_4_png.vtex_c CRC:0072907264 size:1595577\n+panorama/images/map_icons/screenshots/720p/de_overpass_5_png.vtex_c CRC:00335acec6 size:1520686\n+panorama/images/map_icons/screenshots/720p/de_overpass_png.vtex_c CRC:002fb8983b size:1569997\n panorama/images/map_icons/screenshots/720p/de_poseidon_png.vtex_c CRC:00cccf8d37 size:1003124\n panorama/images/map_icons/screenshots/720p/de_sanctum_png.vtex_c CRC:008f6cbf76 size:1644056\n panorama/images/map_icons/screenshots/720p/de_stronghold_png.vtex_c CRC:009cf09cb1 size:1431771\n@@ -75073,7 +75073,7 @@ panorama/scripts/common/formattext.vts_c CRC:00b9d2d472 size:17934\n panorama/scripts/common/gamerules_constants.vts_c CRC:00b6a27ad2 size:3294\n panorama/scripts/common/hold_button.vts_c CRC:00eecf0766 size:8974\n panorama/scripts/common/icon.vts_c CRC:0013e31a4c size:4638\n-panorama/scripts/common/item_context_entries.vts_c CRC:0097e878a4 size:122606\n+panorama/scripts/common/item_context_entries.vts_c CRC:00cbd5fefe size:122590\n panorama/scripts/common/iteminfo.vts_c CRC:00a10938ec size:41710\n panorama/scripts/common/licenseutil.vts_c CRC:001a51d7f3 size:5006\n panorama/scripts/common/prime_button_action.vts_c CRC:003673d8e2 size:3374\n@@ -75186,7 +75186,7 @@ panorama/scripts/popups/popup_directchallenge_join.vjs_c CRC:00ef5b51d1 size:586\n panorama/scripts/popups/popup_directchallenge_steamgroups.vjs_c CRC:003a9e0207 size:3268\n panorama/scripts/popups/popup_hud_edge_positions.vts_c CRC:00d58daa7d size:3998\n panorama/scripts/popups/popup_inspect_action-bar.vts_c CRC:0085056d82 size:42334\n-panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:003570fbc4 size:60654\n+panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:005a953d23 size:62158\n panorama/scripts/popups/popup_inspect_header.vts_c CRC:00b455eb14 size:9822\n panorama/scripts/popups/popup_inspect_purchase-bar.vts_c CRC:00367b936c size:18990\n panorama/scripts/popups/popup_inspect_rental-bar.vts_c CRC:002e1b85c6 size:28734\n@@ -75394,7 +75394,7 @@ panorama/styles/particle_controls.vcss_c CRC:00585f2c54 size:2838\n panorama/styles/party.vcss_c CRC:005de7e9f9 size:11940\n panorama/styles/player_stats_card.vcss_c CRC:005cf61fd1 size:13389\n panorama/styles/playercard.vcss_c CRC:003a4613e1 size:24658\n-panorama/styles/popups/popup_accept_match.vcss_c CRC:00d5b1bd1a size:22462\n+panorama/styles/popups/popup_accept_match.vcss_c CRC:009b2a5dd0 size:22478\n panorama/styles/popups/popup_acknowledge_item.vcss_c CRC:00fc02e964 size:10072\n panorama/styles/popups/popup_acknowledge_xpgrant.vcss_c CRC:00366d2d48 size:6275\n panorama/styles/popups/popup_add_friend.vcss_c CRC:00a5a41c13 size:2694\n@@ -78627,36 +78627,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702\n radial_quickinventory.txt CRC:005a0c1bf5 size:1080\n rebuy.txt CRC:008332da3a size:1688\n resource/clientscheme.res CRC:001b42ad42 size:14978\n-resource/csgo_brazilian.txt CRC:00078ffd06 size:4771021\n-resource/csgo_bulgarian.txt CRC:00e5d2a5c8 size:7270050\n-resource/csgo_czech.txt CRC:00691a5230 size:4861123\n-resource/csgo_danish.txt CRC:00253fccf7 size:4750400\n-resource/csgo_dutch.txt CRC:0065319465 size:4799651\n-resource/csgo_english.txt CRC:00da40bab3 size:4605922\n-resource/csgo_finnish.txt CRC:002e484639 size:4720696\n-resource/csgo_french.txt CRC:002aca9d94 size:4989591\n-resource/csgo_german.txt CRC:007fa4727b size:4927937\n-resource/csgo_greek.txt CRC:003f27c32c size:6805089\n-resource/csgo_hungarian.txt CRC:00b60c1e4d size:4832489\n-resource/csgo_indonesian.txt CRC:0019492003 size:4476068\n-resource/csgo_italian.txt CRC:00df942ebb size:4914881\n-resource/csgo_japanese.txt CRC:009e1c4560 size:5042632\n-resource/csgo_koreana.txt CRC:006151a9d3 size:4839368\n-resource/csgo_latam.txt CRC:00cd3c45c8 size:4925106\n-resource/csgo_norwegian.txt CRC:0090138935 size:4678258\n-resource/csgo_polish.txt CRC:00b0e451b2 size:5082879\n-resource/csgo_portuguese.txt CRC:000daf52ff size:4820717\n-resource/csgo_romanian.txt CRC:002efac728 size:5023820\n-resource/csgo_russian.txt CRC:00cce31bb6 size:6298239\n-resource/csgo_schinese.txt CRC:00e2cc1dc2 size:4670790\n+resource/csgo_brazilian.txt CRC:0023fc4773 size:4748290\n+resource/csgo_bulgarian.txt CRC:0075d8823f size:7275591\n+resource/csgo_czech.txt CRC:00adf88619 size:4822531\n+resource/csgo_danish.txt CRC:003f7156d9 size:4727904\n+resource/csgo_dutch.txt CRC:0019b56c9f size:4775931\n+resource/csgo_english.txt CRC:0088bf3aa3 size:4606011\n+resource/csgo_finnish.txt CRC:00d16bd403 size:4697660\n+resource/csgo_french.txt CRC:00f8317ead size:4965159\n+resource/csgo_german.txt CRC:004cb422d3 size:4904031\n+resource/csgo_greek.txt CRC:0020bf17cc size:6771286\n+resource/csgo_hungarian.txt CRC:00a9ed6d15 size:4808918\n+resource/csgo_indonesian.txt CRC:00d51e081e size:4460361\n+resource/csgo_italian.txt CRC:008c7311fc size:4890139\n+resource/csgo_japanese.txt CRC:009b43264e size:5025848\n+resource/csgo_koreana.txt CRC:0094ae07a7 size:4822017\n+resource/csgo_latam.txt CRC:0088605eef size:4901995\n+resource/csgo_norwegian.txt CRC:00155c7d7f size:4656283\n+resource/csgo_polish.txt CRC:00ea6940aa size:5042271\n+resource/csgo_portuguese.txt CRC:0070428009 size:4797723\n+resource/csgo_romanian.txt CRC:0011ba6df7 size:4991821\n+resource/csgo_russian.txt CRC:0043a2d0a3 size:6235328\n+resource/csgo_schinese.txt CRC:00d0741e1a size:4648471\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n-resource/csgo_spanish.txt CRC:006a6d675a size:4888224\n-resource/csgo_swedish.txt CRC:0002929928 size:4757339\n-resource/csgo_tchinese.txt CRC:0085287cbc size:4396622\n-resource/csgo_thai.txt CRC:0078f0d109 size:7725917\n-resource/csgo_turkish.txt CRC:00f6b00ec3 size:4901988\n-resource/csgo_ukrainian.txt CRC:008090d401 size:6335162\n-resource/csgo_vietnamese.txt CRC:00d0fa3d27 size:5168045\n+resource/csgo_spanish.txt CRC:00bc293312 size:4864560\n+resource/csgo_swedish.txt CRC:002feba8e7 size:4757235\n+resource/csgo_tchinese.txt CRC:0000e58d24 size:4374355\n+resource/csgo_thai.txt CRC:00dc403825 size:7703548\n+resource/csgo_turkish.txt CRC:00caac9851 size:4878951\n+resource/csgo_ukrainian.txt CRC:00fc78b542 size:6275298\n+resource/csgo_vietnamese.txt CRC:00ba1e7b5b size:5151447\n resource/game.gameevents CRC:0090de10bc size:9837\n resource/halflife2.vfont CRC:00b064848c size:58000\n resource/mod.gameevents CRC:008dcbd0da size:20719\n@@ -78763,7 +78763,7 @@ scripts/navlinks.vdata_c CRC:007bea7af5 size:878\n scripts/precipitation.vdata_c CRC:009200cb0f size:1164\n scripts/propdata.txt CRC:0067850b5d size:17433\n scripts/propdata.vdata_c CRC:00a2a4c997 size:2408\n-scripts/replay_compatability_settings.txt CRC:001a5cacd8 size:765\n+scripts/replay_compatability_settings.txt CRC:004f682fcd size:912\n scripts/soundmixers.txt CRC:00f0e2ae90 size:39052\n scripts/soundscapes_assault.vsc CRC:00cf8652b9 size:18234\n scripts/soundscapes_inferno_new.vsc CRC:00821d092d size:31309\n@@ -78808,7 +78808,7 @@ scripts/talker/swat_fem.vrr_c CRC:00c4cdd7b0 size:22650\n scripts/tools/anim_preview_archetypes.vdata_c CRC:00d242f917 size:6878\n scripts/tools/game_asset_tags.vdata_c CRC:00559be7bf size:2755\n scripts/weapons.vdata_c CRC:009e00c0ab size:32148\n-scripts/workshop_cvar_whitelist.txt CRC:00b8455714 size:17080\n+scripts/workshop_cvar_whitelist.txt CRC:007ee7ec6e size:17545\n smartprops/bicycle/bicycle_rack.vsmart_c CRC:0097f4a6c4 size:1423\n smartprops/bicycle/bicycle_single.vsmart_c CRC:001f5c91ad size:1628\n smartprops/debris/debris_ceiling_tiles_01.vsmart_c CRC:00c0a90e2e size:2600"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/common/item_context_entries.js",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -943,7 +943,7 @@ var ItemContextEntries;\n                 let oSettings = {\n                     item_id: id,\n                     override_async_btn_style: 'Negative',\n-                    store_item_id: 'delete'\n+                    work_type: 'delete'\n                 };\n                 elPanel.Data().oSettings = oSettings;\n             }"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_async-bar.js",
          "status": "modified",
          "additions": 18,
          "deletions": 0,
          "changes": 18,
          "patch": "@@ -213,6 +213,24 @@ var InspectAsyncActionBar;\n             };\n             HoldButton.SetupButton(btnSettings);\n         }\n+        if (worktype === 'delete') {\n+            elNegative.visible = false;\n+            elOK.visible = false;\n+            const btnHoldAction = elPanel.FindChildInLayoutFile('AsyncItemWorkAcceptNegativeHold');\n+            btnHoldAction.RemoveClass('AsyncItemWorkAcceptNegativeHidden');\n+            const btnSettings = {\n+                btn: btnHoldAction,\n+                tooltip: '#popup_delete_tooltip',\n+                locString: '#popup_' + worktype + '_button',\n+                loopingSound: 'UI.Laptop.ButtonFillLoop',\n+                timerCompleteAction: () => {\n+                    _OnAccept(oSettings, elPanel, true);\n+                    btnHoldAction.enabled = false;\n+                }\n+            };\n+            HoldButton.SetupButton(btnSettings);\n+            return;\n+        }\n         const toolId = InspectShared.GetPopupSetting('tool_id');\n         const itemDefName = InventoryAPI.GetItemDefinitionName(itemId);\n         const btnStyle = InspectShared.GetPopupSetting('override_async_btn_style') === false ?"
        },
        {
          "filename": "game/csgo/pak01_dir/resource/csgo_english.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -48197,6 +48197,7 @@\n \t\t\"popup_delete_title\"\t\"{s:itemname}\"\n \t\t\"popup_delete_desc\"\t\t\"Are you sure you want to delete this item?\"\n \t\t\"popup_delete_warning\"\t\"Deleting an item cannot be undone.\"\n+\t\t\"popup_delete_tooltip\"\t\"Hold to delete this item. Deleting an item cannot be undone.\"\n \t\t\"popup_delete_button\"\t\"Delete Item\"\n \n \t\t\"popup_usegift_title\"\t\"Give {s:itemname}\""
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/replay_compatability_settings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 0,
          "changes": 2,
          "patch": "@@ -17,6 +17,8 @@\n \t\t{ m_OldName =  \"CEntityIndex\"\t\t\t\t \tm_NewName = \"int32\" },\n \t\t{ m_OldName =  \"CSWeaponState_t\"\t\t\t\tm_NewName = \"uint32\" },\n \t\t{ m_OldName =  \"WorldGroupId_t\"\t\t\t\t\tm_NewName = \"uint32\" },\n+\t\t{ m_OldName =  \"PlayerAnimEvent_t\"\t\t\t\tm_NewName = \"WeaponGameplayAnimState\" },\n+\t\t{ m_OldName =  \"WeaponAttackType_t\"\t\t\t\tm_NewName = \"int32\" },\n \t]\n }\t\n "
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt",
          "status": "modified",
          "additions": 26,
          "deletions": 0,
          "changes": 26,
          "patch": "@@ -517,5 +517,31 @@\n \t\t\"weapon_recoil_scale\",\t\t\t\t\t\t\t\t\t\n \t\t\"weapon_reticle_knife_show\",\t\t\t\t\t\t\t\n \t\t\"weapon_sound_falloff_multiplier\",\t\t\t\t\t\t\n+\t\t\"sv_legacy_jump\",\n+\t\t\"sv_gameinstructor_enable\",\n+\t\t\"sv_gameinstructor_disable\",\n+\t\t\"radio\",\n+\t\t\"player_ping\",\n+\t\t\"mp_teamlogo_1\",\n+\t\t\"mp_teamlogo_2\",\n+\t\t\"noclip_fixup\",\n+\t\t\"fov_cs_debug\",\n+\t\t\"sv_show_teammate_death_notification\",\n+\t\t\"sv_standable_normal\",\n+\t\t\"sv_walkable_normal\",\n+\t\t\"+jump\",\n+\t\t\"-jump\",\n+\t\t\"+duck\",\n+\t\t\"-duck\",\n+\t\t\"+forward\",\n+\t\t\"-forward\",\n+\t\t\"+back\",\n+\t\t\"-back\",\n+\t\t\"+left\",\n+\t\t\"-left\",\n+\t\t\"+right\",\n+\t\t\"-right\",\n+\t\t\"+sprint\",\n+\t\t\"-sprint\",\n \t]\n }\n\\ No newline at end of file"
        },
        {
          "filename": "game/csgo/shaders_pc_dir.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -42,8 +42,8 @@ shaders/vfx/csgo_effects_pc_50_psrs.vcs CRC:00754b4e4e size:2290\n shaders/vfx/csgo_effects_pc_50_vs.vcs CRC:00c9ad5bb2 size:14931\n shaders/vfx/csgo_environment.ini CRC:0000000000 size:0\n shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00b5d88360 size:10754\n-shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:0016d9c5d3 size:6997309\n+shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00a5f7913a size:10754\n+shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:00e60d796f size:6999724\n shaders/vfx/csgo_environment_blend_pc_50_psrs.vcs CRC:00436d976f size:2610\n shaders/vfx/csgo_environment_blend_pc_50_vs.vcs CRC:0021e09de1 size:330489\n shaders/vfx/csgo_environment_pc_50_features.vcs CRC:003db16be5 size:6370"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir.txt",
          "status": "modified",
          "additions": 5,
          "deletions": 5,
          "changes": 10,
          "patch": "@@ -47,14 +47,14 @@ shaders/vfx/csgo_effects_vulkan_50_psrs.vcs CRC:00754b4e4e size:2290\n shaders/vfx/csgo_effects_vulkan_50_vs.vcs CRC:00ec4e77ab size:11204\n shaders/vfx/csgo_environment.ini CRC:0000000000 size:0\n shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:003c423a83 size:10658\n-shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:00f0fbe685 size:14790776\n+shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:006de3c747 size:10658\n+shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:00ad9827d7 size:14798623\n shaders/vfx/csgo_environment_blend_vulkan_50_psrs.vcs CRC:00ac22f17f size:2562\n shaders/vfx/csgo_environment_blend_vulkan_50_vs.vcs CRC:001a7153a3 size:215962\n-shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:007dbf3d50 size:10722\n-shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:00f0fbe685 size:14790776\n+shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:0057e0d8c6 size:10722\n+shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:00ad9827d7 size:14798623\n shaders/vfx/csgo_environment_blend_vulkan_60_psrs.vcs CRC:00ac22f17f size:2562\n-shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:004adc6525 size:860536\n+shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:00bad65b64 size:860536\n shaders/vfx/csgo_environment_blend_vulkan_60_vs.vcs CRC:001a7153a3 size:215962\n shaders/vfx/csgo_environment_vulkan_50_features.vcs CRC:00f49795b8 size:6306\n shaders/vfx/csgo_environment_vulkan_50_ps.vcs CRC:005bc4bc93 size:896301"
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000730\n-ServerVersion=2000730\n-PatchVersion=1.41.3.5\n+ClientVersion=2000735\n+ServerVersion=2000735\n+PatchVersion=1.41.3.6\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=10439835\n-VersionDate=Feb 10 2026\n-VersionTime=07:47:09\n+SourceRevision=10470435\n+VersionDate=Feb 23 2026\n+VersionTime=15:06:02"
        }
      ]
    }
  ],
  "note": "Steam buildid via steamcmd is not available on Vercel serverless; using GitHub GameTracking commits instead."
}
9.3.2026, 19.59.57
Assets/UI/maps update (game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt).
Files changed: 18 • +115 / -105
misccontent-change
Changed files
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-10497842
+10506857
game/bin/linuxsteamrt64/libengine2_strings.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1511,6 +1511,7 @@ $lZT
16ILoopModeFactory
16IMatchEventsSink
16IProtobufBinding
+17:52:22
17CBaseCmdKeyValuesI20CCLCMsg_CmdKeyValuesE
17CBaseCmdKeyValuesI20CSVCMsg_CmdKeyValuesE
17CBaseCmdKeyValuesI32CSVCMsg_GameSessionConfigurationE
@@ -1632,7 +1633,6 @@ $lZT
1wsHp
2%sT5
200000
-20:08:06
20CCLCMsg_ClientInfo_t
20CCLCMsg_CmdKeyValues
20CCLCMsg_Diagnostic_t
@@ -5637,7 +5637,7 @@ MapValueRef::SetInt64Value
MapValueRef::SetStringValue
MapValueRef::SetUInt32Value
MapValueRef::SetUInt64Value
-Mar 4 2026
+Mar 6 2026
March
Marked tick %u in '%s'\n
Marker,GPUTimeAvgMS,GPUTimeRangeMS,GPUTimeMinMS,GPUTimeMaxMS\n
game/bin/linuxsteamrt64/liblocalize_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -156,7 +156,6 @@
34CLocalizeCompiledStringSinglePlain
35CLocalizeCompiledStringLocVariables
36CLocalizeCompiledStringMessageFormat
-4k4$
9CLocalize
9ILocalize
:help
game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -2106,7 +2106,6 @@ program
progress
pthread_cancel
purple
-qd$6
radial
radial(
rebeccapurple
game/bin/linuxsteamrt64/libparticles_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -1707,6 +1707,7 @@ PARTICLE_ID
PET_SupportFadingOpaqueModels
PITCH
PREV_XYZ
+PT|JD
PanelID
Parent Map: %s\n
Parent Particle ID
game/bin/linuxsteamrt64/libscenefilecache_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -563,6 +563,7 @@ _response
_rule
_scene_stop_time_
_to_curve_
+aRBi
actors
anchor_actor_name
animclip
game/bin/linuxsteamrt64/libtier0_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -6472,7 +6472,6 @@ _txnal_logic_error_get_msg(void*)
_txnal_runtime_error_get_msg(void*)
_txnal_sso_string_c_str(void const*)
_wWT+
-a lz
a?y#c?sIe?
aC.B
aG0"
game/bin/linuxsteamrt64/libv8system_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -17,6 +17,7 @@
22V8ArrayBufferAllocator
23CKV3ResourceBlockHelper
25IAsyncProcessedDataResult
+7aw\
Bad KV3 data for resource '%s': %s\n
Default size of stack region v8 is allowed to use (in kBytes)
Disable runtime allocation of executable memory for V8.
game/bin/linuxsteamrt64/libworldrenderer_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -154,7 +154,6 @@ Not safe to 'new' this class due to alignment requirements
NumCols() <= V_ARRAYSIZE( s_DummyRow )
Physics
PushCurrentSkewBrightnessValuesToSceneObject
-QAw#Z
RESOURCE_TYPE_ENTITY_LUMP
RESOURCE_TYPE_WORLD
RESOURCE_TYPE_WORLD_NODE
game/bin/win64/csgocfg.exe_strings.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -408,9 +408,9 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
/e,/select,"
/game/
/src/
+09:52:14
0iN>/
11Y@
-12:10:12
1:1: Tokens : ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );
1AcceptIfItemPicked()
1OnAccept()
@@ -1787,7 +1787,7 @@ MVDataOutlinerLeafNameFn
M\n?done@QDialog@@UEAAXH@Z
MapListService_001
Maps
-Mar 4 2026
+Mar 6 2026
March
MaterialUtils_001
MemAlloc_AllocFunc
game/bin/win64/resourcecompiler_strings.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -20707,11 +20707,11 @@ $prefix_element$
1.01 8.0
10 2000
100 22050
+10:00:12
11Y@
11nN
12'0
1280x720
-12:13:36
12v)
14 (default)
15\tr\
@@ -47311,7 +47311,7 @@ pbeWithSHA1And40BitRC2-CBC
pbeWithSHA1And40BitRC4
pbeWithSHA1AndDES-CBC
pbeWithSHA1AndRC2-CBC
-pc64 Mar 4 2026 12:14:54
+pc64 Mar 6 2026 09:58:05
pcPathLengthConstraint
peak_attr
peak_cycle
game/bin/win64/resourceinfo.exe_strings.txt
modified • +68 / -71 • changes: 139
Show patch
@@ -1187,11 +1187,10 @@ $prefix_element$
093@
0;Q5[
0<cz
+0B6@
0C3@
0C5@
0D5@
-0E6@
-0G6@
0H3@
0I3@
0I6@
@@ -1201,46 +1200,41 @@ $prefix_element$
0M5@
0MD5
0N3@
-0N6@
0O4@
+0O6@
0P4@
-0Q6@
+0P6@
0R3@
0T3@
0U3@
0W/5
0W4@
0X3@
0X4@
-0X6@
0Y3@
+0Y6@
0Z@q
0\r0#0)070;0U0Y0[0g0q0y0}0
0b3@
+0b6@
0c3@
-0c6@
0d3@
0e3@
-0e6@
0e\r8
-0f6@
0h3@
0i3@
0i6@
0iN>/
0k3@
-0k6@
-0l6@
-0n6@
0pp@5tqE?|sO541
0q3@
0q6@
0r3@
-0t6@
0tU+xc:
-0u6@
+0w6@
0x%llx
-0x6@
+0y6@
+0z6@
0}dV
1!1'1-191C1E1K1]1a1g1m1s1
1#IND
@@ -1411,15 +1405,15 @@ $prefix_element$
8<pl
8= zp
8A3@
-8A6@
8A6j
8B3@
+8C6@
8ClipBoard
8Csinf
+8D6@
8E3@
8E5@
8F5@
-8F6@
8G5@
8GZS
8H5@
@@ -1430,33 +1424,36 @@ $prefix_element$
8N5@
8O3@
8P3@
-8P6@
8Q3@
8S3@
8SIffK5W
8TZvrv<
8V3@
8W3@
8W6@
-8Y6@
8Z3@
+8Z6@
8\v8!83858A8G8K8S8W8_8e8o8q8}8
8]Vc2
8a6@
8b3@
+8c6@
8ca1
+8d6@
8dS2
-8g6@
+8j6@
+8l6@
8m3@
8n3@
8o3@
8o6@
8p3@
8pe7?
8q-S*]X
+8r6@
+8s6@
8sOy
-8w6@
-8y6@
+8x6@
9#9%9)9/9=9A9M9[9k9y9}9
9)PF
9)jx
@@ -3757,13 +3754,12 @@ H8xp
H=`HY
H@H9xqI
HA3@
+HA6@
HB3@
HBJ\nTRF
HD3@
HD5@
-HE6@
HEAD
-HF6@
HH&a
HH3@
HH:mm:ss
@@ -3778,21 +3774,21 @@ HMAC routines
HMAC-MD5
HMAC-SHA1
HMAC_Init_ex
-HN6@
HO4@
HO8?
+HP6@
HR4@
HT3@
HU3@
HU>mA$_E*
HW3@
-HW6@
HWyn
-HX6@
HY3@
+HY6@
Hammer temp export
HammerMapLoader001
Hash Algorithm:
+Hb6@
HbAta
Hc S
Hc3@
@@ -3802,17 +3798,19 @@ Hd3@
Hd4@
HdEu
He3@
-He6@
Heap32First
Heap32ListFirst
Heap32ListNext
Heap32Next
HelpSystem_001
Hf3@
+Hg6@
Hg>?S
Hh4@
Hhr+g
+Hi6@
Hj3@
+Hj6@
Hk3@
Hl3@
Ho6@
@@ -3826,11 +3824,9 @@ Hostname mismatch
Hp)X?
Hp3@
Hq,r/f
-Hq6@
HqI9x
Ht4qw
-Hw6@
-Hx6@
+Hy6@
H{1S
I"9|OxTex
I+8G
@@ -4480,6 +4476,7 @@ PARSE_BAGS
PARSE_HTTP_LINE1
PARSE_TAGGING
PATHBYADDR
+PB6@
PBE-MD2-DES
PBE-MD2-RC2-64
PBE-MD5-DES
@@ -4499,6 +4496,7 @@ PBKDF2
PBKDF2PARAM
PBMAC1
PC5@
+PD6@
PE5@
PEIF
PEM lib
@@ -4531,7 +4529,6 @@ PEM_write
PEM_write_bio
PF5@
PG5@
-PG6@
PGr]
PHAG2
PHhn}Y
@@ -4655,7 +4652,6 @@ PL5@
PLATFORM
PM3@
PM5@
-PM6@
PN3@
PN4@
PO3@
@@ -4674,7 +4670,6 @@ PPz\v=
PQ3@
PR3@
PR4@
-PR6@
PRB+
PRINTABLE
PRINTABLESTRING
@@ -4696,7 +4691,9 @@ PUT
PV3@
PW3@
PW4@
+PW6@
PZ3@
+PZ6@
Pa6@
Packed store %s with refcount > 0.\n
PackedBlobNormal
@@ -4709,6 +4706,7 @@ Particle Configuration File
ParticleSystemMgr003
Pb3@
Pd4@
+Pd6@
PeekNamedPipe
Peer haven't sent GOST certificate, required for selected ciphersuite
PerVertexLighting
@@ -4719,7 +4717,7 @@ Ph4@
Physics
PhysicsBuilderMgr001
PivotPaint
-Pk6@
+Pl6@
Plat_AttachDebuggerToProcess
Plat_CPUTickFrequency
Plat_CheckSDL
@@ -4767,6 +4765,7 @@ Plat_UnloadSDL
Pm8A?
PmR"H?
Pn3@
+Pn6@
Pointers cannot be used as numeric values
Policy Qualifier CPS
Policy Qualifier User Notice
@@ -4802,12 +4801,13 @@ Process32Next
PropWorldOrigin
PropertyEditorSystem_001
Proxy Certificate Information
+Pt6@
Public Key
Public-Key
Public-Key: (%d bit)\n
Pv6@
Pw3@
-Py6@
+Pz6@
P|iC\r
Q*hd
Q/xtJ2
@@ -6078,62 +6078,52 @@ X9_62_PENTANOMIAL
X9cm
X:vS
XA3@
-XA6@
XB3@
XB`i|
-XC6@
XD3@
-XD6@
XD{p7
+XE6@
XF3@
XF6@
XFle
XG3@
+XG6@
XG[r
XH5@
-XH6@
XI3@
XI5@
+XI6@
XJ3@
XLuC'4
XM4@
XMM{*
XN5@
XNU`{3
-XP6@
XQ6@
XR4@
XRJ2
-XW6@
XWY]
XX3@
XX6@
-XY6@
XYD%
X\tQo
Xa3@
-Xb6@
-Xc6@
Xd3@
Xd3h
-Xd6@
Xe6@
Xf6@
XfJ7
XjfR
Xk3@
Xm3@
-Xn6@
Xo3@
Xo6@
Xp3@
XqgA+
-Xu6@
Xuub
Xw6@
XwA0
Xz"7
-Xz6@
Y-Ny
Y4i%
Y93a=7c@
@@ -7930,24 +7920,24 @@ h93@
hA3@
hB6@
hC3@
+hC6@
+hD6@
hE5@
hEM&!
hF3@
+hF6@
hF\rDz
hFcg
hG3@
-hG6@
+hH6@
hI3@
hJ3@
hJxRX@_
hM4@
-hM6@
hN2D
-hN6@
hO3@
+hO6@
hP4@
-hP6@
-hQ6@
hR3@
hRB.
hS3@
@@ -7956,26 +7946,28 @@ hV3@
hW*m
hW1M
hW_z
-hX6@
hX@e
hZ3@
+hZ6@
h`Zr
hammer
hash
hashAlgorithm
hashFunc
+hb6@
hb`V
hbvc
hc[N
hc\raF
-he6@
+hd6@
header too long
heartbeat request already pending
height
hex:
hex_to_string
hexkey
hg3@
+hg6@
hhwi
hiddenFlags
hiddenGroups
@@ -8011,8 +8003,9 @@ houseIdentifier
hr_H
http request
https proxy request
+hv6@
hvL&
-hy6@
+hw6@
hz6@
h|gg
i <= EVP_MAX_MD_SIZE
@@ -9446,6 +9439,8 @@ pB3@
pC5@
pD4t
pE3@
+pE6@
+pG6@
pG_*h
pH5@
pI5@
@@ -9457,23 +9452,24 @@ pM3@
pM4@
pM5@
pN4@
+pN6@
pO0h
pO4@
pP3@
pQ3@
+pQ6@
pR4@
pRTH
pSPo
pSourceFunc
pSpecified
pT3@
pU>\AL
-pW6@
pX3@
+pX6@
pY3@
p^i9
pa3@
-pa6@
packet length too long
padding check failed
pagerTelephoneNumber
@@ -9508,7 +9504,6 @@ pathlen
pattern
payload + padding <= 16381
payment gateway capabilities
-pb6@
pbeWithMD2AndDES-CBC
pbeWithMD2AndRC2-CBC
pbeWithMD5AndCast5CBC
@@ -9526,7 +9521,7 @@ pc6@
pcPathLengthConstraint
pd3@
pd4@
-pd6@
+pe6@
peer did not return a certificate
peer does not accept heartbeats
peer error
@@ -9568,6 +9563,7 @@ pin_enabled
pivotOffset
pixelAspectRatio
pk3@
+pk6@
pkL'
pkcs
pkcs decoding error
@@ -9601,6 +9597,7 @@ pkeyalg
pkix
pkparameters2group failure
pl3@
+pl6@
pm3@
pn6@
point arithmetic failure
@@ -9644,6 +9641,7 @@ pp&c
pp3@
ppBasis
pq3@
+pq6@
pqualid
pre mac length too long
prefab_has_runtime_entity_by_default
@@ -9707,6 +9705,8 @@ pseudonym
psk identity not found
psk no client cb
psk no server cb
+pt6@
+pu6@
pub:
pub_key
pubkey
@@ -9726,7 +9726,7 @@ publish_data.txt
purecall
pvk data too short
pvk too short
-pw6@
+px6@
pzKD)
q not prime
q&A\nn
@@ -11068,52 +11068,49 @@ x509_store
x931
x93@
xA3@
+xA6@
xC3@
xD5@
-xD6@
xE5@
-xE6@
xF5@
+xF6@
xFKF
xG5@
-xH6@
xJ5@
xL5@
xN5@
-xO6@
xOu\vsF
xP4@
xP6@
-xQ6@
xQfF
-xR6@
xU3@
xUN'
xV3@
xV4@
xW3@
xW4@
+xW6@
xX3@
-xX6@
xY6@
x\v6V
+xa6@
xb3@
xc3@
xe3@
xg-9Ja
xg3@
+xg6@
xh3@
xi3@
-xk6@
xo6@
xp$=S
xpH8
-xq6@
xqI9
xrJ:DCG
xsK;
-xx6@
+xw6@
xxH}
+xy6@
xzxv
y#y&Jb
y0JY
game/bin/win64/tools/met_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -979,6 +979,7 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
/\r?hideEvent@QScrollBar@@MEAAXPEAVQHideEvent@@@Z
/]?size@QImage@@QEBA?AVQSize@@XZ
0123456789)"
+09:54:33
0=Wrap,1=Mirror,2=Clamp,3=Border,4=MirrorOnce
0iN>/
0x%1
@@ -990,7 +991,6 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
1/2/3
11Y@
128 x 128
-12:09:19
1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );
1AboutAction()
1AcceptColorInternal(FatColor_t)
game/bin/win64/vrad3_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -2730,7 +2730,7 @@ path_trace_triangles_gpu_init
path_trace_triangles_gpu_shutdown
path_trajectory
pattern
-pc64 Mar 4 2026 12:11:17
+pc64 Mar 6 2026 09:50:07
permission denied
physicsSimplificationError
physicsSimplificationOverride
game/csgo/bin/linuxsteamrt64/libclient_strings.txt
modified • +8 / -6 • changes: 14
Show patch
@@ -2321,6 +2321,7 @@ $taser_charge
%s------%s--%s%s
%s.bin.usercmds
%s.ctx
+%s.events
%s.txt
%s.vo_preview
%s.vpcf
@@ -2676,6 +2677,7 @@ $taser_charge
)->AmmoPercentage() < 30\n
)->AmmoPercentage() >= 30
)->AmmoPercentage() >= 30\n
+)24.Q
)Ck?B
)Fmk
)J9o
@@ -9106,6 +9108,7 @@ $taser_charge
4tpD
4zj@1;IJ
4|2;#GameUI_Retake_Card_LightEmUp,1,1,rifle1,grenade0|2;#GameUI_Retake_Card_Kobe,1,1,rifle1,grenade2|1;#GameUI_Retake_Card_1g,1,1,rifle1,grenade3|1;#GameUI_Retake_Card_DisappearingAct,1,1,rifle1,grenade1|1;#GameUI_Retake_Card_EyesOnTarget,1,1,weapon_aug
+4~39=
5'0v2ZP
5-535;5A5Q5e5o5q5w5{5}5
5-\rGw
@@ -9567,7 +9570,7 @@ $taser_charge
<weapon>
=!=-=3=7=?=C=o=s=u=y={=
=&sf9
-=3LL
+=3bL
== %d Entities Dumped\n
== PulseGraphDef ==\n
== false\n
@@ -17453,7 +17456,6 @@ JSCreatePanelWithCurrentContext was not called within a context
JSDelayLoadList
JSValueFromKeyValue failed to package parameter %s (type %d)\n
JS_!0
-JY3a
JZIX
J\nHBF
J`KL
@@ -26358,7 +26360,7 @@ _var
_xU`u
_}eOk
`28)fk
-`43;D
+`43ED
`:zQF
`D$daM-l
`DZG
@@ -29443,6 +29445,7 @@ demo-time-max
demo_skip
demo_start
demo_stop
+demo_tick
demo_timescale %f
democontroller
demoplayback
@@ -31677,6 +31680,7 @@ hugepages
hummingbird
hungarian
hungry
+hurt_events
hvL&
hyena
hyphen
@@ -31704,7 +31708,7 @@ i2d_pr.c
i2o_ECPublicKey
i2s_ASN1_ENUMERATED
i2s_ASN1_INTEGER
-i4<E
+i4RE
i4a."
i5BH
iA5StringSyntax
@@ -38454,7 +38458,6 @@ t1_ext.c
t1_lib.c
t1_reneg.c
t2U
-t33@
t4O_
t80z
tA`KO/3G!\n7h=
@@ -40578,7 +40581,6 @@ y#y&Jb
y-offset
y0JY
y2Cu
-y3yo
y;w9
y?iLa
yG/9
game/csgo/pak01_dir.txt
modified • +16 / -10 • changes: 26
Show patch
@@ -51492,6 +51492,8 @@ panorama/images/econ/status_icons/maptoken_favela_png.vtex_c CRC:00c0000e32 size
panorama/images/econ/status_icons/maptoken_favela_small_png.vtex_c CRC:00110e46ab size:14352
panorama/images/econ/status_icons/maptoken_frostbite_png.vtex_c CRC:0082230288 size:200738
panorama/images/econ/status_icons/maptoken_frostbite_small_png.vtex_c CRC:0036cc2d9f size:14352
+panorama/images/econ/status_icons/maptoken_golden_png.vtex_c CRC:00582b479b size:236755
+panorama/images/econ/status_icons/maptoken_golden_small_png.vtex_c CRC:00fbfcacda size:11016
panorama/images/econ/status_icons/maptoken_grail_png.vtex_c CRC:002b555d0d size:236086
panorama/images/econ/status_icons/maptoken_grail_small_png.vtex_c CRC:002e162ca7 size:14448
panorama/images/econ/status_icons/maptoken_grind_png.vtex_c CRC:005e78e609 size:197603
@@ -51536,6 +51538,8 @@ panorama/images/econ/status_icons/maptoken_mutiny_png.vtex_c CRC:000558def6 size
panorama/images/econ/status_icons/maptoken_mutiny_small_png.vtex_c CRC:00f2a5ccb1 size:14352
panorama/images/econ/status_icons/maptoken_overgrown_png.vtex_c CRC:007d0286d8 size:203027
panorama/images/econ/status_icons/maptoken_overgrown_small_png.vtex_c CRC:00bbf55330 size:14352
+panorama/images/econ/status_icons/maptoken_palacio_png.vtex_c CRC:00a21b1edf size:236918
+panorama/images/econ/status_icons/maptoken_palacio_small_png.vtex_c CRC:009572cd84 size:11016
panorama/images/econ/status_icons/maptoken_palais_png.vtex_c CRC:0078b8bc66 size:235831
panorama/images/econ/status_icons/maptoken_palais_small_png.vtex_c CRC:00cbb410b1 size:14384
panorama/images/econ/status_icons/maptoken_pitstop_png.vtex_c CRC:00e00365dc size:199201
@@ -51552,6 +51556,8 @@ panorama/images/econ/status_icons/maptoken_ravine_png.vtex_c CRC:00fb01250a size
panorama/images/econ/status_icons/maptoken_ravine_small_png.vtex_c CRC:00ea521736 size:14352
panorama/images/econ/status_icons/maptoken_resort_png.vtex_c CRC:001a372a49 size:199116
panorama/images/econ/status_icons/maptoken_resort_small_png.vtex_c CRC:00632c4665 size:14352
+panorama/images/econ/status_icons/maptoken_rooftop_png.vtex_c CRC:0089b7910a size:237081
+panorama/images/econ/status_icons/maptoken_rooftop_small_png.vtex_c CRC:0084864871 size:11016
panorama/images/econ/status_icons/maptoken_royal_png.vtex_c CRC:0018dfa709 size:197934
panorama/images/econ/status_icons/maptoken_royal_small_png.vtex_c CRC:00b474a549 size:14352
panorama/images/econ/status_icons/maptoken_ruby_png.vtex_c CRC:00104255a5 size:196741
@@ -78640,33 +78646,33 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702
radial_quickinventory.txt CRC:005a0c1bf5 size:1080
rebuy.txt CRC:008332da3a size:1688
resource/clientscheme.res CRC:001b42ad42 size:14978
-resource/csgo_brazilian.txt CRC:0092249cd1 size:4749369
+resource/csgo_brazilian.txt CRC:00c4dbdc65 size:4752595
resource/csgo_bulgarian.txt CRC:0051f1d888 size:7275358
-resource/csgo_czech.txt CRC:004a6e6a7a size:4822190
+resource/csgo_czech.txt CRC:000d670ae3 size:4826719
resource/csgo_danish.txt CRC:00951053b8 size:4727462
resource/csgo_dutch.txt CRC:000660bedc size:4775598
resource/csgo_english.txt CRC:0084ad8149 size:4609994
resource/csgo_finnish.txt CRC:0087d37809 size:4697236
-resource/csgo_french.txt CRC:004ec42d3b size:4964801
-resource/csgo_german.txt CRC:0086211f1d size:4903688
+resource/csgo_french.txt CRC:0041b4183c size:4969783
+resource/csgo_german.txt CRC:00779ec2ff size:4903720
resource/csgo_greek.txt CRC:00498a1437 size:6771568
-resource/csgo_hungarian.txt CRC:0087f34706 size:4808592
+resource/csgo_hungarian.txt CRC:00318e7eb6 size:4813313
resource/csgo_indonesian.txt CRC:006e89afc6 size:4459909
-resource/csgo_italian.txt CRC:007d5973d5 size:4889840
+resource/csgo_italian.txt CRC:002bddd769 size:4889832
resource/csgo_japanese.txt CRC:00af1893af size:5030539
resource/csgo_koreana.txt CRC:00263d9b4d size:4821492
resource/csgo_latam.txt CRC:0017d451a3 size:4901564
-resource/csgo_norwegian.txt CRC:0074fe5715 size:4657691
+resource/csgo_norwegian.txt CRC:00ed8cea24 size:4660456
resource/csgo_polish.txt CRC:0077d79c9b size:5041830
-resource/csgo_portuguese.txt CRC:00e2dfa5eb size:4797683
+resource/csgo_portuguese.txt CRC:001c492a2d size:4802078
resource/csgo_romanian.txt CRC:008bf7f527 size:4991365
resource/csgo_russian.txt CRC:002557aa2c size:6234365
-resource/csgo_schinese.txt CRC:008ed01717 size:4648172
+resource/csgo_schinese.txt CRC:0092fab19f size:4652524
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
resource/csgo_spanish.txt CRC:0087fea09b size:4864146
resource/csgo_swedish.txt CRC:0033da2639 size:4756896
resource/csgo_tchinese.txt CRC:0005e6ab7d size:4373922
-resource/csgo_thai.txt CRC:008d8dfc1e size:7702764
+resource/csgo_thai.txt CRC:00f68f808d size:7702767
resource/csgo_turkish.txt CRC:00e041e974 size:4878518
resource/csgo_ukrainian.txt CRC:00c945fbd2 size:6274622
resource/csgo_vietnamese.txt CRC:00740a29e7 size:5151030
game/csgo/readonly_tools_asset_info.txt
modified • +6 / -0 • changes: 6
Show patch
@@ -123046,3 +123046,9 @@ panorama/images/econ/status_icons/maptoken_warden_png.vtex
panorama/images/econ/status_icons/maptoken_warden_small_png.vtex
materials/models/inventory_items/music_kit/label_cs2.vmat
materials/models/inventory_items/music_kit/label_cs2_color_psd_ad840642.vtex
+panorama/images/econ/status_icons/maptoken_golden_png.vtex
+panorama/images/econ/status_icons/maptoken_golden_small_png.vtex
+panorama/images/econ/status_icons/maptoken_palacio_png.vtex
+panorama/images/econ/status_icons/maptoken_palacio_small_png.vtex
+panorama/images/econ/status_icons/maptoken_rooftop_png.vtex
+panorama/images/econ/status_icons/maptoken_rooftop_small_png.vtex
game/csgo/steam.inf
modified • +5 / -5 • changes: 10
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000745
-ServerVersion=2000745
+ClientVersion=2000747
+ServerVersion=2000747
PatchVersion=1.41.3.8
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=10497890
-VersionDate=Mar 05 2026
-VersionTime=11:19:02
+SourceRevision=10506889
+VersionDate=Mar 09 2026
+VersionTime=11:24:19
5.3.2026, 21.13.31
Build/manifest metadata update (built_from_cl.txt, steam.inf, pak01_dir.txt). Likely a new build number/content manifest refresh.
Files changed: 3 • +35 / -35
miscmetadata-only
Changed files
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-10494118
+10497842
game/csgo/pak01_dir.txt
modified • +29 / -29 • changes: 58
Show patch
@@ -74318,7 +74318,7 @@ panorama/images/overheadmaps/de_ancient_radar_psd.vtex_c CRC:00b99cf335 size:118
panorama/images/overheadmaps/de_ancient_v1_radar_psd.vtex_c CRC:009793f407 size:118289
panorama/images/overheadmaps/de_anubis_radar_psd.vtex_c CRC:00ead30193 size:272254
panorama/images/overheadmaps/de_dust2_radar_psd.vtex_c CRC:00c757b3ef size:212310
-panorama/images/overheadmaps/de_inferno_radar_psd.vtex_c CRC:00d4a2fd5a size:189901
+panorama/images/overheadmaps/de_inferno_radar_psd.vtex_c CRC:00e76445b2 size:181948
panorama/images/overheadmaps/de_mirage_radar_psd.vtex_c CRC:00cecbb316 size:177297
panorama/images/overheadmaps/de_nuke_lower_radar_psd.vtex_c CRC:004d3c2ed1 size:117698
panorama/images/overheadmaps/de_nuke_radar_psd.vtex_c CRC:00523bd349 size:131660
@@ -78640,36 +78640,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702
radial_quickinventory.txt CRC:005a0c1bf5 size:1080
rebuy.txt CRC:008332da3a size:1688
resource/clientscheme.res CRC:001b42ad42 size:14978
-resource/csgo_brazilian.txt CRC:00e1e08c9e size:4748376
-resource/csgo_bulgarian.txt CRC:009cc9afd5 size:7275591
-resource/csgo_czech.txt CRC:007198c971 size:4822648
-resource/csgo_danish.txt CRC:00d6607b33 size:4727904
-resource/csgo_dutch.txt CRC:0057a9928e size:4776061
+resource/csgo_brazilian.txt CRC:0092249cd1 size:4749369
+resource/csgo_bulgarian.txt CRC:0051f1d888 size:7275358
+resource/csgo_czech.txt CRC:004a6e6a7a size:4822190
+resource/csgo_danish.txt CRC:00951053b8 size:4727462
+resource/csgo_dutch.txt CRC:000660bedc size:4775598
resource/csgo_english.txt CRC:0084ad8149 size:4609994
-resource/csgo_finnish.txt CRC:007c3cf532 size:4697672
-resource/csgo_french.txt CRC:0062e4496a size:4965273
-resource/csgo_german.txt CRC:00113e2eaf size:4904165
-resource/csgo_greek.txt CRC:00706656a2 size:6772283
-resource/csgo_hungarian.txt CRC:009456f1ef size:4809022
-resource/csgo_indonesian.txt CRC:003c0f25f4 size:4460361
-resource/csgo_italian.txt CRC:007a6510c2 size:4890267
-resource/csgo_japanese.txt CRC:0067fc86c3 size:5025988
-resource/csgo_koreana.txt CRC:007dbf2a4d size:4822017
-resource/csgo_latam.txt CRC:0061717305 size:4901995
-resource/csgo_norwegian.txt CRC:00dfe40714 size:4656386
-resource/csgo_polish.txt CRC:0003786d40 size:5042271
-resource/csgo_portuguese.txt CRC:00aa707a2a size:4797837
-resource/csgo_romanian.txt CRC:00f8ab401d size:4991821
-resource/csgo_russian.txt CRC:00bb6e0ee6 size:6234932
-resource/csgo_schinese.txt CRC:004f0bd142 size:4648551
+resource/csgo_finnish.txt CRC:0087d37809 size:4697236
+resource/csgo_french.txt CRC:004ec42d3b size:4964801
+resource/csgo_german.txt CRC:0086211f1d size:4903688
+resource/csgo_greek.txt CRC:00498a1437 size:6771568
+resource/csgo_hungarian.txt CRC:0087f34706 size:4808592
+resource/csgo_indonesian.txt CRC:006e89afc6 size:4459909
+resource/csgo_italian.txt CRC:007d5973d5 size:4889840
+resource/csgo_japanese.txt CRC:00af1893af size:5030539
+resource/csgo_koreana.txt CRC:00263d9b4d size:4821492
+resource/csgo_latam.txt CRC:0017d451a3 size:4901564
+resource/csgo_norwegian.txt CRC:0074fe5715 size:4657691
+resource/csgo_polish.txt CRC:0077d79c9b size:5041830
+resource/csgo_portuguese.txt CRC:00e2dfa5eb size:4797683
+resource/csgo_romanian.txt CRC:008bf7f527 size:4991365
+resource/csgo_russian.txt CRC:002557aa2c size:6234365
+resource/csgo_schinese.txt CRC:008ed01717 size:4648172
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
-resource/csgo_spanish.txt CRC:0055381ef8 size:4864560
-resource/csgo_swedish.txt CRC:00c6fa850d size:4757235
-resource/csgo_tchinese.txt CRC:00e9f4a0ce size:4374355
-resource/csgo_thai.txt CRC:00355115cf size:7703548
-resource/csgo_turkish.txt CRC:0023bdb5bb size:4878951
-resource/csgo_ukrainian.txt CRC:00156998a8 size:6275298
-resource/csgo_vietnamese.txt CRC:00c843d412 size:5151569
+resource/csgo_spanish.txt CRC:0087fea09b size:4864146
+resource/csgo_swedish.txt CRC:0033da2639 size:4756896
+resource/csgo_tchinese.txt CRC:0005e6ab7d size:4373922
+resource/csgo_thai.txt CRC:008d8dfc1e size:7702764
+resource/csgo_turkish.txt CRC:00e041e974 size:4878518
+resource/csgo_ukrainian.txt CRC:00c945fbd2 size:6274622
+resource/csgo_vietnamese.txt CRC:00740a29e7 size:5151030
resource/game.gameevents CRC:0090de10bc size:9837
resource/halflife2.vfont CRC:00b064848c size:58000
resource/mod.gameevents CRC:008dcbd0da size:20719
game/csgo/steam.inf
modified • +5 / -5 • changes: 10
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000744
-ServerVersion=2000744
+ClientVersion=2000745
+ServerVersion=2000745
PatchVersion=1.41.3.8
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=10494140
-VersionDate=Mar 04 2026
-VersionTime=13:26:09
+SourceRevision=10497890
+VersionDate=Mar 05 2026
+VersionTime=11:19:02
4.3.2026, 22.51.46
Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).
Files changed: 36 • +2144 / -1758
scriptsuilocalizationassetsmisccontent-change
Changed files
DumpSource2/convars.txt
modified • +12 / -0 • changes: 12
Show patch
@@ -1489,6 +1489,9 @@ cl_interpolate true (developmentonly clientdll userinfo)
cl_interpolate_report false (clientdll archive)
Enable to show interpolation profile timing
+cl_inv_volatile_limits "0:0" (clientdll archive)
+ <no description>
+
cl_inventory_debug_tooltip false (clientdll release)
<no description>
@@ -1825,9 +1828,15 @@ cl_radar_scale_alternate 1 (min: 0.25, max: 1, clientdll archive release)
cl_radar_scale_dynamic false (clientdll archive release)
Toggles between a radar that scales dynamically to encompass all the detected elements on the map.
+cl_radar_show_all_players_when_spectating true (clientdll archive release)
+ Set all players visible on radar when spectating, regardless of whether they have been spotted.
+
cl_radar_square_always false (clientdll archive release)
If set, the radar will always be square.
+cl_radar_square_when_spectating true (clientdll archive release)
+ If set, the radar will be square when spectating.
+
cl_radar_square_with_scoreboard true (clientdll archive release)
If set, the radar will toggle to square when the scoreboard is visible.
@@ -10377,6 +10386,9 @@ sv_search_key "" (release)
sv_search_team_key "public" (release)
When initiating team search, set this key to match with known opponents team
+sv_sellback_enabled true (gamedll clientdll replicated release)
+ Determines whether players can undo purchases in the buy menu
+
sv_sendtables 1 (developmentonly)
Force full sendtable sending path.
Protobufs/base_gcmessages.proto
modified • +1 / -0 • changes: 1
Show patch
@@ -540,6 +540,7 @@ message CMsgOpenCrate {
optional uint64 subject_item_id = 2;
optional bool for_rental = 3;
optional uint32 points_remaining = 4;
+ optional uint32 volatile_limit = 5;
}
message CSOEconRentalHistory {
Protobufs/source2_steam_stats.proto
modified • +2 / -0 • changes: 2
Show patch
@@ -14,6 +14,7 @@ enum ESource2PlayStatsFieldType {
Source2PlayStats_String = 12;
Source2PlayStats_LowCardinalityString = 13;
Source2PlayStats_UTCDateTime = 14;
+ Source2PlayStats_SteamIDTrustBucket = 15;
}
message CMsgSource2SystemSpecs {
@@ -164,6 +165,7 @@ message CMsgSource2PlayStatsPackedRecordList {
repeated string string_vals = 15;
repeated string low_cardinality_string_vals = 16;
repeated fixed32 utcdatetime_vals = 17 [packed = true];
+ repeated fixed64 steamidtrustbucket_vals = 18 [packed = true];
}
message CSource2Metrics_RecordPlayStats_Notification {
content/csgo/maps/editor/zoo/scripts/point_script.d.ts
modified • +18 / -3 • changes: 21
Show patch
@@ -132,8 +132,12 @@ declare module "cs_script/point_script"
OnGunReload(callback: (event: { weapon: CSWeaponBase }) => void): void;
/** Called when a gun emits bullets. A shotgun will only trigger this once when emitting multiple bullets at once. */
OnGunFire(callback: (event: { weapon: CSWeaponBase }) => void): void;
- /** Called when a bullet hits a surface. This will trigger for each bullet and for each impact. Penetrations can cause a single bullet to trigger multiple impacts. */
- OnBulletImpact(callback: (event: { weapon: CSWeaponBase, position: Vector }) => void): void;
+ /**
+ * Called when a bullet hits a surface.
+ * Penetrations can cause a single bullet to trigger multiple impacts.
+ * This will be called for all impacts of a bullet before any player damage events are called.
+ */
+ OnBulletImpact(callback: (event: { weapon: CSWeaponBase, position: Vector, hitEntity: Entity }) => void): void;
/** Called when a grenade is thrown. `projectile` is the newly created grenade projectile. */
OnGrenadeThrow(callback: (event: { weapon: CSWeaponBase, projectile: Entity }) => void): void;
/** Called when a grenade bounces off a surface. `bounces` is the number of bounces so far. */
@@ -213,6 +217,7 @@ declare module "cs_script/point_script"
}
type Vector = { x: number, y: number, z: number };
+ type RotationVector = { x: number, y: number, z: number };
type QAngle = { pitch: number, yaw: number, roll: number };
type ColorArg = { r: number, g: number, b: number, a?: number };
type Color = { r: number, g: number, b: number, a: number };
@@ -465,12 +470,16 @@ declare module "cs_script/point_script"
GetAbsVelocity(): Vector;
/** The velocity of this entity relative to its parent. Will be relative to the world if no parent. */
GetLocalVelocity(): Vector;
+ /** The angular velocity of this entity relative to the world. */
+ GetAbsAngularVelocity(): RotationVector;
+ /** The angular velocity of this entity relative to its parent. Will be relative to the world if no parent. */
+ GetLocalAngularVelocity(): RotationVector;
/** The angles of the eyes of this entity relative to the world. */
GetEyeAngles(): QAngle;
/** The position of the eyes of this entity relative to the world */
GetEyePosition(): Vector;
/** Update the physics state of this entity. */
- Teleport(newValues: { position?: Vector, angles?: QAngle, velocity?: Vector }): void;
+ Teleport(newValues: { position?: Vector, angles?: QAngle, velocity?: Vector, angularVelocity?: RotationVector }): void;
GetClassName(): string;
GetEntityName(): string;
SetEntityName(name: string): void;
@@ -529,6 +538,10 @@ declare module "cs_script/point_script"
export class CSWeaponBase extends BaseModelEntity {
GetData(): CSWeaponData;
GetOwner(): CSPlayerPawn | undefined;
+ GetClipAmmo(): number;
+ SetClipAmmo(ammo: number): void;
+ GetReserveAmmo(): number;
+ SetReserveAmmo(ammo: number): void;
}
export class CSWeaponData {
@@ -537,6 +550,8 @@ declare module "cs_script/point_script"
GetGearSlot(): CSGearSlot;
GetPrice(): number;
GetDamage(): number;
+ GetMaxClipAmmo(): number;
+ GetMaxReserveAmmo(): number;
/** Maximum distance bullets will travel. */
GetRange(): number;
/** Exponential damage drop off from traveling through air. nextDamage = currentDamage * rangeModifier ^ (distance / 500). */
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-10477372
+10494118
game/bin/linuxsteamrt64/libengine2_strings.txt
modified • +3 / -8 • changes: 11
Show patch
@@ -895,7 +895,6 @@ $lZT
--CNetworkGameServerBase
--startmovie
-0123456789
--0x8000'0000p0f <= flTicks && flTicks < +0x8000'0000p0f
-5?KYks
-> Reservation cookie %llx: reason %s\n
-?Vb,?H$+?Z
@@ -1633,6 +1632,7 @@ $lZT
1wsHp
2%sT5
200000
+20:08:06
20CCLCMsg_ClientInfo_t
20CCLCMsg_CmdKeyValues
20CCLCMsg_Diagnostic_t
@@ -1667,7 +1667,6 @@ $lZT
20ISource2ServerConfig
20ISource2WorldSession
20PacketEntitiesFilter
-21:54:28
21C2S_CONNECT_Message_t
21CCLCMsg_BaselineAck_t
21CEngineGotvSyncPacket
@@ -3865,7 +3864,6 @@ CheckServerReservationUpdate: %d conn periodic update\n
CheckTimeouts: Disconnecting client: %s %s, after a netchan-decided timeout of %0.2fs with no acks received\n
CheckTimeouts: Disconnecting client: %s %s, after a server-decided timeout of %0.2fs with no acks received\n
CheckTransmit
-CheckedAdd
Cherokee
ClampFloatToZero_SSE2
Clamping split screen users to 1 due to -tools mode.\n
@@ -4547,7 +4545,6 @@ Failure
False
FastHexToBuffer() wants non-negative integers, not
Features
-Feb 23 2026
February
Feel free to add support for more if you need it.
Field "
@@ -4672,7 +4669,6 @@ Free physical memory: %.2f MiB\n
Freed EMS handle %u
Freed XMS handle %u
Friday
-FromFloatTicks
Full Frame
FullFrameSplit tick=%d, chunk=%d of %d\n
FullPacketGoto
@@ -5304,7 +5300,6 @@ Invoke '%s' failed with code %d
InvokeMiniDumpHandler
Is fixup operator client running at low FPS? Only %d/%d fixup ticks available for %s\n
Is the server pausable.
-IsValidFrac( flFrac )
IsValidIndex( i )
Issue an rcon command.
J3GS
@@ -5642,6 +5637,7 @@ MapValueRef::SetInt64Value
MapValueRef::SetStringValue
MapValueRef::SetUInt32Value
MapValueRef::SetUInt64Value
+Mar 4 2026
March
Marked tick %u in '%s'\n
Marker,GPUTimeAvgMS,GPUTimeRangeMS,GPUTimeMinMS,GPUTimeMaxMS\n
@@ -7003,6 +6999,7 @@ RenderDeviceMgr001
RenderHardwareConfig002
RenderService
RenderService::OnClientOutput
+RenderService::OnClientPostAdvanceTick
RenderService_001
RenderSystem/VulkanOnly
RenderSystem/VulkanOnlyTestProbability
@@ -11588,7 +11585,6 @@ results.txt
resume
retail
retval
-rhs < 0 ? ret < lhs : ret >= lhs
rnd_down
rnd_up
rnn_celt_autocorr
@@ -15664,7 +15660,6 @@ throw
throw
tick
tick_interval
-ticks_and_frac.cpp
ticks_per_interval
tier0
time
game/bin/win64/csgocfg.exe_strings.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -410,7 +410,7 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
/src/
0iN>/
11Y@
-13:57:21
+12:10:12
1:1: Tokens : ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );
1AcceptIfItemPicked()
1OnAccept()
@@ -1603,7 +1603,6 @@ Failed to load layered mod '%s'. %s
Failed to map from %s to content-path\n
Failed to map from %s to game-path\n
Failed to parse KeyValues
-Feb 23 2026
February
FileSystem
FileSystem/SearchPaths
@@ -1788,6 +1787,7 @@ MVDataOutlinerLeafNameFn
M\n?done@QDialog@@UEAAXH@Z
MapListService_001
Maps
+Mar 4 2026
March
MaterialUtils_001
MemAlloc_AllocFunc
game/bin/win64/resourcecompiler_strings.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -20711,8 +20711,8 @@ $prefix_element$
11nN
12'0
1280x720
+12:13:36
12v)
-13:59:27
14 (default)
15\tr\
16-byte data pool
@@ -47311,7 +47311,7 @@ pbeWithSHA1And40BitRC2-CBC
pbeWithSHA1And40BitRC4
pbeWithSHA1AndDES-CBC
pbeWithSHA1AndRC2-CBC
-pc64 Feb 23 2026 13:59:31
+pc64 Mar 4 2026 12:14:54
pcPathLengthConstraint
peak_attr
peak_cycle
game/bin/win64/tools/cs2_item_editor_strings.txt
modified • +46 / -41 • changes: 87
Show patch
@@ -14,12 +14,10 @@
(%d remaining)...
(08@HPX`hpx
(08@HPX`j0k
- (08@HPXbP
+ (08@HPXb
(08@HPZ0k
- (08@HRP
(08@J0k
- (08@JP
- (0X`hpzP
+ (0X`hpz
(Boosted +1)
(repeat)
- IsCheckedOut: %s\n
@@ -446,26 +444,21 @@ $schemasystem/schema_enable_defines.h
(#Player_DisconnectReason_InputAutomation
((6"8(:,<*>
(0`hpx
-(10X
-(1jX
-(53X
-(A2X
-(A6X
-(ADX
-(AMX
+(14X
+(5KX
+(9WX
+(9bX
(Documents Filter - Use | for OR, space for AND)
-(EPX
-(EYX
-(ElX
(Filter)
-(IwY
-(MSX
+(I8X
+(M6X
(No Active Session)
(Outliner Filter)
-(Q4X
-(UKX
-(YWX
-(YbX
+(QEX
+(QIX
+(QgX
+(QxX
+(UjX
(\f"(\n&CMsgGCCStrike15_v2_ClientRequestOffers"\\n(CMsgGCCStrike15_v2_ClientRequestSouvenir
(\f"?\n#CMsgGCCStrike15_v2_Client2GCTextMsg
(\f?focusOutEvent@QAbstractButton@@MEAAXPEAVQFocusEvent@@@Z
@@ -520,7 +513,6 @@ $schemasystem/schema_enable_defines.h
(\r"b\n2CMsgGCCStrike15_v2_MatchEndRewardDropsNotification
(\r"f\n(CMsgGCCStrike15_v2_ClientPlayerDecalSign
(\r"j\n'CCommunity_GamePersonalDataCategoryInfo
-(\r"l\n\rCMsgOpenCrate
(\r"o\n-CMsgGCCStrike15_v2_GC2ServerReservationUpdate
(\r"o\n.CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm
(\r"q\n"CMsgGCDev_SchemaReservationRequest
@@ -616,15 +608,21 @@ $schemasystem/schema_enable_defines.h
(\v2\v.CMsgVector
(\v2\v.CMsg_CVars:
(\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z
+(a7X
+(aAX
(default)
-(i8X
-(m6X
+(e3X
+(eBX
+(eMX
+(i4X
+(ilX
+(iwX
+(m2X
(null)
-(qEX
-(qIX
-(qgX
-(qxX
-(ujX
+(qTX
+(qnX
+(uHX
+(uaX
) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z
)#GameUI_Disconnect_PureServer_ClientExtra
)#GameUI_Disconnect_RemoteProblem_BadCrypt
@@ -3033,7 +3031,7 @@ $schemasystem/schema_enable_defines.h
0$2z4
08@HP
08@HR0k
-08@JP
+08@J
08B0k
08\fj
0:<\n\fdelta_ignore
@@ -3214,7 +3212,6 @@ $schemasystem/schema_enable_defines.h
2\r?hideEvent@QWidget@@MEAAXPEAVQHideEvent@@@Z
2\tV_isnand
2\v?event@QAction@@MEAA_NPEAVQEvent@@@Z
-2\vpT
2aboutToShow()
2activated( int )
2changed()
@@ -3286,7 +3283,6 @@ $schemasystem/schema_enable_defines.h
5\n\vnested_type
5\n\vtype_caches
5\v?event@QCheckBox@@MEAA_NPEAVQEvent@@@Z
-6Pr?
6[?setRenderHint@QPainter@@QEAAXW4RenderHint@1@_N@Z
6\n1k_EGCItemCustomizationNotification_CasketContents
6\n1k_EGCItemCustomizationNotification_ExtractSticker
@@ -3310,12 +3306,12 @@ $schemasystem/schema_enable_defines.h
7\n2k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment
7\n\tenum_type
8#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay
+81fX
+85ZW
8@HP:
8@J0k
8B0k
8Csinf
-8QfX
-8UZW
8\f?focusOutEvent@QTextBrowser@@MEAAXPEAVQFocusEvent@@@Z
8\n0k
8\n3k_EGCItemCustomizationNotification_ActivateFanToken
@@ -3326,7 +3322,9 @@ $schemasystem/schema_enable_defines.h
8\n\textension
8\v?event@QCompleter@@MEAA_NPEAVQEvent@@@Z
8]?size@QPixmap@@QEBA?AVQSize@@XZ
-8}qX
+8]qX
+8meX
+8muW
9\f?focusOutEvent@QTextEdit@@MEAAXPEAVQFocusEvent@@@Z
9\n4k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification
9\n4k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser
@@ -5006,11 +5004,9 @@ $schemasystem/schema_enable_defines.h
@08@HPX`hpx
@08N
@20k
-@6pm?
@HPX
@HPX&I
-@HPX`hv`
-@HV0
+@HPX`hv0
@HdR
@\n\fSingleObject
@\n\vserver_type
@@ -5927,6 +5923,7 @@ FocusOut
FolderName
FoliageAnimation
Follow user preference
+Fpw?
FreeEnvironmentStringsW
FreeLibrary
From EconItems
@@ -6585,7 +6582,7 @@ OrigMat
Other Tools
Outliner
OverlayProjectionDirection
-P08@JP
+P08@J
P08J
P08N
P20k
@@ -6645,7 +6642,7 @@ Patina
Patina Extended
Pedestal Model
PerVertexLighting
-PfPt?
+Pf u?
PgDn
PgUp
Physics
@@ -7455,6 +7452,7 @@ Zip system failure.\n
\f\f?focusInEvent@QLabel@@MEAAXPEAVQFocusEvent@@@Z
\f\n EGCItemCustomizationNotification
\f\n?deselect@QLineEdit@@QEAAXXZ
+\fp\vPX
\n CMsgItemAcknowledged__DEPRECATED
\n CSVCMsg_GameSessionConfiguration
\n google/protobuf/descriptor.proto
@@ -7559,6 +7557,7 @@ Zip system failure.\n
\nInvalid item name '%1'.\n\n%2\n
\nNo modified item assets. Nothing to save.\n
\nOpened By:
+\nQZW
\nS?moveTo@QPainterPath@@QEAAXAEBVQPointF@@@Z
\nThis assigns a permanent Schema reservation with the GC required for shipping.\n\nAre you sure?\n
\nThis will delete '%1' from the tree.\n\nAre you sure?\n
@@ -7724,6 +7723,7 @@ Zip system failure.\n
\n\nviewangles
\n\nvote_phase
\n\r?heightForWidth@QBoxLayout@@UEBAHH@Z
+\n\rCMsgOpenCrate
\n\rCSOItemRecipe
\n\rMethodOptions
\n\rQuestItemData
@@ -7959,7 +7959,6 @@ Zip system failure.\n
\n\vvalue_bytes
\n\vxp_category
\n\vyoutube_url
-\nqZW
\r?darker@QColor@@QEBA?AV1@H@Z
\r?data@QStandardItem@@UEBA?AVQVariant@@H@Z
\r?data@QStandardItemModel@@UEBA?AVQVariant@@AEBVQModelIndex@@H@Z
@@ -8134,6 +8133,7 @@ _toolsautosave
`\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z
`adjustor{
`anonymous namespace'
+`awY
`b0k
`copy constructor closure'
`d0k
@@ -8968,7 +8968,7 @@ host_computationtime
host_frame_dropped_pct_x10
host_unfiltered_frametime
hours
-hpzP
+hpz
i ?topLevelWidgets@QApplication@@SA?AV?$QList@PEAVQWidget@@@@XZ
iValueIn
i\f?forward@QTextBrowser@@UEAAXXZ
@@ -9688,6 +9688,7 @@ my_current_event_stages
my_current_event_teams
my_current_team
n03>Pu
+n0x?
nBuildError
nCentralDirectoryEntries_ThisDisk
nCentralDirectoryEntries_Total
@@ -9817,14 +9818,17 @@ owner dead
owner_only
owns_polymorphic_data
p08@H^
+p0jp
p0p@
p20k
+p6`t?
p@HPX`h\f
pButton
pCurrentFocusWidget
pData
pEvent
pFilter
+pFpw?
pPrevFocusWidget
pResultKV
pV?read@QImageReader@@QEAA?AVQImage@@XZ
@@ -10599,6 +10603,7 @@ vnmclip
vnotify_ui
void
volatile
+volatile_limit
vote
vote_phase_length
vote_phase_start
game/bin/win64/tools/met_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -990,7 +990,7 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
1/2/3
11Y@
128 x 128
-13:54:32
+12:09:19
1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );
1AboutAction()
1AcceptColorInternal(FatColor_t)
game/bin/win64/vrad3_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -2730,7 +2730,7 @@ path_trace_triangles_gpu_init
path_trace_triangles_gpu_shutdown
path_trajectory
pattern
-pc64 Feb 23 2026 13:53:16
+pc64 Mar 4 2026 12:11:17
permission denied
physicsSimplificationError
physicsSimplificationOverride
game/csgo/bin/linuxsteamrt64/libclient_strings.txt
modified • +22 / -20 • changes: 42
Show patch
@@ -289,6 +289,7 @@
vJza\r
with
with %.1fs delay.
+ { "limit": %u, "label": "%s" },
{0x%x, 0x%x}
! !K+hcF&db
!! ERROR: bad input/output link:\n!! %s(%s,%s) doesn't match type from %s(%s)\n
@@ -393,6 +394,8 @@
#Attrib_TimeLocalization_Hours
#Attrib_TimeLocalization_Minutes
#Attrib_TradableMarketableAfterDate
+#Attrib_TradeProtectedEscrowDate
+#Attrib_TradeProtectedEscrowMarket
#BIND[
#BuyMenu_BuyForTeammate_hint
#CSGOEcon_SelectCT
@@ -9103,7 +9106,6 @@ $taser_charge
4tpD
4zj@1;IJ
4|2;#GameUI_Retake_Card_LightEmUp,1,1,rifle1,grenade0|2;#GameUI_Retake_Card_Kobe,1,1,rifle1,grenade2|1;#GameUI_Retake_Card_1g,1,1,rifle1,grenade3|1;#GameUI_Retake_Card_DisappearingAct,1,1,rifle1,grenade1|1;#GameUI_Retake_Card_EyesOnTarget,1,1,weapon_aug
-4~3<M
5'0v2ZP
5-535;5A5Q5e5o5q5w5{5}5
5-\rGw
@@ -9304,7 +9306,6 @@ $taser_charge
8192
8285-YOAZ-6049
82\n:XPH
-83\nN
851Pe
8835-KLXV-0292
8<pl
@@ -9474,7 +9475,6 @@ $taser_charge
;"lY7
;5jNf
;83\v\nHBJ7
-;I4r
;LGEW
;Qo0
;`Fzc
@@ -9567,6 +9567,7 @@ $taser_charge
<weapon>
=!=-=3=7=?=C=o=s=u=y={=
=&sf9
+=3LL
== %d Entities Dumped\n
== PulseGraphDef ==\n
== false\n
@@ -12672,7 +12673,6 @@ CheckChildrenScrolledIntoView
CheckPoint
CheckReinitPredictables
CheckThreadID
-CheckedSub
Checks to see if the given hScript is a valid entity
ChickenGameSystem
Child %d %s
@@ -16219,6 +16219,7 @@ GetVariableRefreshRateStatus
GetVideoConfig
GetViewRenderInstance() must be implemented by game.
GetViewerCount
+GetVolatileLimits
GetWeaponScores
GetWear
GetXUIDByAccountID
@@ -17452,12 +17453,11 @@ JSCreatePanelWithCurrentContext was not called within a context
JSDelayLoadList
JSValueFromKeyValue failed to package parameter %s (type %d)\n
JS_!0
-JY3!
+JY3a
JZIX
J\nHBF
J`KL
Japanese
-Jg-a~
Job %s has EXCEEDED TIMEOUT THRESHOLD exclusive time: %ums >= %ums\n
Job %s has EXCEEDED TIMEOUT THRESHOLD yield time: %ums >= %ums\n
Job %s has spent >%2.3fms without yielding: %2.3fms\n
@@ -18078,6 +18078,7 @@ Map__Level--Animate-FadeIn
Map__Level--Animate-FadeOut
Maple
Maps
+MarketListingForItem
Marquis
Mask
Mask Algorithm:
@@ -18191,7 +18192,6 @@ MinghuaQuS
MinghuaQuw
Minimum of two values (float)
Minimum of two values (int)
-MinusOneTick
Minutes
MippedBlurTexture
Mirage
@@ -21597,7 +21597,6 @@ PlayingCSGO
Plays the named sound event.
Playsoundscape %s:Unknown command %s\n
Please specify 0 or 1 with the -stream Parameter\n
-PlusOneTick
Pm8A?
PmR"H?
Point entity.
@@ -23151,7 +23150,6 @@ SelectionBG2
SelectionBgColor
SelectionFgColor
SelectionGroup
-SellItem
SellbackButton
Semifinal
Send a string to the console as a client command
@@ -23476,6 +23474,7 @@ SetVarArrayElement1D V%d (%s) [ R%d ] <- R%d R%d
SetVelocity
SetVelocityDamping
SetVelocityLimit
+SetVolatileLimits
SetWantsCamera
SetWorkshopPreviewIdleAnimation
SetZoomLimit
@@ -26359,7 +26358,7 @@ _var
_xU`u
_}eOk
`28)fk
-`43!T
+`43;D
`:zQF
`D$daM-l
`DZG
@@ -28350,6 +28349,8 @@ cl_imgui_set_selection %i
cl_interp = %f (cl_interp_ratio=%g / cl_updaterate=%g)\n
cl_interp_npcs=%f
cl_interp_threadmodeticks=%d
+cl_inv_volatile_limits = %s
+cl_inv_volatile_limits_rt
cl_net_buffer_ticks=%d, setting cl_interp_ratio=%g, cl_clock_buffer_ticks=%g\n
cl_obs_interp_pos_rate
cl_pred_track: Unknown ent index %d\n
@@ -28947,6 +28948,7 @@ cs_win_panel_round
cs_workout
csblood
csblood_global_client
+csbot
csgo-hud__color-%d
csgo_chicken
csgo_democontroller
@@ -31595,6 +31597,7 @@ http request
http://
http://%s.steamcommunity.com/sharedfiles/filedetails/?id=%llu
http://%s.steamcommunity.com/workshop/browse?appid=%u&requiredtags[]=CS2%s
+http://%ssteamcommunity.com/market/?viewMyItemListing#%u_%u_%llu
http://%ssteamcommunity.com/profiles/%llu/inventory/?sellOnLoad=1#%u_%u_%llu
http://api.twitch.tv/api/steam/%llu
http://cdn.beta.steampowered.com/apps/%d/web_resources/%s
@@ -31701,7 +31704,7 @@ i2d_pr.c
i2o_ECPublicKey
i2s_ASN1_ENUMERATED
i2s_ASN1_INTEGER
-i4@U
+i4<E
i4a."
i5BH
iA5StringSyntax
@@ -33064,14 +33067,13 @@ kv 0x%p Release refcount == %d\n
kw.6#
k~Rz
l <= sizeof(c->iv)
-l&+3Sl
l&rB6
l4Ot
l7@J
lC57
lDcW
lM2p
-l`w4E
+l`w4
label
label_token
ladder
@@ -33401,7 +33403,7 @@ lowresdepth
luminaire_anisotropy
luminaire_shape
luminaire_size
-lvR4V
+lvR4
m&9W
m*Zu
m249
@@ -33681,8 +33683,6 @@ m_nPixelSSTHeight
m_nPixelSSTWidth
m_nSamples
m_nSpawnGroupCount
-m_nTicks < INT_MAX
-m_nTicks > INT_MIN
m_nameList
m_pAnimGraph1Instance == nullptr && m_pAnimGraph2Instance == nullptr && m_pAnimGraphInstanceOwner != nullptr
m_pAnimGraphDestructibleGraphController
@@ -35196,8 +35196,6 @@ operational_point_redeemable
operational_point_redeemable_end
operational_points
operaton not initialized
-operator+
-operator-
operatorName
optional with src
optionalEntityName
@@ -36696,7 +36694,6 @@ rg#E
rgba(0, 0, 0, %f)
rgba(0, 0, 0, 1)
rhino
-rhs > 0 ? ret < lhs : ret >= lhs
rich
ricksaw_defeat
ridiculous
@@ -36774,6 +36771,7 @@ round_kills
round_linear_curve
round_mvp
round_number
+round_officially_ended
round_prestart
round_start
round_time_warning
@@ -38456,7 +38454,7 @@ t1_ext.c
t1_lib.c
t1_reneg.c
t2U
-t3@P
+t33@
t4O_
t80z
tA`KO/3G!\n7h=
@@ -39807,6 +39805,7 @@ victim_location_
victim_team
videocfg_dynamic_shadows
vietnamese
+view
view angles
viewModelFarPlane
viewModelNearPlane
@@ -40579,6 +40578,7 @@ y#y&Jb
y-offset
y0JY
y2Cu
+y3yo
y;w9
y?iLa
yG/9
@@ -40637,6 +40637,7 @@ zoom_sensitivity_ratio_mouse
zoomwithuiscale
zxNIjo
zz2K
+{ "limit": %d, "selected": %s, "choices": [ %s { "limit": 0, "label": "#SFUI_Settings_Volatile_Limit_Unlimited" } ] }
{5`q@roz?
{8w1
{9d:c
@@ -40648,6 +40649,7 @@ zz2K
{ry\W
{s:SelectedSegment--name}
{screenshots}
+{split:
{uint32}
{width}
{zFd
game/csgo/bin/linuxsteamrt64/libserver_strings.txt
modified • +13 / -7 • changes: 20
Show patch
@@ -1063,6 +1063,7 @@ $light_emissive
%s finished post idle at %0.2f\n
%s follows %s
%s has no hitboxes\n
+%s hit the sellback limit.\n
%s is a priority script and cannot be kicked out of the queue\n
%s is abstract but didn't have any networkable descendents [found %d possibles], make (at least) one of these leaf classes networkable!!!\n
%s is already preloading!\n
@@ -1377,6 +1378,7 @@ $light_emissive
(Output drawable)
(SERVER) Inventory for account (%d):\n
(WIPE AND EXTRACT)
+(ammo:number)
(callback: function)
(className: string)
(color)
@@ -7030,7 +7032,6 @@ $light_emissive
>KS[ac5>IU^c+0<LZc
?33s?
???CRR_Response bogus index
-?KA8
@player_start_teleport_destination
@workshop
A CT bot doesn't know what to do while the bomb is planted!\n
@@ -9066,7 +9067,6 @@ CheckPoint
CheckSpawnThink
CheckStuffThink
CheckThreadID
-CheckedSub
Checking nearby threatening enemy gunfire!\n
Checking out where our friend was killed\n
Checks if entity a and entity b are in hierarchy together
@@ -10669,6 +10669,7 @@ Get vector to center of object - absolute coords
Get vector to eye position - absolute coords.
Get whether the hostage is currently being carried or not
GetAbsAngles
+GetAbsAngularVelocity
GetAbsOrigin
GetAbsScale
GetAbsVelocity
@@ -10703,6 +10704,7 @@ GetClassName
GetClassNameAsCStr
GetClassNameOverride
GetClassname
+GetClipAmmo
GetColor
GetCommandClient
GetCommandClient() : returns the player who issued this console command.
@@ -10780,8 +10782,10 @@ GetMaterialGroupHash
GetMaterialGroupHash(): Get the material group hash of this entity.
GetMaterialGroupMask
GetMaterialGroupMask(): Get the mesh group mask of this entity.
+GetMaxClipAmmo
GetMaxHealth
GetMaxOutputDelay
+GetMaxReserveAmmo
GetModelName
GetModelScale
GetMoveParent
@@ -10860,6 +10864,7 @@ GetRenderAlpha(): Get the alpha modulation of this entity.
GetRenderColor
GetRenderColor(): Get the render color of the entity.
GetReportedPosition
+GetReserveAmmo
GetRightVector
GetRootMoveParent
GetRoundsPlayed
@@ -11938,6 +11943,8 @@ IsConnected
IsCrouched
IsCrouching
IsDedicatedServer
+IsDucked
+IsDucking
IsEnabled
IsEnemyPartVisible
IsFakeClient
@@ -13902,7 +13909,6 @@ Plays/modifies a sound from this entity. changes sound if nPitch and/or flVol or
Please move your current gameinfo.gi agent settings to a %s file and create a %s file with a 'default' entry containing all the nav nulls. Then add "NavHullsPreset" "default" to your gameinfo.gi file. For now we'll continue to load the agent settings but this path is deprecated ( antonioc@ ).
Please specify 0 or 1 with the -stream Parameter\n
Please wait for broadcast to start ...
-PlusOneTick
Point entity.
PointAtEntity
PointTemplate
@@ -15062,6 +15068,7 @@ SetBrightness
SetBrightnessDelta
SetBrightnessScale
SetCamera
+SetClipAmmo
SetClipPrimary
SetClipSecondary
SetColor
@@ -15291,6 +15298,7 @@ SetRenderMode
SetRenderMode( int ): Sets the render mode of the entity.
SetRenderingEnabled
SetReportedPosition
+SetReserveAmmo
SetReserveAmmoAmount
SetRestLength
SetRotateType
@@ -17194,6 +17202,7 @@ altpath
always tradable
always_known
ambient_generic
+ammo
ammo_grenade_limit_total 5\n
ammobalancing_removable
amount
@@ -17212,6 +17221,7 @@ ang_yaw
ang_z
angles: %g %g %g
angularLimit
+angularVelocity
angular_damping_ratio_x
angular_damping_ratio_y
angular_damping_ratio_z
@@ -20635,7 +20645,6 @@ m_nParamIndex < 0
m_nSamples
m_nSound
m_nSpawnGroupCount
-m_nTicks < INT_MAX
m_nameList
m_pAnimGraph1Instance == nullptr && m_pAnimGraph2Instance == nullptr && m_pAnimGraphInstanceOwner != nullptr
m_pAnimGraphDestructibleGraphController
@@ -21296,8 +21305,6 @@ open_buymenu
opened
operation_coin
operation_type
-operator+
-operator-
operatorName
operatorname
optionalEntityName
@@ -22229,7 +22236,6 @@ revolver
revolving_loot_lists
reward_drop_list
rfc822Mailbox
-rhs > 0 ? ret < lhs : ret >= lhs
rifle
rifle0
rifle1
game/csgo/pak01_dir.txt
modified • +107 / -95 • changes: 202
Show patch
@@ -7,7 +7,7 @@ animation/anims/chicken/chick_land.vnmclip_c CRC:0068b2635e size:8962
animation/anims/chicken/chick_land_water.vnmclip_c CRC:00a955f773 size:9588
animation/anims/chicken/chick_react01.vnmclip_c CRC:002787b2d8 size:14505
animation/anims/chicken/chick_react02.vnmclip_c CRC:006b6bb120 size:16214
-animation/anims/chicken/chick_run01.vnmclip_c CRC:00ef2d5c83 size:12610
+animation/anims/chicken/chick_run01.vnmclip_c CRC:0023751e68 size:12095
animation/anims/chicken/chick_run01_swim.vnmclip_c CRC:0021059eb2 size:11940
animation/anims/chicken/chick_runflap01.vnmclip_c CRC:00db951dfd size:12810
animation/anims/chicken/chick_squat_cycle01.vnmclip_c CRC:0085931e63 size:24573
@@ -4425,7 +4425,7 @@ maps/de_anubis_camera_nodes.kv3 CRC:001b8f43b2 size:17950
maps/de_anubis_retake.txt CRC:0032c02075 size:4360
maps/de_dust2_camera_nodes.kv3 CRC:0018f21a4c size:10453
maps/de_dust2_retake.txt CRC:00c7737a39 size:4511
-maps/de_inferno_camera_nodes.kv3 CRC:00287990bb size:23504
+maps/de_inferno_camera_nodes.kv3 CRC:007ce32bbf size:22256
maps/de_inferno_retake.txt CRC:00b78c5ff2 size:4053
maps/de_mirage_camera_nodes.kv3 CRC:0072eadb25 size:25623
maps/de_mirage_retake.txt CRC:00ca33c5f4 size:4767
@@ -15182,6 +15182,8 @@ materials/models/inventory_items/music_kit/knock2_02/mp3_screen_color_psd_7369bd
materials/models/inventory_items/music_kit/knock2_02/sleeve_cover.vmat_c CRC:00e407d79d size:3696
materials/models/inventory_items/music_kit/label.vmat_c CRC:00df8291be size:3600
materials/models/inventory_items/music_kit/label_color_psd_b2f768b1.vtex_c CRC:00912adb5b size:73985
+materials/models/inventory_items/music_kit/label_cs2.vmat_c CRC:004a8d6b1b size:3892
+materials/models/inventory_items/music_kit/label_cs2_color_psd_ad840642.vtex_c CRC:0050acda04 size:71469
materials/models/inventory_items/music_kit/label_normal_psd_48a3d0b7.vtex_c CRC:0091d31774 size:208896
materials/models/inventory_items/music_kit/laurashigihara_01/mp3_detail.vmat_c CRC:00a65edab2 size:2855
materials/models/inventory_items/music_kit/laurashigihara_01/mp3_detail_color_psd_fd39d071.vtex_c CRC:00c051963b size:45676
@@ -34665,7 +34667,7 @@ models/inventory_items/mlg_pickem_2016_gold.vmdl_c CRC:0093fac998 size:61603
models/inventory_items/mlg_pickem_2016_silver.vmdl_c CRC:00738490cd size:61605
models/inventory_items/music_kit.vmdl_c CRC:006579abaf size:25000
models/inventory_items/music_kits/music_kit_3kliksphilip_01.vmdl_c CRC:00d436af66 size:54940
-models/inventory_items/music_kits/music_kit_adambeyer_01.vmdl_c CRC:0022c16ab1 size:58595
+models/inventory_items/music_kits/music_kit_adambeyer_01.vmdl_c CRC:008923106d size:56562
models/inventory_items/music_kits/music_kit_amontobin_01.vmdl_c CRC:00898d76a5 size:54937
models/inventory_items/music_kits/music_kit_austinwintory_01.vmdl_c CRC:00ccfa0038 size:54937
models/inventory_items/music_kits/music_kit_austinwintory_02.vmdl_c CRC:0084e8b90b size:54937
@@ -34689,30 +34691,30 @@ models/inventory_items/music_kits/music_kit_denzelcurry_01.vmdl_c CRC:00815eca3d
models/inventory_items/music_kits/music_kit_dren_01.vmdl_c CRC:007fc47b13 size:54916
models/inventory_items/music_kits/music_kit_dren_02.vmdl_c CRC:001dc64f66 size:54916
models/inventory_items/music_kits/music_kit_dren_03.vmdl_c CRC:00244836ce size:58228
-models/inventory_items/music_kits/music_kit_dryden_01.vmdl_c CRC:00623a30c7 size:58246
+models/inventory_items/music_kits/music_kit_dryden_01.vmdl_c CRC:005f49649f size:57054
models/inventory_items/music_kits/music_kit_feedme_01.vmdl_c CRC:00fe69b9c0 size:54934
models/inventory_items/music_kits/music_kit_freakydna_01.vmdl_c CRC:00158cd549 size:54937
-models/inventory_items/music_kits/music_kit_ghost_01.vmdl_c CRC:0091c06b4e size:58591
+models/inventory_items/music_kits/music_kit_ghost_01.vmdl_c CRC:003969c282 size:56526
models/inventory_items/music_kits/music_kit_hades_01.vmdl_c CRC:00dacd3972 size:54917
models/inventory_items/music_kits/music_kit_halo_01.vmdl_c CRC:003040a7ce size:54916
-models/inventory_items/music_kits/music_kit_health_01.vmdl_c CRC:00d24511b3 size:58591
+models/inventory_items/music_kits/music_kit_health_01.vmdl_c CRC:001e1f99fb size:56526
models/inventory_items/music_kits/music_kit_hlalyx_01.vmdl_c CRC:00f55dedcb size:58583
models/inventory_items/music_kits/music_kit_hlb_01.vmdl_c CRC:003c125dc9 size:54915
models/inventory_items/music_kits/music_kit_hotlinemiami_01.vmdl_c CRC:00073d3457 size:54940
models/inventory_items/music_kits/music_kit_hundredth_01.vmdl_c CRC:00cf60e34e size:54937
models/inventory_items/music_kits/music_kit_ianhultquist_01.vmdl_c CRC:00e453b1ca size:54940
-models/inventory_items/music_kits/music_kit_isoxo_01.vmdl_c CRC:0049043455 size:58245
-models/inventory_items/music_kits/music_kit_jamesandthecoldgun_01.vmdl_c CRC:0074662bd9 size:58987
+models/inventory_items/music_kits/music_kit_isoxo_01.vmdl_c CRC:004f49ebdf size:57054
+models/inventory_items/music_kits/music_kit_jamesandthecoldgun_01.vmdl_c CRC:00f384f747 size:56986
models/inventory_items/music_kits/music_kit_jesseharlin_01.vmdl_c CRC:00dae7edbc size:54939
-models/inventory_items/music_kits/music_kit_jonathanyoung_01.vmdl_c CRC:00abc4af04 size:58631
+models/inventory_items/music_kits/music_kit_jonathanyoung_01.vmdl_c CRC:007fe7b2e8 size:56582
models/inventory_items/music_kits/music_kit_juelz_01.vmdl_c CRC:00810899b7 size:54917
-models/inventory_items/music_kits/music_kit_juelz_02.vmdl_c CRC:00dfac8131 size:58591
+models/inventory_items/music_kits/music_kit_juelz_02.vmdl_c CRC:002bd1c12a size:56526
models/inventory_items/music_kits/music_kit_kellybailey_01.vmdl_c CRC:002a68bd57 size:54939
-models/inventory_items/music_kits/music_kit_killermike_01.vmdl_c CRC:0066b0c485 size:58595
-models/inventory_items/music_kits/music_kit_killscript_01.vmdl_c CRC:00aae469c3 size:58250
+models/inventory_items/music_kits/music_kit_killermike_01.vmdl_c CRC:0064635005 size:56562
+models/inventory_items/music_kits/music_kit_killscript_01.vmdl_c CRC:004195593e size:57106
models/inventory_items/music_kits/music_kit_kitheory_01.vmdl_c CRC:007b8f89f8 size:54933
models/inventory_items/music_kits/music_kit_knock2_01.vmdl_c CRC:00b60e5c4a size:54934
-models/inventory_items/music_kits/music_kit_knock2_02.vmdl_c CRC:0028a8f84f size:58246
+models/inventory_items/music_kits/music_kit_knock2_02.vmdl_c CRC:0037b0c0d8 size:57054
models/inventory_items/music_kits/music_kit_laurashigihara_01.vmdl_c CRC:00422fb8c6 size:54942
models/inventory_items/music_kits/music_kit_lenniemoore_01.vmdl_c CRC:00a8270f2e size:54939
models/inventory_items/music_kits/music_kit_mateomessina_01.vmdl_c CRC:00a0f5583c size:54940
@@ -34730,8 +34732,8 @@ models/inventory_items/music_kits/music_kit_noisia_01.vmdl_c CRC:009059d9f2 size
models/inventory_items/music_kits/music_kit_perfectworld_01.vmdl_c CRC:002bba0792 size:54940
models/inventory_items/music_kits/music_kit_perfectworld_02.vmdl_c CRC:0034b208cf size:58300
models/inventory_items/music_kits/music_kit_proxy_01.vmdl_c CRC:0014ed1810 size:54917
-models/inventory_items/music_kits/music_kit_pvris_01.vmdl_c CRC:00302ce095 size:58591
-models/inventory_items/music_kits/music_kit_radcat_01.vmdl_c CRC:0091050192 size:58246
+models/inventory_items/music_kits/music_kit_pvris_01.vmdl_c CRC:00331d56ad size:56526
+models/inventory_items/music_kits/music_kit_radcat_01.vmdl_c CRC:00780b3d11 size:57054
models/inventory_items/music_kits/music_kit_roam_01.vmdl_c CRC:009b64a27e size:54916
models/inventory_items/music_kits/music_kit_robertallaire_01.vmdl_c CRC:0064ce3734 size:54941
models/inventory_items/music_kits/music_kit_sammarshall_01.vmdl_c CRC:0046ee8a0d size:54939
@@ -34741,23 +34743,23 @@ models/inventory_items/music_kits/music_kit_sasha_01.vmdl_c CRC:00a952bc67 size:
models/inventory_items/music_kits/music_kit_scarlxrd_01.vmdl_c CRC:004ea9a044 size:54936
models/inventory_items/music_kits/music_kit_scarlxrd_02.vmdl_c CRC:00672268bd size:54936
models/inventory_items/music_kits/music_kit_seanmurray_01.vmdl_c CRC:0032b5029e size:54938
-models/inventory_items/music_kits/music_kit_selectiveresponse_01.vmdl_c CRC:00e104f9d4 size:58634
+models/inventory_items/music_kits/music_kit_selectiveresponse_01.vmdl_c CRC:001b6db221 size:56585
models/inventory_items/music_kits/music_kit_skog_01.vmdl_c CRC:00dfcd5616 size:54916
models/inventory_items/music_kits/music_kit_skog_02.vmdl_c CRC:00253c9d1c size:54916
models/inventory_items/music_kits/music_kit_skog_03.vmdl_c CRC:001dfbb8b0 size:54916
models/inventory_items/music_kits/music_kit_sullivanking_01.vmdl_c CRC:0013c9f1f5 size:54940
models/inventory_items/music_kits/music_kit_theverkkars_01.vmdl_c CRC:00ff3c2efe size:54939
models/inventory_items/music_kits/music_kit_theverkkars_02.vmdl_c CRC:005d711a92 size:54939
-models/inventory_items/music_kits/music_kit_tigercub_01.vmdl_c CRC:0056a3d5af size:58947
+models/inventory_items/music_kits/music_kit_tigercub_01.vmdl_c CRC:00c579a530 size:56978
models/inventory_items/music_kits/music_kit_timhuling_01.vmdl_c CRC:0077f49644 size:54937
models/inventory_items/music_kits/music_kit_timhuling_02.vmdl_c CRC:00f56ff4a9 size:58249
models/inventory_items/music_kits/music_kit_treeadams_01.vmdl_c CRC:004733f77a size:58249
models/inventory_items/music_kits/music_kit_treeadams_benbromfield_01.vmdl_c CRC:007f61f04a size:54998
models/inventory_items/music_kits/music_kit_troelsfolmann_01.vmdl_c CRC:007fbf79ca size:54941
-models/inventory_items/music_kits/music_kit_twerl_01.vmdl_c CRC:00e422ffbb size:58245
+models/inventory_items/music_kits/music_kit_twerl_01.vmdl_c CRC:00a7afe099 size:57054
models/inventory_items/music_kits/music_kit_twinatlantic_01.vmdl_c CRC:0046120745 size:54940
models/inventory_items/music_kits/music_kit_valve_01.vmdl_c CRC:0097db0330 size:57605
-models/inventory_items/music_kits/music_kit_valve_cs2_01.vmdl_c CRC:00b36f828b size:57609
+models/inventory_items/music_kits/music_kit_valve_cs2_01.vmdl_c CRC:00b4028743 size:56770
models/inventory_items/music_kits/record_with_sleeve.vmdl_c CRC:0007eca103 size:58633
models/inventory_items/op9/op9_spider_diamond_color_tga_fb8b71c0.vtex_c CRC:00728dda9c size:240330
models/inventory_items/operation_10_bronze.vmdl_c CRC:008b9031ce size:13072
@@ -50449,7 +50451,7 @@ panorama/images/econ/keychains/weapon_1/kc_wpn_tknife_gold_png.vtex_c CRC:008263
panorama/images/econ/keychains/weapon_1/kc_wpn_usp_jewel_png.vtex_c CRC:003e58056c size:74428
panorama/images/econ/keychains/weapon_1/kc_wpn_usp_yarn_png.vtex_c CRC:00c74e8bf7 size:75722
panorama/images/econ/music_kits/3kliksphilip_01_png.vtex_c CRC:0058420b63 size:79755
-panorama/images/econ/music_kits/adambeyer_01_png.vtex_c CRC:000e161116 size:69805
+panorama/images/econ/music_kits/adambeyer_01_png.vtex_c CRC:005b98fcc5 size:68848
panorama/images/econ/music_kits/amontobin_01_png.vtex_c CRC:008ee7b9e0 size:71841
panorama/images/econ/music_kits/austinwintory_01_png.vtex_c CRC:0080adf5e8 size:61367
panorama/images/econ/music_kits/austinwintory_02_png.vtex_c CRC:0022714c99 size:100208
@@ -50474,30 +50476,30 @@ panorama/images/econ/music_kits/denzelcurry_01_png.vtex_c CRC:002e6a9950 size:59
panorama/images/econ/music_kits/dren_01_png.vtex_c CRC:0041e08a83 size:71680
panorama/images/econ/music_kits/dren_02_png.vtex_c CRC:00bf8e255f size:71286
panorama/images/econ/music_kits/dren_03_png.vtex_c CRC:006c146b76 size:71333
-panorama/images/econ/music_kits/dryden_01_png.vtex_c CRC:007ef19656 size:63662
+panorama/images/econ/music_kits/dryden_01_png.vtex_c CRC:00b469274f size:63560
panorama/images/econ/music_kits/feedme_01_png.vtex_c CRC:00270efbd4 size:37257
panorama/images/econ/music_kits/freakydna_01_png.vtex_c CRC:00a33e05ed size:52615
-panorama/images/econ/music_kits/ghost_01_png.vtex_c CRC:0052e4b293 size:74641
+panorama/images/econ/music_kits/ghost_01_png.vtex_c CRC:00f9c4a50c size:75317
panorama/images/econ/music_kits/hades_01_png.vtex_c CRC:001ac6202a size:82105
panorama/images/econ/music_kits/halo_01_png.vtex_c CRC:009da98edc size:95563
-panorama/images/econ/music_kits/health_01_png.vtex_c CRC:00f7ddf3ed size:60858
+panorama/images/econ/music_kits/health_01_png.vtex_c CRC:00bfcf608c size:44562
panorama/images/econ/music_kits/hlalyx_01_png.vtex_c CRC:00dd111d77 size:80347
panorama/images/econ/music_kits/hlb_01_png.vtex_c CRC:00ffbd91e4 size:82546
panorama/images/econ/music_kits/hotlinemiami_01_png.vtex_c CRC:0034b347ba size:90795
panorama/images/econ/music_kits/hundredth_01_png.vtex_c CRC:00ced4659c size:57602
panorama/images/econ/music_kits/ianhultquist_01_png.vtex_c CRC:0086bb726e size:80651
-panorama/images/econ/music_kits/isoxo_01_png.vtex_c CRC:00fdca2f15 size:69317
-panorama/images/econ/music_kits/jamesandthecoldgun_01_png.vtex_c CRC:008e377e53 size:70565
+panorama/images/econ/music_kits/isoxo_01_png.vtex_c CRC:0046fbcbcb size:65889
+panorama/images/econ/music_kits/jamesandthecoldgun_01_png.vtex_c CRC:00d7ae36be size:70978
panorama/images/econ/music_kits/jesseharlin_01_png.vtex_c CRC:00754f0cd9 size:37806
-panorama/images/econ/music_kits/jonathanyoung_01_png.vtex_c CRC:0048ca59dd size:87433
+panorama/images/econ/music_kits/jonathanyoung_01_png.vtex_c CRC:0061924ce1 size:88700
panorama/images/econ/music_kits/juelz_01_png.vtex_c CRC:00013b8044 size:52627
-panorama/images/econ/music_kits/juelz_02_png.vtex_c CRC:006322819a size:61145
+panorama/images/econ/music_kits/juelz_02_png.vtex_c CRC:00f1a79f22 size:61993
panorama/images/econ/music_kits/kellybailey_01_png.vtex_c CRC:00ba0c71c3 size:79732
-panorama/images/econ/music_kits/killermike_01_png.vtex_c CRC:0092f15edb size:53761
-panorama/images/econ/music_kits/killscript_01_png.vtex_c CRC:00ae4fdd83 size:78429
+panorama/images/econ/music_kits/killermike_01_png.vtex_c CRC:00cf339620 size:52279
+panorama/images/econ/music_kits/killscript_01_png.vtex_c CRC:005dbca746 size:80602
panorama/images/econ/music_kits/kitheory_01_png.vtex_c CRC:0051b48143 size:75712
panorama/images/econ/music_kits/knock2_01_png.vtex_c CRC:000db51b9c size:83100
-panorama/images/econ/music_kits/knock2_02_png.vtex_c CRC:0018b70953 size:74434
+panorama/images/econ/music_kits/knock2_02_png.vtex_c CRC:00c72dea9b size:74737
panorama/images/econ/music_kits/laurashigihara_01_png.vtex_c CRC:00e0e6c837 size:74576
panorama/images/econ/music_kits/lenniemoore_01_png.vtex_c CRC:00247f8925 size:78381
panorama/images/econ/music_kits/mateomessina_01_png.vtex_c CRC:00d1325e17 size:71517
@@ -50515,8 +50517,8 @@ panorama/images/econ/music_kits/noisia_01_png.vtex_c CRC:003cd81e4d size:57377
panorama/images/econ/music_kits/perfectworld_01_png.vtex_c CRC:00c5de42fd size:76672
panorama/images/econ/music_kits/perfectworld_02_png.vtex_c CRC:00e589d482 size:40894
panorama/images/econ/music_kits/proxy_01_png.vtex_c CRC:008ea31b8f size:66238
-panorama/images/econ/music_kits/pvris_01_png.vtex_c CRC:007a52834c size:44309
-panorama/images/econ/music_kits/radcat_01_png.vtex_c CRC:0076cbdff6 size:61697
+panorama/images/econ/music_kits/pvris_01_png.vtex_c CRC:00743b0903 size:43928
+panorama/images/econ/music_kits/radcat_01_png.vtex_c CRC:001cca7f91 size:59783
panorama/images/econ/music_kits/roam_01_png.vtex_c CRC:005ec80efb size:80362
panorama/images/econ/music_kits/robertallaire_01_png.vtex_c CRC:005d859703 size:73733
panorama/images/econ/music_kits/sammarshall_01_png.vtex_c CRC:005d1efc68 size:86400
@@ -50526,24 +50528,24 @@ panorama/images/econ/music_kits/sasha_01_png.vtex_c CRC:0030678c43 size:60749
panorama/images/econ/music_kits/scarlxrd_01_png.vtex_c CRC:00c9f59d8d size:75587
panorama/images/econ/music_kits/scarlxrd_02_png.vtex_c CRC:00add74c5b size:95145
panorama/images/econ/music_kits/seanmurray_01_png.vtex_c CRC:00c45e766f size:74084
-panorama/images/econ/music_kits/selectiveresponse_01_png.vtex_c CRC:0004cf5a85 size:70774
+panorama/images/econ/music_kits/selectiveresponse_01_png.vtex_c CRC:0095ff1615 size:75220
panorama/images/econ/music_kits/skog_01_png.vtex_c CRC:00469ff59e size:88087
panorama/images/econ/music_kits/skog_02_png.vtex_c CRC:00c1f48370 size:65073
panorama/images/econ/music_kits/skog_03_png.vtex_c CRC:007161df3e size:81258
panorama/images/econ/music_kits/sullivanking_01_png.vtex_c CRC:00bb1c667e size:67151
panorama/images/econ/music_kits/theverkkars_01_png.vtex_c CRC:006d1ba974 size:43729
panorama/images/econ/music_kits/theverkkars_02_png.vtex_c CRC:0051747062 size:80378
-panorama/images/econ/music_kits/tigercub_01_png.vtex_c CRC:009b2a4316 size:43075
+panorama/images/econ/music_kits/tigercub_01_png.vtex_c CRC:009b0ecd20 size:42206
panorama/images/econ/music_kits/timhuling_01_png.vtex_c CRC:008057365c size:93058
panorama/images/econ/music_kits/timhuling_02_png.vtex_c CRC:00b786369b size:61774
panorama/images/econ/music_kits/treeadams_01_png.vtex_c CRC:000c213598 size:86539
panorama/images/econ/music_kits/treeadams_benbromfield_01_png.vtex_c CRC:0094ad7289 size:60494
panorama/images/econ/music_kits/troelsfolmann_01_png.vtex_c CRC:00c52ed18f size:83382
-panorama/images/econ/music_kits/twerl_01_png.vtex_c CRC:00272f7b81 size:76202
+panorama/images/econ/music_kits/twerl_01_png.vtex_c CRC:00eb56d3ac size:75018
panorama/images/econ/music_kits/twinatlantic_01_png.vtex_c CRC:0054af6d83 size:74211
panorama/images/econ/music_kits/valve_01_png.vtex_c CRC:001f4315c6 size:64428
panorama/images/econ/music_kits/valve_02_png.vtex_c CRC:00405c1c8a size:32510
-panorama/images/econ/music_kits/valve_cs2_01_png.vtex_c CRC:009b94cb78 size:58244
+panorama/images/econ/music_kits/valve_cs2_01_png.vtex_c CRC:00072c90ef size:57774
panorama/images/econ/patches/case01/patch_banana_png.vtex_c CRC:00da8c8d62 size:79879
panorama/images/econ/patches/case01/patch_bloodhound_png.vtex_c CRC:001eb00c20 size:72674
panorama/images/econ/patches/case01/patch_boss_png.vtex_c CRC:006602d85c size:66076
@@ -51418,6 +51420,8 @@ panorama/images/econ/status_icons/maptoken_agencycs2_png.vtex_c CRC:0019276d5a s
panorama/images/econ/status_icons/maptoken_agencycs2_small_png.vtex_c CRC:00b5531406 size:14448
panorama/images/econ/status_icons/maptoken_ali_png.vtex_c CRC:00216adfee size:195543
panorama/images/econ/status_icons/maptoken_ali_small_png.vtex_c CRC:001d960140 size:14336
+panorama/images/econ/status_icons/maptoken_alpine_png.vtex_c CRC:00d8b14502 size:236888
+panorama/images/econ/status_icons/maptoken_alpine_small_png.vtex_c CRC:00c461aa7a size:14448
panorama/images/econ/status_icons/maptoken_anubis_png.vtex_c CRC:00a43b322d size:198004
panorama/images/econ/status_icons/maptoken_anubis_small_png.vtex_c CRC:006aeee823 size:14352
panorama/images/econ/status_icons/maptoken_apollo_png.vtex_c CRC:00e0bfe45f size:198094
@@ -51538,6 +51542,8 @@ panorama/images/econ/status_icons/maptoken_pitstop_png.vtex_c CRC:00e00365dc siz
panorama/images/econ/status_icons/maptoken_pitstop_small_png.vtex_c CRC:0056bac5e5 size:14352
panorama/images/econ/status_icons/maptoken_poolday_png.vtex_c CRC:008b9cb82b size:237259
panorama/images/econ/status_icons/maptoken_poolday_small_png.vtex_c CRC:0027948029 size:14400
+panorama/images/econ/status_icons/maptoken_poseidon_png.vtex_c CRC:00f7db42e5 size:238201
+panorama/images/econ/status_icons/maptoken_poseidon_small_png.vtex_c CRC:00ae746c94 size:14448
panorama/images/econ/status_icons/maptoken_prime_png.vtex_c CRC:00045b665c size:200261
panorama/images/econ/status_icons/maptoken_prime_small_png.vtex_c CRC:00118cea1b size:14352
panorama/images/econ/status_icons/maptoken_rails_png.vtex_c CRC:00da25135f size:196747
@@ -51554,6 +51560,8 @@ panorama/images/econ/status_icons/maptoken_ruins_png.vtex_c CRC:0010c08f4f size:
panorama/images/econ/status_icons/maptoken_ruins_small_png.vtex_c CRC:00138d661a size:14352
panorama/images/econ/status_icons/maptoken_rush_png.vtex_c CRC:0007531504 size:197683
panorama/images/econ/status_icons/maptoken_rush_small_png.vtex_c CRC:007f1b05c4 size:14352
+panorama/images/econ/status_icons/maptoken_sanctum_png.vtex_c CRC:008eb472ed size:237700
+panorama/images/econ/status_icons/maptoken_sanctum_small_png.vtex_c CRC:00936a4906 size:14448
panorama/images/econ/status_icons/maptoken_santorini_png.vtex_c CRC:00dc91e946 size:201025
panorama/images/econ/status_icons/maptoken_santorini_small_png.vtex_c CRC:001302eba9 size:14352
panorama/images/econ/status_icons/maptoken_seaside_png.vtex_c CRC:003ff96ef7 size:200310
@@ -51562,6 +51570,8 @@ panorama/images/econ/status_icons/maptoken_season_png.vtex_c CRC:00cb16914e size
panorama/images/econ/status_icons/maptoken_season_small_png.vtex_c CRC:00547a5b43 size:14352
panorama/images/econ/status_icons/maptoken_siege_png.vtex_c CRC:009513dc33 size:197737
panorama/images/econ/status_icons/maptoken_siege_small_png.vtex_c CRC:008542bcb5 size:14352
+panorama/images/econ/status_icons/maptoken_stronghold_png.vtex_c CRC:0073ee261e size:239888
+panorama/images/econ/status_icons/maptoken_stronghold_small_png.vtex_c CRC:00707f89ef size:239888
panorama/images/econ/status_icons/maptoken_studio_png.vtex_c CRC:00cdd38267 size:198024
panorama/images/econ/status_icons/maptoken_studio_small_png.vtex_c CRC:00700edb7b size:14352
panorama/images/econ/status_icons/maptoken_subzero_png.vtex_c CRC:00cc37882b size:199662
@@ -51578,6 +51588,8 @@ panorama/images/econ/status_icons/maptoken_tuscan_png.vtex_c CRC:0052b82150 size
panorama/images/econ/status_icons/maptoken_tuscan_small_png.vtex_c CRC:00267092dd size:14352
panorama/images/econ/status_icons/maptoken_vineyard_png.vtex_c CRC:00518e7b32 size:200572
panorama/images/econ/status_icons/maptoken_vineyard_small_png.vtex_c CRC:0005ddd3af size:14352
+panorama/images/econ/status_icons/maptoken_warden_png.vtex_c CRC:006de834c5 size:237806
+panorama/images/econ/status_icons/maptoken_warden_small_png.vtex_c CRC:00b4814d7d size:14448
panorama/images/econ/status_icons/maptoken_whistle_png.vtex_c CRC:00817834d4 size:236899
panorama/images/econ/status_icons/maptoken_whistle_small_png.vtex_c CRC:003051a942 size:14384
panorama/images/econ/status_icons/maptoken_workout_png.vtex_c CRC:0055e55078 size:200776
@@ -74085,11 +74097,11 @@ panorama/images/map_icons/screenshots/1080p/de_dust2_1_png.vtex_c CRC:00faabf8f3
panorama/images/map_icons/screenshots/1080p/de_dust2_2_png.vtex_c CRC:003a470710 size:3743356
panorama/images/map_icons/screenshots/1080p/de_dust2_3_png.vtex_c CRC:0076ee5b30 size:1944884
panorama/images/map_icons/screenshots/1080p/de_dust2_png.vtex_c CRC:002364685e size:3456378
-panorama/images/map_icons/screenshots/1080p/de_inferno_1_png.vtex_c CRC:008095f3ef size:3476243
-panorama/images/map_icons/screenshots/1080p/de_inferno_2_png.vtex_c CRC:003a0d6e80 size:3110062
-panorama/images/map_icons/screenshots/1080p/de_inferno_3_png.vtex_c CRC:001a4dddc0 size:3424434
-panorama/images/map_icons/screenshots/1080p/de_inferno_4_png.vtex_c CRC:00893ccc33 size:3155170
-panorama/images/map_icons/screenshots/1080p/de_inferno_png.vtex_c CRC:000b9bdf2c size:3399841
+panorama/images/map_icons/screenshots/1080p/de_inferno_1_png.vtex_c CRC:001d9d8fa8 size:3479892
+panorama/images/map_icons/screenshots/1080p/de_inferno_2_png.vtex_c CRC:00106811db size:3116097
+panorama/images/map_icons/screenshots/1080p/de_inferno_3_png.vtex_c CRC:00e9c7a79d size:3427401
+panorama/images/map_icons/screenshots/1080p/de_inferno_4_png.vtex_c CRC:0073af3814 size:3154179
+panorama/images/map_icons/screenshots/1080p/de_inferno_png.vtex_c CRC:00305a5039 size:3407490
panorama/images/map_icons/screenshots/1080p/de_mirage_1_png.vtex_c CRC:0083f0d356 size:3760081
panorama/images/map_icons/screenshots/1080p/de_mirage_2_png.vtex_c CRC:00e0c3177f size:3364814
panorama/images/map_icons/screenshots/1080p/de_mirage_3_png.vtex_c CRC:007c16fc7f size:2621869
@@ -74135,7 +74147,7 @@ panorama/images/map_icons/screenshots/360p/de_ancient_png.vtex_c CRC:000d1b6f3b
panorama/images/map_icons/screenshots/360p/de_anubis_png.vtex_c CRC:00c006871b size:379702
panorama/images/map_icons/screenshots/360p/de_dust2_png.vtex_c CRC:001ec0b2a7 size:417766
panorama/images/map_icons/screenshots/360p/de_dust_png.vtex_c CRC:007fd5e1b6 size:358102
-panorama/images/map_icons/screenshots/360p/de_inferno_png.vtex_c CRC:0012ebbc61 size:404600
+panorama/images/map_icons/screenshots/360p/de_inferno_png.vtex_c CRC:00a1877a04 size:405160
panorama/images/map_icons/screenshots/360p/de_mirage_png.vtex_c CRC:008449f607 size:454106
panorama/images/map_icons/screenshots/360p/de_nuke_png.vtex_c CRC:00bfe7927f size:353074
panorama/images/map_icons/screenshots/360p/de_overpass_png.vtex_c CRC:00ed9d8c68 size:419660
@@ -74195,11 +74207,11 @@ panorama/images/map_icons/screenshots/720p/de_dust2_1_png.vtex_c CRC:0031a6ae9d
panorama/images/map_icons/screenshots/720p/de_dust2_2_png.vtex_c CRC:0055f59279 size:1700759
panorama/images/map_icons/screenshots/720p/de_dust2_3_png.vtex_c CRC:00ba25e099 size:1903581
panorama/images/map_icons/screenshots/720p/de_dust2_png.vtex_c CRC:00f277556b size:1577114
-panorama/images/map_icons/screenshots/720p/de_inferno_1_png.vtex_c CRC:0060a460f7 size:1652159
-panorama/images/map_icons/screenshots/720p/de_inferno_2_png.vtex_c CRC:00607c8a19 size:1447312
-panorama/images/map_icons/screenshots/720p/de_inferno_3_png.vtex_c CRC:002f0a9197 size:1584892
-panorama/images/map_icons/screenshots/720p/de_inferno_4_png.vtex_c CRC:007b3eb26a size:1445456
-panorama/images/map_icons/screenshots/720p/de_inferno_png.vtex_c CRC:00ac26a8c5 size:1544184
+panorama/images/map_icons/screenshots/720p/de_inferno_1_png.vtex_c CRC:00204dbf45 size:1656731
+panorama/images/map_icons/screenshots/720p/de_inferno_2_png.vtex_c CRC:000d65da99 size:1450500
+panorama/images/map_icons/screenshots/720p/de_inferno_3_png.vtex_c CRC:0043f35100 size:1588343
+panorama/images/map_icons/screenshots/720p/de_inferno_4_png.vtex_c CRC:000e1c532c size:1445909
+panorama/images/map_icons/screenshots/720p/de_inferno_png.vtex_c CRC:00fffff96e size:1545593
panorama/images/map_icons/screenshots/720p/de_mirage_1_png.vtex_c CRC:0077d04e9a size:1712462
panorama/images/map_icons/screenshots/720p/de_mirage_2_png.vtex_c CRC:00602e4878 size:1583221
panorama/images/map_icons/screenshots/720p/de_mirage_3_png.vtex_c CRC:0057061fb6 size:1282143
@@ -74877,7 +74889,7 @@ panorama/layout/inspect.vxml_c CRC:002eabbf40 size:1810
panorama/layout/intromovie.vxml_c CRC:004e7c93de size:1527
panorama/layout/inventory_item_list.vxml_c CRC:00829fec18 size:1519
panorama/layout/itempreviewdebug.vxml_c CRC:00ad026445 size:5215
-panorama/layout/itemtile.vxml_c CRC:004a3e7888 size:3369
+panorama/layout/itemtile.vxml_c CRC:00c15d9569 size:3368
panorama/layout/itemtile_store.vxml_c CRC:001e9383d2 size:3389
panorama/layout/leaderboard.vxml_c CRC:002b1f1bd2 size:3744
panorama/layout/loadingscreen.vxml_c CRC:0052b7a9dd size:3574
@@ -74952,7 +74964,7 @@ panorama/layout/popups/popup_directchallenge_join.vxml_c CRC:0048c4b78a size:238
panorama/layout/popups/popup_directchallenge_steamgroups.vxml_c CRC:0006383dd0 size:2219
panorama/layout/popups/popup_hud_edge_positions.vxml_c CRC:0070c3bf5e size:2122
panorama/layout/popups/popup_inspect_action-bar.vxml_c CRC:00b7531294 size:3714
-panorama/layout/popups/popup_inspect_async-bar.vxml_c CRC:00d93c610a size:2997
+panorama/layout/popups/popup_inspect_async-bar.vxml_c CRC:0038408a8f size:3178
panorama/layout/popups/popup_inspect_header.vxml_c CRC:004ede88aa size:2353
panorama/layout/popups/popup_inspect_purchase-bar.vxml_c CRC:00e88d379b size:2597
panorama/layout/popups/popup_inspect_rental-bar.vxml_c CRC:00a78d2542 size:2635
@@ -74963,8 +74975,8 @@ panorama/layout/popups/popup_license_register.vxml_c CRC:002b593ee5 size:1824
panorama/layout/popups/popup_mainmenu_overwatch_verdict.vxml_c CRC:00451b2d1e size:2438
panorama/layout/popups/popup_major_hub.vxml_c CRC:0038ae5a2a size:6336
panorama/layout/popups/popup_news.vxml_c CRC:000870d825 size:2395
-panorama/layout/popups/popup_offers_laptop.vxml_c CRC:00e1c689dd size:3694
-panorama/layout/popups/popup_offers_laptop_interface.vxml_c CRC:00a805b6a6 size:8439
+panorama/layout/popups/popup_offers_laptop.vxml_c CRC:00b8e4eaec size:3694
+panorama/layout/popups/popup_offers_laptop_interface.vxml_c CRC:00103e5a8c size:8917
panorama/layout/popups/popup_play_gamemodeflags.vxml_c CRC:00b3ed67ac size:2119
panorama/layout/popups/popup_premier_pick_ban.vxml_c CRC:008adfc90d size:5476
panorama/layout/popups/popup_prime_status.vxml_c CRC:007f0d9558 size:3579
@@ -75031,7 +75043,7 @@ panorama/layout/tooltips/stats/tooltip_playerstats_weaponsgraph.vxml_c CRC:00482
panorama/layout/tooltips/tooltip_base.vxml_c CRC:001ee0cc28 size:1498
panorama/layout/tooltips/tooltip_custom_test.vxml_c CRC:000ca219b3 size:1614
panorama/layout/tooltips/tooltip_eventsched_team_simple.vxml_c CRC:002dbe13c6 size:1952
-panorama/layout/tooltips/tooltip_inventory_item.vxml_c CRC:0008eb3db7 size:2787
+panorama/layout/tooltips/tooltip_inventory_item.vxml_c CRC:0066d03743 size:2810
panorama/layout/tooltips/tooltip_limited_item_variation.vxml_c CRC:00f85ceb44 size:1829
panorama/layout/tooltips/tooltip_loadout_item.vxml_c CRC:0008e5eb4e size:1747
panorama/layout/tooltips/tooltip_lobby_settings.vxml_c CRC:00143c020e size:3355
@@ -75072,9 +75084,9 @@ panorama/scripts/common/eventutil.vts_c CRC:0052f92f9d size:3742
panorama/scripts/common/flip_panel_anim.vts_c CRC:00d9884ef1 size:9198
panorama/scripts/common/formattext.vts_c CRC:00b9d2d472 size:17934
panorama/scripts/common/gamerules_constants.vts_c CRC:00b6a27ad2 size:3294
-panorama/scripts/common/hold_button.vts_c CRC:00eecf0766 size:8974
+panorama/scripts/common/hold_button.vts_c CRC:0001440e83 size:9102
panorama/scripts/common/icon.vts_c CRC:0013e31a4c size:4638
-panorama/scripts/common/item_context_entries.vts_c CRC:00cbd5fefe size:122590
+panorama/scripts/common/item_context_entries.vts_c CRC:00edd02b26 size:124206
panorama/scripts/common/iteminfo.vts_c CRC:00a10938ec size:41710
panorama/scripts/common/licenseutil.vts_c CRC:001a51d7f3 size:5006
panorama/scripts/common/prime_button_action.vts_c CRC:003673d8e2 size:3374
@@ -75113,7 +75125,7 @@ panorama/scripts/friendtile.vts_c CRC:00f2e18300 size:12718
panorama/scripts/generated/items_event_current_generated_store.vts_c CRC:0046110da0 size:11838
panorama/scripts/honor_icon.vts_c CRC:0011c07fa5 size:11918
panorama/scripts/hud/huddeathpanel.vts_c CRC:0020b02dba size:6926
-panorama/scripts/hud/huddemocontroller.vts_c CRC:004283300a size:43966
+panorama/scripts/hud/huddemocontroller.vts_c CRC:001e9e5e76 size:44078
panorama/scripts/hud/hudinstructor.vts_c CRC:009243d7f4 size:8270
panorama/scripts/hud/hudmissions.vts_c CRC:00448937d1 size:3742
panorama/scripts/hud/hudmoney.vts_c CRC:0034c882a9 size:3342
@@ -75123,7 +75135,7 @@ panorama/scripts/hud/hudwinpanel_background_map.vts_c CRC:002ef9f426 size:37150
panorama/scripts/inspect.vts_c CRC:00176eea94 size:70254
panorama/scripts/intromovie.vts_c CRC:003458d5af size:4894
panorama/scripts/itempreviewdebug.vjs_c CRC:00cf9bd3ad size:7742
-panorama/scripts/itemtile.vts_c CRC:0043d91b6c size:34526
+panorama/scripts/itemtile.vts_c CRC:009d29026f size:35230
panorama/scripts/itemtile_store.vts_c CRC:00357cd636 size:28910
panorama/scripts/leaderboard.vts_c CRC:0065935c54 size:55150
panorama/scripts/loadingscreen.vts_c CRC:00c6bed21c size:17054
@@ -75187,8 +75199,8 @@ panorama/scripts/popups/popup_directchallenge_join.vjs_c CRC:00ef5b51d1 size:586
panorama/scripts/popups/popup_directchallenge_steamgroups.vjs_c CRC:003a9e0207 size:3268
panorama/scripts/popups/popup_hud_edge_positions.vts_c CRC:00d58daa7d size:3998
panorama/scripts/popups/popup_inspect_action-bar.vts_c CRC:0085056d82 size:42334
-panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:005a953d23 size:62158
-panorama/scripts/popups/popup_inspect_header.vts_c CRC:00b455eb14 size:9822
+panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:0003eba2c2 size:65678
+panorama/scripts/popups/popup_inspect_header.vts_c CRC:008295fc35 size:10238
panorama/scripts/popups/popup_inspect_purchase-bar.vts_c CRC:00367b936c size:18990
panorama/scripts/popups/popup_inspect_rental-bar.vts_c CRC:002e1b85c6 size:28734
panorama/scripts/popups/popup_inspect_shared.vts_c CRC:00a565a1a1 size:3214
@@ -75201,7 +75213,7 @@ panorama/scripts/popups/popup_mainmenu_overwatch_verdict.vts_c CRC:0097839e0e si
panorama/scripts/popups/popup_major_hub.vts_c CRC:00ac2c6606 size:76206
panorama/scripts/popups/popup_news.vts_c CRC:00f6565e6e size:6014
panorama/scripts/popups/popup_offers_laptop.vts_c CRC:00fc869645 size:30926
-panorama/scripts/popups/popup_offers_laptop_interface.vts_c CRC:00aa233d99 size:118014
+panorama/scripts/popups/popup_offers_laptop_interface.vts_c CRC:002e51cc81 size:124974
panorama/scripts/popups/popup_operation_store.vjs_c CRC:00ef18b8f7 size:22561
panorama/scripts/popups/popup_play_gamemodeflags.vjs_c CRC:00bbf76349 size:3537
panorama/scripts/popups/popup_premier_pick_ban.vts_c CRC:006709f02d size:63662
@@ -75295,7 +75307,7 @@ panorama/styles/context_menus/context_menu_vote.vcss_c CRC:00f0b4065d size:1313
panorama/styles/context_menus/context_menu_watchnotice_match_streams.vcss_c CRC:00eedd3325 size:4934
panorama/styles/crafting.vcss_c CRC:00cee957d3 size:3336
panorama/styles/crosshair.vcss_c CRC:00779983c5 size:6640
-panorama/styles/csgostyles.vcss_c CRC:00e65b9071 size:140980
+panorama/styles/csgostyles.vcss_c CRC:00648e9898 size:141065
panorama/styles/endofmatch-characters.vcss_c CRC:00f1512a79 size:12991
panorama/styles/endofmatch-rank.vcss_c CRC:007f9b5891 size:27455
panorama/styles/endofmatch-skillgroup.vcss_c CRC:0094f322fb size:42794
@@ -75326,7 +75338,7 @@ panorama/styles/hud/hudhealthammocenter.vcss_c CRC:0053472291 size:60395
panorama/styles/hud/hudhealthbars.vcss_c CRC:009832d66a size:2823
panorama/styles/hud/hudhinttext.vcss_c CRC:001e323e5d size:8027
panorama/styles/hud/hudinstructor.vcss_c CRC:005bb43682 size:14884
-panorama/styles/hud/hudlegend.vcss_c CRC:004f46dfdb size:3361
+panorama/styles/hud/hudlegend.vcss_c CRC:005d376e3f size:3598
panorama/styles/hud/hudmissionpanel.vcss_c CRC:003b5e90e4 size:2919
panorama/styles/hud/hudmissions.vcss_c CRC:0040c54b11 size:8588
panorama/styles/hud/hudmoney.vcss_c CRC:00ac998d35 size:9921
@@ -75349,7 +75361,7 @@ panorama/styles/hud/hudwinpanel_roundimpactscore.vcss_c CRC:00df7f4b81 size:2383
panorama/styles/intromovie.vcss_c CRC:00e4058a02 size:1664
panorama/styles/inventory_item_list.vcss_c CRC:0020f12f6a size:3380
panorama/styles/itempreview.vcss_c CRC:0068af61f9 size:13404
-panorama/styles/itemtile.vcss_c CRC:00c711e463 size:24130
+panorama/styles/itemtile.vcss_c CRC:002cee87fd size:24423
panorama/styles/itemtile_store.vcss_c CRC:0097679f42 size:34522
panorama/styles/itemwheels.vcss_c CRC:00bbdb6c8d size:6018
panorama/styles/leaderboard.vcss_c CRC:002abd6197 size:11792
@@ -75367,7 +75379,7 @@ panorama/styles/mainmenu_overwatch.vcss_c CRC:009851e4aa size:3819
panorama/styles/mainmenu_play.vcss_c CRC:00be993f93 size:91244
panorama/styles/mainmenu_right_column.vcss_c CRC:00cdf8c385 size:1823
panorama/styles/mainmenu_store.vcss_c CRC:00ea69046e size:29453
-panorama/styles/mainmenu_store_fullscreen.vcss_c CRC:0059b5db4f size:12533
+panorama/styles/mainmenu_store_fullscreen.vcss_c CRC:006d8a4f75 size:12533
panorama/styles/mainmenu_stream.vcss_c CRC:00912de6dd size:11699
panorama/styles/mainmenu_tournaments.vcss_c CRC:0063c95aeb size:15273
panorama/styles/mainmenu_watch.vcss_c CRC:00db416d79 size:30176
@@ -75423,7 +75435,7 @@ panorama/styles/popups/popup_mainmenu_overwatch_verdict.vcss_c CRC:00011a1851 si
panorama/styles/popups/popup_major_hub.vcss_c CRC:0031a28b8a size:50336
panorama/styles/popups/popup_manager.vcss_c CRC:005ce65000 size:2586
panorama/styles/popups/popup_news.vcss_c CRC:005582e04c size:4440
-panorama/styles/popups/popup_offers_laptop_interface.vcss_c CRC:00692432c2 size:77917
+panorama/styles/popups/popup_offers_laptop_interface.vcss_c CRC:00afc11d1e size:91840
panorama/styles/popups/popup_operation_store.vcss_c CRC:00763fe508 size:32549
panorama/styles/popups/popup_permissions_settings.vcss_c CRC:00cbcae24e size:3912
panorama/styles/popups/popup_play_gamemodeflags.vcss_c CRC:00f945d0c5 size:1795
@@ -75435,7 +75447,7 @@ panorama/styles/popups/popup_report_server.vcss_c CRC:006c4923e9 size:1231
panorama/styles/popups/popup_season_stats.vcss_c CRC:0098d34aa1 size:43910
panorama/styles/popups/popup_select_inventory_item.vcss_c CRC:0058d39711 size:2882
panorama/styles/popups/popup_select_item_for_capability.vcss_c CRC:007633d61d size:3349
-panorama/styles/popups/popup_subscription_upsell.vcss_c CRC:00b03a6359 size:9787
+panorama/styles/popups/popup_subscription_upsell.vcss_c CRC:000947fe64 size:9787
panorama/styles/popups/popup_tournament_controlroom.vcss_c CRC:006cc08c69 size:9219
panorama/styles/popups/popup_tournament_journal.vcss_c CRC:004cf2c8e0 size:19223
panorama/styles/popups/popup_tournament_pickban.vcss_c CRC:00ef3ddfe5 size:6156
@@ -75475,7 +75487,7 @@ panorama/styles/teamintromenu.vcss_c CRC:003e31fda9 size:7373
panorama/styles/teamselectmenu.vcss_c CRC:00f52d146a size:13880
panorama/styles/tooltips/tooltip_custom_test.vcss_c CRC:00a6ddd111 size:1289
panorama/styles/tooltips/tooltip_eventsched_team.vcss_c CRC:00b5271117 size:3554
-panorama/styles/tooltips/tooltip_inventory_item.vcss_c CRC:000b700038 size:5712
+panorama/styles/tooltips/tooltip_inventory_item.vcss_c CRC:006ad89197 size:5727
panorama/styles/tooltips/tooltip_limited_item_variation.vcss_c CRC:00b7910a21 size:2585
panorama/styles/tooltips/tooltip_mission.vcss_c CRC:00325187e2 size:3567
panorama/styles/tooltips/tooltip_player_xp.vcss_c CRC:001ef0d6c7 size:5835
@@ -78628,36 +78640,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702
radial_quickinventory.txt CRC:005a0c1bf5 size:1080
rebuy.txt CRC:008332da3a size:1688
resource/clientscheme.res CRC:001b42ad42 size:14978
-resource/csgo_brazilian.txt CRC:0023fc4773 size:4748290
-resource/csgo_bulgarian.txt CRC:0075d8823f size:7275591
-resource/csgo_czech.txt CRC:00adf88619 size:4822531
-resource/csgo_danish.txt CRC:003f7156d9 size:4727904
-resource/csgo_dutch.txt CRC:0019b56c9f size:4775931
-resource/csgo_english.txt CRC:0088bf3aa3 size:4606011
-resource/csgo_finnish.txt CRC:00d16bd403 size:4697660
-resource/csgo_french.txt CRC:00f8317ead size:4965159
-resource/csgo_german.txt CRC:004cb422d3 size:4904031
-resource/csgo_greek.txt CRC:0020bf17cc size:6771286
-resource/csgo_hungarian.txt CRC:00a9ed6d15 size:4808918
-resource/csgo_indonesian.txt CRC:00d51e081e size:4460361
-resource/csgo_italian.txt CRC:008c7311fc size:4890139
-resource/csgo_japanese.txt CRC:009b43264e size:5025848
-resource/csgo_koreana.txt CRC:0094ae07a7 size:4822017
-resource/csgo_latam.txt CRC:0088605eef size:4901995
-resource/csgo_norwegian.txt CRC:00155c7d7f size:4656283
-resource/csgo_polish.txt CRC:00ea6940aa size:5042271
-resource/csgo_portuguese.txt CRC:0006399b4f size:4797727
-resource/csgo_romanian.txt CRC:0011ba6df7 size:4991821
-resource/csgo_russian.txt CRC:009cc7b664 size:6234936
-resource/csgo_schinese.txt CRC:00d0741e1a size:4648471
+resource/csgo_brazilian.txt CRC:00e1e08c9e size:4748376
+resource/csgo_bulgarian.txt CRC:009cc9afd5 size:7275591
+resource/csgo_czech.txt CRC:007198c971 size:4822648
+resource/csgo_danish.txt CRC:00d6607b33 size:4727904
+resource/csgo_dutch.txt CRC:0057a9928e size:4776061
+resource/csgo_english.txt CRC:0084ad8149 size:4609994
+resource/csgo_finnish.txt CRC:007c3cf532 size:4697672
+resource/csgo_french.txt CRC:0062e4496a size:4965273
+resource/csgo_german.txt CRC:00113e2eaf size:4904165
+resource/csgo_greek.txt CRC:00706656a2 size:6772283
+resource/csgo_hungarian.txt CRC:009456f1ef size:4809022
+resource/csgo_indonesian.txt CRC:003c0f25f4 size:4460361
+resource/csgo_italian.txt CRC:007a6510c2 size:4890267
+resource/csgo_japanese.txt CRC:0067fc86c3 size:5025988
+resource/csgo_koreana.txt CRC:007dbf2a4d size:4822017
+resource/csgo_latam.txt CRC:0061717305 size:4901995
+resource/csgo_norwegian.txt CRC:00dfe40714 size:4656386
+resource/csgo_polish.txt CRC:0003786d40 size:5042271
+resource/csgo_portuguese.txt CRC:00aa707a2a size:4797837
+resource/csgo_romanian.txt CRC:00f8ab401d size:4991821
+resource/csgo_russian.txt CRC:00bb6e0ee6 size:6234932
+resource/csgo_schinese.txt CRC:004f0bd142 size:4648551
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
-resource/csgo_spanish.txt CRC:00bc293312 size:4864560
-resource/csgo_swedish.txt CRC:002feba8e7 size:4757235
-resource/csgo_tchinese.txt CRC:0000e58d24 size:4374355
-resource/csgo_thai.txt CRC:00dc403825 size:7703548
-resource/csgo_turkish.txt CRC:00caac9851 size:4878951
-resource/csgo_ukrainian.txt CRC:00fc78b542 size:6275298
-resource/csgo_vietnamese.txt CRC:00ba1e7b5b size:5151447
+resource/csgo_spanish.txt CRC:0055381ef8 size:4864560
+resource/csgo_swedish.txt CRC:00c6fa850d size:4757235
+resource/csgo_tchinese.txt CRC:00e9f4a0ce size:4374355
+resource/csgo_thai.txt CRC:00355115cf size:7703548
+resource/csgo_turkish.txt CRC:0023bdb5bb size:4878951
+resource/csgo_ukrainian.txt CRC:00156998a8 size:6275298
+resource/csgo_vietnamese.txt CRC:00c843d412 size:5151569
resource/game.gameevents CRC:0090de10bc size:9837
resource/halflife2.vfont CRC:00b064848c size:58000
resource/mod.gameevents CRC:008dcbd0da size:20719
game/csgo/pak01_dir/maps/de_inferno_camera_nodes.kv3
modified • +169 / -247 • changes: 416
Show patch
@@ -121,30 +121,22 @@
position = [ 311.241699, -132.323853, 174.03125 ]
neighbor_indices =
[
- 7, 8, 11, 13,
- 16, 29, 31, 38,
- 39, 40, 45, 46,
+ 7, 8, 11, 16,
+ 31, 38, 39, 40,
+ 45, 46,
]
neighbor_distances =
[
- 1086.178345, 1301.82373, 690.042786, 329.274353,
- 695.1474, 532.103882, 579.939514, 308.2229,
- 122.681633, 626.983521, 623.213013, 765.202393,
+ 1086.178345, 1301.82373, 690.042786, 695.1474,
+ 579.939514, 308.2229, 122.681633, 626.983521,
+ 623.213013, 765.202393,
]
},
{
index = 13
position = [ 308.279541, -461.287109, 160.03125 ]
- neighbor_indices =
- [
- 12, 14, 15, 29,
- 39,
- ]
- neighbor_distances =
- [
- 329.274353, 409.650757, 689.523193, 203.978989,
- 444.017639,
- ]
+ neighbor_indices = [ 14, 15, 29 ]
+ neighbor_distances = [ 409.650757, 689.523193, 203.978989 ]
},
{
index = 14
@@ -253,7 +245,7 @@
{
index = 26
position = [ -418.636475, 834.720764, 44.423691 ]
- neighbor_indices = [ 24, 25, 100 ]
+ neighbor_indices = [ 24, 25, 97 ]
neighbor_distances = [ 390.905548, 469.860352, 518.716675 ]
},
{
@@ -271,16 +263,8 @@
{
index = 29
position = [ 332.555756, -663.816345, 160.03125 ]
- neighbor_indices =
- [
- 12, 13, 30, 39,
- 41,
- ]
- neighbor_distances =
- [
- 532.103882, 203.978989, 564.383484, 646.891418,
- 890.295166,
- ]
+ neighbor_indices = [ 13, 30, 41 ]
+ neighbor_distances = [ 203.978989, 564.383484, 890.295166 ]
},
{
index = 30
@@ -332,7 +316,7 @@
neighbor_indices =
[
30, 32, 34, 40,
- 45, 56,
+ 45, 53,
]
neighbor_distances =
[
@@ -345,8 +329,8 @@
position = [ 88.798279, 572.491272, 145.600037 ]
neighbor_indices =
[
- 33, 35, 56, 99,
- 100,
+ 33, 35, 53, 96,
+ 97,
]
neighbor_distances =
[
@@ -383,13 +367,13 @@
position = [ 302.132507, -18.360901, 129.53125 ]
neighbor_indices =
[
- 12, 13, 29, 31,
- 38, 45, 46,
+ 12, 31, 38, 45,
+ 46,
]
neighbor_distances =
[
- 122.681633, 444.017639, 646.891418, 600.468994,
- 185.735672, 652.46521, 791.010681,
+ 122.681633, 600.468994, 185.735672, 652.46521,
+ 791.010681,
]
},
{
@@ -465,7 +449,7 @@
{
index = 47
position = [ 1210.917114, 324.067566, 192.03125 ]
- neighbor_indices = [ 43, 55 ]
+ neighbor_indices = [ 43, 52 ]
neighbor_distances = [ 353.575897, 217.847565 ]
},
{
@@ -477,88 +461,36 @@
{
index = 49
position = [ 1871.0625, -209.842407, 324.03125 ]
- neighbor_indices = [ 48, 50, 53 ]
- neighbor_distances = [ 100.826866, 129.134552, 704.939209 ]
+ neighbor_indices = [ 48, 50, 98 ]
+ neighbor_distances = [ 100.826866, 129.134552, 467.371552 ]
},
{
index = 50
position = [ 1999.14624, -193.895996, 320.03125 ]
neighbor_indices =
[
- 49, 51, 52, 53,
- 54, 59, 63, 66,
+ 49, 51, 56, 60,
+ 63, 98,
]
neighbor_distances =
[
- 129.134552, 519.867676, 883.385376, 583.126343,
- 322.097015, 292.486237, 763.370911, 1364.750854,
+ 129.134552, 519.867676, 292.486237, 763.370911,
+ 1364.750854, 347.626465,
]
},
{
index = 51
position = [ 2450.516846, -392.543091, 155.512817 ]
- neighbor_indices =
- [
- 50, 53, 54, 59,
- 60,
- ]
- neighbor_distances =
- [
- 519.867676, 495.143005, 386.085785, 654.620239,
- 921.596863,
- ]
+ neighbor_indices = [ 50, 56, 57, 98 ]
+ neighbor_distances = [ 519.867676, 654.620239, 921.596863, 410.778381 ]
},
{
index = 52
- position = [ 2539.721924, 503.633636, 280.03125 ]
- neighbor_indices =
- [
- 50, 53, 54, 60,
- 61, 62, 63, 64,
- ]
- neighbor_distances =
- [
- 883.385376, 421.748413, 642.15094, 687.738708,
- 693.082886, 687.18512, 510.858826, 279.666138,
- ]
- },
- {
- index = 53
- position = [ 2510.843506, 82.875084, 280.03125 ]
- neighbor_indices =
- [
- 49, 50, 51, 52,
- 57, 58, 59, 62,
- 63, 64, 65, 66,
- ]
- neighbor_distances =
- [
- 704.939209, 583.126343, 495.143005, 421.748413,
- 1106.987305, 1058.822754, 532.339111, 848.866516,
- 677.713684, 494.555908, 837.42511, 1066.483887,
- ]
- },
- {
- index = 54
- position = [ 2253.296875, -61.108215, 173.329681 ]
- neighbor_indices =
- [
- 50, 51, 52, 59,
- 60, 64, 65, 66,
- ]
- neighbor_distances =
- [
- 322.097015, 386.085785, 642.15094, 296.882202,
- 541.901428, 570.581116, 953.308899, 1194.774902,
- ]
- },
- {
- index = 55
position = [ 1428.640747, 316.720642, 192.03125 ]
neighbor_indices =
[
- 47, 56, 57, 58,
- 68, 70,
+ 47, 53, 54, 55,
+ 65, 67,
]
neighbor_distances =
[
@@ -567,12 +499,12 @@
]
},
{
- index = 56
+ index = 53
position = [ 1404.627441, 503.946686, 182.916641 ]
neighbor_indices =
[
- 33, 34, 55, 57,
- 58, 68, 70,
+ 33, 34, 52, 54,
+ 55, 65, 67,
]
neighbor_distances =
[
@@ -581,138 +513,112 @@
]
},
{
- index = 57
+ index = 54
position = [ 1416.319702, -59.89209, 196.03125 ]
neighbor_indices =
[
- 53, 55, 56, 58,
- 59, 68, 70,
+ 52, 53, 55, 56,
+ 65, 67, 98,
]
neighbor_distances =
[
- 1106.987305, 376.83548, 564.112427, 146.355545,
- 584.221619, 1172.09668, 839.099609,
+ 376.83548, 564.112427, 146.355545, 584.221619,
+ 1172.09668, 839.099609, 876.825256,
]
},
{
- index = 58
+ index = 55
position = [ 1455.359375, 81.160568, 196.03125 ]
neighbor_indices =
[
- 53, 55, 56, 57,
- 59, 68, 70,
+ 52, 53, 54, 56,
+ 65, 67, 98,
]
neighbor_distances =
[
- 1058.822754, 237.104263, 426.020935, 146.355545,
- 531.226562, 1030.251221, 705.117493,
+ 237.104263, 426.020935, 146.355545, 531.226562,
+ 1030.251221, 705.117493, 843.58136,
]
},
{
- index = 59
+ index = 56
position = [ 1986.384033, 67.801132, 190.031525 ]
neighbor_indices =
[
- 50, 51, 53, 54,
- 57, 58, 60, 61,
+ 50, 51, 54, 55,
+ 57, 58, 98,
]
neighbor_distances =
[
- 292.486237, 654.620239, 532.339111, 296.882202,
- 584.221619, 531.226562, 282.3396, 424.884644,
+ 292.486237, 654.620239, 584.221619, 531.226562,
+ 282.3396, 424.884644, 322.127777,
]
},
{
- index = 60
+ index = 57
position = [ 1877.60437, 325.982605, 225.031219 ]
- neighbor_indices =
- [
- 51, 52, 54, 59,
- 61,
- ]
- neighbor_distances =
- [
- 921.596863, 687.738708, 541.901428, 282.3396,
- 145.416321,
- ]
+ neighbor_indices = [ 51, 56, 58, 98 ]
+ neighbor_distances = [ 921.596863, 282.3396, 145.416321, 541.68158 ]
},
{
- index = 61
+ index = 58
position = [ 1849.803467, 468.711761, 223.845337 ]
- neighbor_indices =
- [
- 52, 59, 60, 63,
- 64,
- ]
- neighbor_distances =
- [
- 693.082886, 424.884644, 145.416321, 207.943497,
- 423.438141,
- ]
+ neighbor_indices = [ 56, 57, 60, 61 ]
+ neighbor_distances = [ 424.884644, 145.416321, 207.943497, 423.438141 ]
},
{
- index = 62
+ index = 59
position = [ 1867.260376, 633.540039, 223.966995 ]
- neighbor_indices = [ 52, 53, 63, 64 ]
- neighbor_distances = [ 687.18512, 848.866516, 182.485901, 423.068024 ]
+ neighbor_indices = [ 60, 61 ]
+ neighbor_distances = [ 182.485901, 423.068024 ]
},
{
- index = 63
+ index = 60
position = [ 2035.370972, 562.547607, 224.03125 ]
- neighbor_indices =
- [
- 50, 52, 53, 61,
- 62, 64,
- ]
- neighbor_distances =
- [
- 763.370911, 510.858826, 677.713684, 207.943497,
- 182.485901, 242.536301,
- ]
+ neighbor_indices = [ 50, 58, 59, 61 ]
+ neighbor_distances = [ 763.370911, 207.943497, 182.485901, 242.536301 ]
},
{
- index = 64
+ index = 61
position = [ 2270.868164, 508.421173, 203.168411 ]
neighbor_indices =
[
- 52, 53, 54, 61,
- 62, 63, 65, 66,
+ 58, 59, 60, 62,
+ 63, 98,
]
neighbor_distances =
[
- 279.666138, 494.555908, 570.581116, 423.438141,
- 423.068024, 242.536301, 382.968323, 624.471008,
+ 423.438141, 423.068024, 242.536301, 382.968323,
+ 624.471008, 533.471924,
]
},
{
- index = 65
+ index = 62
position = [ 2298.17334, 890.231323, 215.007751 ]
- neighbor_indices = [ 53, 54, 64, 66 ]
- neighbor_distances = [ 837.42511, 953.308899, 382.968323, 241.64003 ]
+ neighbor_indices = [ 61, 63, 98 ]
+ neighbor_distances = [ 382.968323, 241.64003, 913.990601 ]
},
{
- index = 66
+ index = 63
position = [ 2316.81958, 1130.495605, 232.764313 ]
neighbor_indices =
[
- 50, 53, 54, 64,
- 65, 67, 68, 69,
- 73,
+ 50, 61, 62, 64,
+ 65, 66, 70, 98,
]
neighbor_distances =
[
- 1364.750854, 1066.483887, 1194.774902, 624.471008,
- 241.64003, 491.781677, 855.768188, 962.416809,
- 266.825867,
+ 1364.750854, 624.471008, 241.64003, 491.781677,
+ 855.768188, 962.416809, 266.825867, 1154.195068,
]
},
{
- index = 67
+ index = 64
position = [ 1825.131104, 1131.1875, 223.21579 ]
neighbor_indices =
[
- 66, 68, 69, 71,
- 72, 73,
+ 63, 65, 66, 68,
+ 69, 70,
]
neighbor_distances =
[
@@ -721,12 +627,12 @@
]
},
{
- index = 68
+ index = 65
position = [ 1461.299316, 1110.950928, 226.264328 ]
neighbor_indices =
[
- 55, 56, 57, 58,
- 66, 67, 69, 73,
+ 52, 53, 54, 55,
+ 63, 64, 66, 70,
]
neighbor_distances =
[
@@ -735,36 +641,36 @@
]
},
{
- index = 69
+ index = 66
position = [ 1357.364746, 1204.940308, 245.03125 ]
- neighbor_indices = [ 66, 67, 68, 73 ]
+ neighbor_indices = [ 63, 64, 65, 70 ]
neighbor_distances = [ 962.416809, 474.047211, 141.381027, 1229.175171 ]
},
{
- index = 70
+ index = 67
position = [ 1326.353638, 774.34198, 202.942108 ]
- neighbor_indices = [ 55, 56, 57, 58 ]
+ neighbor_indices = [ 52, 53, 54, 55 ]
neighbor_distances = [ 469.040497, 282.20813, 839.099609, 705.117493 ]
},
{
- index = 71
+ index = 68
position = [ 1814.21936, 1418.572876, 224.03125 ]
- neighbor_indices = [ 67, 72 ]
+ neighbor_indices = [ 64, 69 ]
neighbor_distances = [ 287.593597, 196.964035 ]
},
{
- index = 72
+ index = 69
position = [ 1815.792236, 1615.53064, 224.03125 ]
- neighbor_indices = [ 67, 71, 76, 77 ]
+ neighbor_indices = [ 64, 68, 73, 74 ]
neighbor_distances = [ 484.433868, 196.964035, 546.268677, 302.950684 ]
},
{
- index = 73
+ index = 70
position = [ 2582.730957, 1110.871948, 222.659943 ]
neighbor_indices =
[
- 66, 67, 68, 69,
- 74,
+ 63, 64, 65, 66,
+ 71,
]
neighbor_distances =
[
@@ -773,24 +679,24 @@
]
},
{
- index = 74
+ index = 71
position = [ 2547.617676, 1431.656128, 222.814148 ]
- neighbor_indices = [ 73, 75 ]
+ neighbor_indices = [ 70, 72 ]
neighbor_distances = [ 322.700256, 219.384888 ]
},
{
- index = 75
+ index = 72
position = [ 2328.59668, 1419.039307, 223.408051 ]
- neighbor_indices = [ 74, 76, 78 ]
+ neighbor_indices = [ 71, 73, 75 ]
neighbor_distances = [ 219.384888, 312.343964, 833.161194 ]
},
{
- index = 76
+ index = 73
position = [ 2349.783936, 1730.655151, 221.083496 ]
neighbor_indices =
[
- 72, 75, 77, 78,
- 79,
+ 69, 72, 74, 75,
+ 76,
]
neighbor_distances =
[
@@ -799,24 +705,24 @@
]
},
{
- index = 77
+ index = 74
position = [ 1650.452393, 1869.384644, 224.03125 ]
- neighbor_indices = [ 72, 76, 80, 81 ]
+ neighbor_indices = [ 69, 73, 77, 78 ]
neighbor_distances = [ 302.950684, 712.965027, 683.049316, 957.520996 ]
},
{
- index = 78
+ index = 75
position = [ 2378.969727, 2250.224609, 196.001816 ]
- neighbor_indices = [ 75, 76, 79, 80 ]
+ neighbor_indices = [ 72, 73, 76, 77 ]
neighbor_distances = [ 833.161194, 520.992615, 606.499817, 796.837952 ]
},
{
- index = 79
+ index = 76
position = [ 2095.689453, 2786.443604, 188.031845 ]
neighbor_indices =
[
- 76, 78, 80, 81,
- 82, 93, 94,
+ 73, 75, 77, 78,
+ 79, 90, 91,
]
neighbor_distances =
[
@@ -825,18 +731,18 @@
]
},
{
- index = 80
+ index = 77
position = [ 1642.176025, 2552.383789, 224.03125 ]
- neighbor_indices = [ 77, 78, 79, 81 ]
+ neighbor_indices = [ 74, 75, 76, 78 ]
neighbor_distances = [ 683.049316, 796.837952, 511.619354, 276.405975 ]
},
{
- index = 81
+ index = 78
position = [ 1624.819336, 2825.885254, 188.03186 ]
neighbor_indices =
[
- 77, 79, 80, 82,
- 91, 92, 93, 94,
+ 74, 76, 77, 79,
+ 88, 89, 90, 91,
]
neighbor_distances =
[
@@ -845,12 +751,12 @@
]
},
{
- index = 82
+ index = 79
position = [ 1287.398193, 2769.861084, 188.031647 ]
neighbor_indices =
[
- 79, 81, 83, 91,
- 92, 93, 94,
+ 76, 78, 80, 88,
+ 89, 90, 91,
]
neighbor_distances =
[
@@ -859,42 +765,42 @@
]
},
{
- index = 83
+ index = 80
position = [ 1205.759644, 3162.39502, 192.03125 ]
- neighbor_indices = [ 82, 84, 85 ]
+ neighbor_indices = [ 79, 81, 82 ]
neighbor_distances = [ 400.953552, 501.320496, 273.816895 ]
},
{
- index = 84
+ index = 81
position = [ 706.178711, 3135.615967, 224.03125 ]
- neighbor_indices = [ 83, 85 ]
+ neighbor_indices = [ 80, 82 ]
neighbor_distances = [ 501.320496, 293.109192 ]
},
{
- index = 85
+ index = 82
position = [ 958.830322, 3280.723389, 192.03125 ]
- neighbor_indices = [ 83, 84, 86 ]
+ neighbor_indices = [ 80, 81, 83 ]
neighbor_distances = [ 273.816895, 293.109192, 175.318375 ]
},
{
- index = 86
+ index = 83
position = [ 888.56427, 3441.344727, 192.03125 ]
- neighbor_indices = [ 85, 87 ]
+ neighbor_indices = [ 82, 84 ]
neighbor_distances = [ 175.318375, 406.769318 ]
},
{
- index = 87
+ index = 84
position = [ 483.980988, 3414.273682, 224.292755 ]
- neighbor_indices = [ 86, 88, 91 ]
+ neighbor_indices = [ 83, 85, 88 ]
neighbor_distances = [ 406.769318, 371.776611, 900.999268 ]
},
{
- index = 88
+ index = 85
position = [ 421.603851, 3047.767334, 224.470932 ]
neighbor_indices =
[
- 87, 89, 90, 91,
- 93, 94,
+ 84, 86, 87, 88,
+ 90, 91,
]
neighbor_distances =
[
@@ -903,24 +809,24 @@
]
},
{
- index = 89
+ index = 86
position = [ 54.096111, 3020.855713, 224.84166 ]
- neighbor_indices = [ 88, 90, 92, 94 ]
+ neighbor_indices = [ 85, 87, 89, 91 ]
neighbor_distances = [ 368.491974, 366.352814, 521.951721, 778.602539 ]
},
{
- index = 90
+ index = 87
position = [ 28.755611, 2655.380371, 225.03125 ]
- neighbor_indices = [ 88, 89, 92 ]
+ neighbor_indices = [ 85, 86, 89 ]
neighbor_distances = [ 555.245483, 366.352814, 157.659409 ]
},
{
- index = 91
+ index = 88
position = [ 232.309586, 2549.137695, 225.271027 ]
neighbor_indices =
[
- 81, 82, 87, 88,
- 92, 93, 94,
+ 78, 79, 84, 85,
+ 89, 90, 91,
]
neighbor_distances =
[
@@ -929,12 +835,12 @@
]
},
{
- index = 92
+ index = 89
position = [ 48.293636, 2498.936279, 225.03125 ]
neighbor_indices =
[
- 81, 82, 89, 90,
- 91, 93, 94,
+ 78, 79, 86, 87,
+ 88, 90, 91,
]
neighbor_distances =
[
@@ -943,12 +849,12 @@
]
},
{
- index = 93
+ index = 90
position = [ 523.625244, 2684.044678, 225.531235 ]
neighbor_indices =
[
- 79, 81, 82, 88,
- 91, 92, 94,
+ 76, 78, 79, 85,
+ 88, 89, 91,
]
neighbor_distances =
[
@@ -957,13 +863,13 @@
]
},
{
- index = 94
+ index = 91
position = [ 764.373718, 2702.874512, 200.031036 ]
neighbor_indices =
[
- 79, 81, 82, 88,
- 89, 91, 92, 93,
- 95,
+ 76, 78, 79, 85,
+ 86, 88, 89, 90,
+ 92,
]
neighbor_distances =
[
@@ -973,40 +879,56 @@
]
},
{
- index = 95
+ index = 92
position = [ 781.539978, 2046.294922, 200.031281 ]
- neighbor_indices = [ 94, 96, 97, 98 ]
+ neighbor_indices = [ 91, 93, 94, 95 ]
neighbor_distances = [ 656.803955, 322.249695, 292.622131, 476.253235 ]
},
{
- index = 96
+ index = 93
position = [ 465.112518, 2107.13623, 204.139343 ]
- neighbor_indices = [ 95, 97 ]
+ neighbor_indices = [ 92, 94 ]
neighbor_distances = [ 322.249695, 179.225845 ]
},
{
- index = 97
+ index = 94
position = [ 511.315369, 1934.016846, 200.03125 ]
- neighbor_indices = [ 95, 96, 98 ]
+ neighbor_indices = [ 92, 93, 95 ]
neighbor_distances = [ 292.622131, 179.225845, 187.609421 ]
},
{
- index = 98
+ index = 95
position = [ 325.283081, 1909.741699, 200.031219 ]
- neighbor_indices = [ 95, 97, 99, 100 ]
+ neighbor_indices = [ 92, 94, 96, 97 ]
neighbor_distances = [ 476.253235, 187.609421, 553.370789, 1086.194458 ]
},
{
- index = 99
+ index = 96
position = [ 147.783493, 1386.962646, 162.412354 ]
- neighbor_indices = [ 34, 98, 100 ]
+ neighbor_indices = [ 34, 95, 97 ]
neighbor_distances = [ 816.777527, 553.370789, 539.584778 ]
},
{
- index = 100
+ index = 97
position = [ 90.173409, 850.7771, 144.03125 ]
- neighbor_indices = [ 26, 34, 98, 99 ]
+ neighbor_indices = [ 26, 34, 95, 96 ]
neighbor_distances = [ 518.716675, 278.29364, 1086.194458, 539.584778 ]
},
+ {
+ index = 98
+ position = [ 2291.287842, -23.395325, 239.8629 ]
+ neighbor_indices =
+ [
+ 49, 50, 51, 54,
+ 55, 56, 57, 61,
+ 62, 63,
+ ]
+ neighbor_distances =
+ [
+ 467.371552, 347.626465, 410.778381, 876.825256,
+ 843.58136, 322.127777, 541.68158, 533.471924,
+ 913.990601, 1154.195068,
+ ]
+ },
]
}
\ No newline at end of file
game/csgo/pak01_dir/panorama/layout/itemtile.xml
modified • +1 / -1 • changes: 2
Show patch
@@ -22,7 +22,7 @@
<Label id="JsCanRentItem" html="true" class="item-tile__rental-expiration stratum-regular-italic can-rent" text="#item-rental-time-remaining" />
<Panel class="item-tile__rarity" id="JsRarity" />
<Panel class="item-tile__top-left-down">
- <Label class="item-tile__recent hidden" id="JsRecent" text="#inv_session_prop_recent" />
+ <Label class="item-tile__recent hidden" html="true" id="JsRecent" text="#inv_session_prop_recent" />
<Image id="JsOriginalOwner" class="item-tile__original-owner hidden" texturewidth="24" textureheight="24" src="s2r://panorama/images/icons/icon_original_owner.vsvg" />
</Panel>
<Panel class="item-tile__equipped">
game/csgo/pak01_dir/panorama/layout/popups/popup_inspect_async-bar.xml
modified • +3 / -2 • changes: 5
Show patch
@@ -10,7 +10,7 @@
<Panel class="popup-capability__button-row" useglobalcontext="true">
<Panel class="left-right-flow horizontal-align-right">
<ItemImage id="AsyncItemWorkDescImage" class="popup-capability__purchase__image" scaling="stretch-to-fit-x-preserve-aspect" />
- <Label id="AsyncItemWorkDesc" html="true" class="popup-capability__purchase__text stratum-font" text="" />
+ <Label id="AsyncItemWorkDesc" html="true" hittest="false" class="popup-capability__purchase__text stratum-font" text="" />
<Panel id="NameableSpinner" class="Spinner vertical-center horizontal-center hidden" />
<Panel class="spacer" />
<TextButton id="AsyncItemWorkAcceptNegativeHold" class="PopupButtonTimer Negative AsyncItemWorkAcceptNegativeHidden" html="true" text="{s:action-label}">
@@ -23,7 +23,8 @@
<TextButton id="AsyncItemWorkAcceptConfirm" html="true" class="PopupButton" text="#SFUI_Accept" />
<TextButton id="AsyncItemWorkCancelBtn" html="true" class="PopupButton" text="#GameUI_Close" />
</Panel>
- <Panel class="left-right-flow horizontal-align-left" defaultfocus="">
+ <Panel class="left-right-flow horizontal-align-left full-height" hittest="false">
+ <DropDown class="PopupButton vertical-center horizontal-align-left" id="AsyncOfferLimitDropdown" menuclass="DropDownMenu hidden" onmouseover="UiToolkitAPI.ShowTextTooltip( &apos;AsyncOfferLimitDropdown&apos;, &apos;#terminal_offer_limit_tooltip&apos; )" onmouseout="UiToolkitAPI.HideTextTooltip();" style="tooltip-position: right;" />
<Panel class="left-right-flow vertical-center hidden">
<RadioButton id="InspectWeaponBtn" group="popup-inspect-view" class="IconButton" onmouseover="UiToolkitAPI.ShowTextTooltip( &apos;InspectWeaponBtn&apos;, &apos;#tooltip_inspect_weapon_model&apos; );" onmouseout="UiToolkitAPI.HideTextTooltip();">
<Image class="" textureheight="36" texturewidth="36" src="s2r://panorama/images/icons/equipment/p250.vsvg" />
game/csgo/pak01_dir/panorama/layout/popups/popup_offers_laptop_interface.xml
modified • +33 / -9 • changes: 42
Show patch
@@ -37,6 +37,16 @@
<Panel id="id-message" />
</Panel>
</snippet>
+ <snippet name="interaction-offer-limit-message">
+ <Panel class="chat-message chat-message-interaction">
+ <Panel id="id-interaction-list" class="interaction-card">
+ <Label class="interaction-card-desc stratum-regular" text="#laptop_max_offer_tooltip" />
+ </Panel>
+ </Panel>
+ </snippet>
+ <snippet name="radiobutton-limit">
+ <RadioButton class="message-interaction__text-button" text="Up to $50" />
+ </snippet>
<snippet name="system-message">
<Panel class="chat-message chat-message-system">
<Label id="id-chat-message-label" class="chat-message__body stratum-regular" text="" />
@@ -133,23 +143,27 @@
</Panel>
<Panel class="chat-messages-container">
<Panel id="id-chat-messages-bg" class="chat-messages-bg" />
- <Image class="chat-messages-bg-icon" textureheight="480" texturewidth="-1" src="s2r://panorama/images/icons/ui/arms_deal_icon.vsvg" />
<Panel id="id-chat-messages" class="chat-messages" />
</Panel>
- <Panel class="chat-user-responses">
+ <Panel id="id-user-messages-parent" class="chat-user-responses">
<Panel id="id-user-messages-container" class="chat-user-responses__container">
- <Label html="true" class="chat-user-responses__title stratum-regular" text="{s:user-response-title}" />
+ <Panel class="full-width bottom-margin left-margin-6 right-margin-6">
+ <Panel class="left-right-flow horizontal-align-left">
+ <Label html="true" class="chat-user-responses__title stratum-regular" text="{s:user-response-title}" />
+ <Image id="id-price-tooltip" class="user-response-price-tooltip" textureheight="18" texturewidth="-1" src="s2r://panorama/images/icons/ui/info.vsvg" />
+ </Panel>
+ <TextButton id="id-offer-limit-setting" html="true" class="chat-user-limit-offer-setting stratum-regular" text="#offer_limit_setting_interface" />
+ </Panel>
<Panel class="full-width">
<Panel class="left-right-flow">
- <TextButton id="id-user-message-yes" class="user-response-btn" html="true" text="#user_btn_accept">
+ <TextButton id="id-user-message-yes" class="user-response-btn positive" html="true" text="#user_btn_accept">
<Panel id="id-response-btn-timer" class="user-response-btn__timer" />
</TextButton>
- <Image id="id-price-tooltip" class="user-response-price-tooltip" textureheight="20" texturewidth="-1" src="s2r://panorama/images/icons/ui/info.vsvg" />
</Panel>
- <TextButton id="id-user-message-no" class="user-response-btn" text="#user_btn_next">
+ <TextButton id="id-user-message-no" class="user-response-btn yellow" text="#user_btn_next">
<Panel id="id-response-btn-timer" class="user-response-btn__timer" />
</TextButton>
- <TextButton id="id-user-message-end" force-no-composition-layer="true" class="user-response-btn" text="#user_btn_end">
+ <TextButton id="id-user-message-end" force-no-composition-layer="true" class="user-response-btn negative" text="#user_btn_end">
<Panel id="id-response-btn-timer" class="user-response-btn__timer" />
</TextButton>
</Panel>
@@ -227,15 +241,25 @@
</Panel>
</Panel>
</Panel>
- <Panel id="id-popup-lootlist" class="popup-lootlist-container">
- <Button id="id-close-popup-lootlist" class="full-width full-height" />
+ <Panel id="id-popup-in-screen" class="popup-laptop-container">
+ <Button id="id-close-popup-in-screen" class="full-width full-height" />
<Panel hittest="true" class="popup-lootlist" onactivate="">
<Panel class="window__title-bar">
<Label class="window__title-bar__title stratum-regular" text="#popup_lootlist_title" />
</Panel>
<Label class="popup-lootlist__desc stratum-regular" text="#popup_lootlist_desc" />
<Panel id="id-offer-xp-lootlist" class="popup-lootlist__list" />
</Panel>
+ <Panel hittest="true" class="popup-offers-settings" onactivate="">
+ <Label class="popup-lootlist__desc stratum-regular" text="#popup_offer_limit_desc" />
+ <Panel class="popup-lootlist__list__section">
+ <Image texturewidth="-1" textureheight="8" class="window__weapon-info__bracket top-right" src="s2r://panorama/images/hud/bracket.vsvg" />
+ <Image texturewidth="-1" textureheight="8" class="window__weapon-info__bracket bottom-right" src="s2r://panorama/images/hud/bracket.vsvg" />
+ <Image texturewidth="-1" textureheight="8" class="window__weapon-info__bracket top-left" src="s2r://panorama/images/hud/bracket.vsvg" />
+ <Image texturewidth="-1" textureheight="8" class="window__weapon-info__bracket bottom-left" src="s2r://panorama/images/hud/bracket.vsvg" />
+ <Panel id="id-offer-settings" class="top-bottom-flow padding-8" />
+ </Panel>
+ </Panel>
</Panel>
<Image class="laptop-broken-screen" hittest="false" src="s2r://panorama/images/backgrounds/broken_laptop_screen_psd.vtex" onactivate="" />
<Image class="laptop-cracked-screen" hittest="false" src="s2r://panorama/images/backgrounds/cracked_laptop_screen_psd.vtex" />
game/csgo/pak01_dir/panorama/layout/tooltips/tooltip_inventory_item.xml
modified • +2 / -2 • changes: 4
Show patch
@@ -14,7 +14,7 @@
<Panel class="NameCollection">
<Label class="name-label" text="{s:name}" />
<Label id="jsCustomName" class="custom-name-label" text="{s:custom-name}" />
- <Label class="collection-label" text="{s:collection}" />
+ <Label class="collection-label collection-text-style" text="{s:collection}" />
</Panel>
</Panel>
<Panel class="separator-top" />
@@ -37,7 +37,7 @@
<Panel id="JsOriginalOwnerTooltipSeperator" class="separator-bottom" />
<Panel id="JsOriginalOwnerTooltip" class="original-owner-section">
<Image texturewidth="32" textureheight="-1" src="s2r://panorama/images/icons/icon_original_owner.vsvg" />
- <Label class="collection-label" text="#Attrib_PurchaserAccountID" />
+ <Label class="collection-text-style" text="#Attrib_PurchaserAccountID" />
</Panel>
<Panel class="separator-bottom" />
<Label class="desc-text" html="true" htmlescapednewlines="true" text="{s:description}" />
game/csgo/pak01_dir/panorama/scripts/common/hold_button.js
modified • +3 / -1 • changes: 4
Show patch
@@ -31,7 +31,9 @@ var HoldButton;
return;
if ('tooltip' in settings && settings.tooltip !== '') {
settings.btn.SetPanelEvent('onmouseover', () => {
- UiToolkitAPI.ShowTextTooltipStyled(settings.btn.id, settings.tooltip, ('tooltipStyle' in settings) ? settings.tooltipStyle : '');
+ if (settings.btn.enabled) {
+ UiToolkitAPI.ShowTextTooltipStyled(settings.btn.id, settings.tooltip, ('tooltipStyle' in settings) ? settings.tooltipStyle : '');
+ }
});
settings.btn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });
}
game/csgo/pak01_dir/panorama/scripts/common/item_context_entries.js
modified • +17 / -1 • changes: 18
Show patch
@@ -930,7 +930,23 @@ var ItemContextEntries;
OnSelected: (id) => {
$.DispatchEvent('CSGOPlaySoundEffect', 'inventory_inspect_sellOnMarket', 'MOUSE');
$.DispatchEvent('ContextMenuEvent', '');
- InventoryAPI.SellItem(id);
+ InventoryAPI.MarketListingForItem(id, 'create');
+ }
+ },
+ {
+ name: 'marketlisting',
+ style: (id) => 'TopSeparator',
+ bActionIsRentalAware: true,
+ AvailableForItem: (id) => {
+ if (MyPersonaAPI.GetLauncherType() === 'perfectworld')
+ return false;
+ let unProtectedEscrowValue = InventoryAPI.GetItemAttributeValue(id, '{uint32}trade protected escrow date');
+ return ((unProtectedEscrowValue !== undefined) && (unProtectedEscrowValue == 0));
+ },
+ OnSelected: (id) => {
+ $.DispatchEvent('CSGOPlaySoundEffect', 'inventory_inspect_sellOnMarket', 'MOUSE');
+ $.DispatchEvent('ContextMenuEvent', '');
+ InventoryAPI.MarketListingForItem(id, 'view');
}
},
{
game/csgo/pak01_dir/panorama/scripts/hud/huddemocontroller.js
modified • +4 / -6 • changes: 10
Show patch
@@ -123,17 +123,15 @@ var HudDemoController;
sFileName = sFileName.substring(nSlashIndex + 1);
cp.SetDialogVariable("total_time", TicksToTimeText(state.nTotalTicks, state.nSecondsPerTick, false));
if (state?.bIsPlayingBroadcast) {
+ hud.SetHasClass("DemoControllerHidden", false);
hud.SetHasClass("DemoControllerMinimal", false);
hud.SetHasClass("DemoControllerFull", false);
}
else {
let nUIMode = Number(GameInterfaceAPI.GetSettingString("demo_ui_mode"));
- if (nUIMode == 1) {
- hud.SetHasClass("DemoControllerMinimal", true);
- }
- else if (nUIMode == 2) {
- hud.SetHasClass("DemoControllerFull", true);
- }
+ hud.SetHasClass("DemoControllerHidden", nUIMode == 0);
+ hud.SetHasClass("DemoControllerMinimal", nUIMode == 1);
+ hud.SetHasClass("DemoControllerFull", nUIMode == 2);
}
OnHighlightsModeChanged(state.bIsPlayingHighlights);
bHighlightsMode = state.bIsPlayingHighlights;
game/csgo/pak01_dir/panorama/scripts/itemtile.js
modified • +7 / -1 • changes: 8
Show patch
@@ -144,9 +144,15 @@ var ItemTile;
}
;
function _SetRecentLabel(id) {
+ let elLabel = $.GetContextPanel().FindChildInLayoutFile('JsRecent');
+ let unProtectedEscrowValue = InventoryAPI.GetItemAttributeValue(id, '{uint32}trade protected escrow date');
+ if ((unProtectedEscrowValue !== undefined) && (unProtectedEscrowValue == 0)) {
+ elLabel.RemoveClass('hidden');
+ elLabel.text = $.Localize('#inv_session_prop_marketlisting');
+ return;
+ }
let isRecentValue = InventoryAPI.GetItemSessionPropertyValue(id, 'recent');
let isUpdatedValue = InventoryAPI.GetItemSessionPropertyValue(id, 'updated');
- let elLabel = $.GetContextPanel().FindChildInLayoutFile('JsRecent');
if (isUpdatedValue === '1' || isRecentValue === '1') {
let locString = 'recent';
if (isRecentValue === '1') {
game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_async-bar.js
modified • +28 / -1 • changes: 29
Show patch
@@ -268,12 +268,18 @@ var InspectAsyncActionBar;
elDescImage.visible = false;
return;
}
+ const terminalValue = InventoryAPI.GetItemAttributeValue(itemId, '{uint32}volatile container');
+ const isTerminal = (terminalValue == '' || terminalValue == undefined || terminalValue == 0) ? false : true;
if (itemDefName && itemDefName.indexOf("spray") != -1)
sOkButtonText = sOkButtonText + "_graffiti";
else if (itemDefName && itemDefName.indexOf("tournament_pass_") != -1)
sOkButtonText = sOkButtonText + "_fantoken";
- else if (InventoryAPI.GetItemAttributeValue(itemId, '{uint32}volatile container'))
+ else if (terminalValue)
sOkButtonText = sOkButtonText + "_terminal";
+ const elDropdown = elPanel.FindChildInLayoutFile('AsyncOfferLimitDropdown');
+ elDropdown.SetHasClass('hidden', !isTerminal);
+ if (isTerminal)
+ _SetUpOfferLimitDropdown(elDropdown);
}
if (worktype === 'can_sticker') {
const listStickers = ItemInfo.GetitemStickerList(itemId);
@@ -297,6 +303,27 @@ var InspectAsyncActionBar;
elOK.AddClass(btnStyle);
_SetPanelEventOnAccept();
}
+ function _SetUpOfferLimitDropdown(elDropdown) {
+ const oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());
+ for (let i = 0; i < oLimits.choices.length; i++) {
+ if (!elDropdown.HasOption('id-dropdown-limit-' + oLimits.choices[i].limit)) {
+ let elOption = $.CreatePanel('Label', elDropdown, 'id-dropdown-limit-' + oLimits.choices[i].limit, {
+ class: 'DropDownMenu'
+ });
+ elOption.SetDialogVariable('limit', $.Localize(oLimits.choices[i].label));
+ elOption.text = $.Localize('#offer_limit_setting', elOption);
+ elOption.SetAttributeUInt32('limit', oLimits.choices[i].limit);
+ elDropdown.AddOption(elOption);
+ }
+ }
+ elDropdown.SetPanelEvent('oninputsubmit', () => _OnOfferLimitDropdownSubmit(elDropdown));
+ elDropdown.SetSelected('id-dropdown-limit-' + oLimits.limit);
+ }
+ function _OnOfferLimitDropdownSubmit(elDropdown) {
+ const elSelected = elDropdown.GetSelected();
+ const nLimit = elSelected.GetAttributeUInt32('limit', 0);
+ InventoryAPI.SetVolatileLimits(nLimit);
+ }
function _SetUpDescription(elPanel) {
const elDescLabel = elPanel.FindChildInLayoutFile('AsyncItemWorkDesc');
const elDescImage = elPanel.FindChildInLayoutFile('AsyncItemWorkDescImage');
game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_header.js
modified • +4 / -1 • changes: 5
Show patch
@@ -42,7 +42,10 @@ var InspectHeader;
elLabel.SetHasClass('hide', !bHasExpirationDate);
}
function _SetOriginalOwner(elPanel, itemId) {
- elPanel.FindChildInLayoutFile('InspectOriginalOwner').visible = (InventoryAPI.GetItemAttributeValue(itemId, '{uint32}purchaser account id') != undefined);
+ const elOriginalOwner = elPanel.FindChildInLayoutFile('InspectOriginalOwner');
+ elOriginalOwner.visible = (InventoryAPI.GetItemAttributeValue(itemId, '{uint32}purchaser account id') != undefined);
+ const elImage = elPanel.FindChildInLayoutFile('InspectSetImage');
+ elOriginalOwner.SetHasClass('horizontal-center', !elImage.visible);
}
function _SetRarity(elPanel, itemId) {
const rarityColor = InventoryAPI.GetItemRarityColor(itemId);
game/csgo/pak01_dir/panorama/scripts/popups/popup_offers_laptop_interface.js
modified • +185 / -109 • changes: 294
Show patch
@@ -173,6 +173,21 @@ var CollectionOffers;
line: '#dealer_message_addition_factory_new_',
sender: 'dealer'
};
+ const dealerOfferLimitMessage = {
+ line: '#dealer_message_set_offer_limit_',
+ sender: 'dealer',
+ action: async () => {
+ await Async.Delay(.5);
+ _ShowMessageOfferLimit();
+ }
+ };
+ const dealerContainerExpired = {
+ line: '#dealer_message_timerexpired_',
+ sender: 'dealer',
+ action: () => {
+ _MakeMessage(systemDealerLeaveContainerDestroy);
+ }
+ };
const systemDealerJoin = {
line: '#system_dealer_join_chat_0',
sender: 'system',
@@ -205,13 +220,35 @@ var CollectionOffers;
Close(true);
}
};
- const systemContainerExpired = {
- line: '#dealer_message_timerexpired_',
- sender: 'dealer',
+ const systemOfferLimitSetWithBootstrapAction = {
+ line: '#system_user_updated_offer_limit_0',
+ sender: 'system',
+ action: async () => {
+ await ShowDealerOfferLimitAcknowledge(true);
+ const elWaitMessage = _ShowDealerWaitMessageDotDotDot();
+ await Async.Delay(2);
+ (await elWaitMessage).visible = false;
+ _OnSystemDealerJoinBootstrap();
+ }
+ };
+ const systemOfferLimitSet = {
+ line: '#system_user_updated_offer_limit_0',
+ sender: 'system',
action: () => {
- _MakeMessage(systemDealerLeaveContainerDestroy);
+ ShowDealerOfferLimitAcknowledge();
}
};
+ async function ShowDealerOfferLimitAcknowledge(firstTime = false) {
+ let oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());
+ if (oLimits.limit !== 0) {
+ const strLine = !firstTime ? '#dealer_message_limit_' : '#dealer_message_limit_first_time_';
+ await _MakeMessage({ line: strLine, sender: 'dealer' });
+ }
+ else {
+ const strLine = !firstTime ? '#dealer_message_limit_unlimited_' : '#dealer_message_limit_first_time_unlimited_';
+ await _MakeMessage({ line: strLine, sender: 'dealer' });
+ }
+ }
function Init(itemId, elScreen) {
m_idContainerItem = itemId;
m_defidxContainerItem = InventoryAPI.GetItemDefinitionIndex(m_idContainerItem);
@@ -372,6 +409,7 @@ var CollectionOffers;
}
async function _OnSystemDealerJoinBootstrap() {
let numOffers = InventoryAPI.GetItemAttributeValue(m_idContainerItem, '{uint32}quest points remaining');
+ let oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());
if (numOffers == undefined) {
m_numOfferCounter = 0;
await _MakeMessage(dealerIntroMessage);
@@ -380,6 +418,11 @@ var CollectionOffers;
m_numOfferCounter = numOffers;
await _MakeMessage(dealerReturningToContractMessage);
}
+ const setting = oLimits.choices.find(item => item.limit === oLimits.limit);
+ m_elScreen.SetDialogVariable('limit', GetLimitString(setting?.limit, setting?.label));
+ m_elScreen.FindChildInLayoutFile('id-offer-limit-setting').SetPanelEvent('onactivate', () => {
+ ShowOfferLimitPopup();
+ });
m_elScreen.FindChildInLayoutFile('id-laptop-connected-icon').SetHasClass('connected', true);
m_elScreen.FindChildInLayoutFile('id-laptop-signal-icon').SetHasClass('connected-' + m_signalBars, true);
}
@@ -435,8 +478,7 @@ var CollectionOffers;
elUserButtonContainer.SetDialogVariable('offer-count', $.Localize('#dealer_offer_' + _CurrentOfferNumber()));
elUserButtonContainer.SetDialogVariable('user-response-title', $.Localize('#user_btn_purchase_title', elUserButtonContainer));
}
- m_elYesBtn.SetDialogVariable('price', OfferItemData.price);
- _SetUpUserOfferConfirmDeclineBtns(elWaitMessage.FindChildInLayoutFile('id-offer-' + OfferItemData.itemId));
+ _SetUpUserOfferConfirmDeclineBtns(elWaitMessage.FindChildInLayoutFile('id-offer-' + OfferItemData.itemId), OfferItemData);
}
async function _DealerEstablishExistingOffer() {
const elWaitMessage = await _ShowDealerWaitMessageDotDotDot();
@@ -652,109 +694,74 @@ var CollectionOffers;
m_elYesBtn.enabled = bEnable;
m_elNoBtn.enabled = bEnable;
m_elEndBtn.enabled = bEnable;
+ m_elScreen.FindChildInLayoutFile('id-offer-limit-setting').enabled = bEnable;
m_elScreen.FindChildInLayoutFile('id-price-tooltip').SetHasClass('faded', !bEnable);
}
- let _m_buttonDown = false;
- let _m_buttonTimer = 0;
- let _m_buttonTimerHandle = null;
- function _SetUpUserOfferConfirmDeclineBtns(elOffer) {
- m_elEndBtn.visible = false;
- m_elYesBtn.SwitchClass('bnt-type', 'positive');
- m_elYesBtn.text = $.Localize(_RandomizeLocString('#user_btn_accept_'), m_elYesBtn);
- m_elYesBtn.SetPanelEvent('onmouseover', () => { UiToolkitAPI.ShowTextTooltipStyled(m_elYesBtn.id, '#user_btn_purchase_desc_purchase', 'tooltip-offer-actions'); });
- m_elYesBtn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });
- m_elYesBtn.SetPanelEvent('onmouseup', () => _OnMouseUp(m_elYesBtn));
- m_elYesBtn.SetPanelEvent('onmousedown', () => _OnMouseDown(m_elYesBtn, () => {
- _EnableActionButtons(false);
- _MakeMessage(dealerOpenCheckOutMessage);
- OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Purchased');
- }));
- if (_IsFinalOffer()) {
- m_elYesBtn.enabled = true;
- m_elNoBtn.enabled = false;
- m_elNoBtn.visible = false;
- m_elScreen.FindChildInLayoutFile('id-price-tooltip').SetHasClass('faded', false);
- m_elEndBtn.visible = true;
- m_elEndBtn.enabled = true;
- m_elEndBtn.SwitchClass('bnt-type', 'negative');
- m_elEndBtn.SetPanelEvent('onmouseover', () => { UiToolkitAPI.ShowTextTooltipStyled(m_elEndBtn.id, '#user_btn_purchase_desc_end', 'tooltip-offer-actions'); });
- m_elEndBtn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });
- m_elEndBtn.SetPanelEvent('onmouseup', () => _OnMouseUp(m_elEndBtn));
- m_elEndBtn.SetPanelEvent('onmousedown', () => _OnMouseDown(m_elEndBtn, () => {
- _EnableActionButtons(false);
- _DealerEndTransaction();
- }));
- return;
- }
- m_elEndBtn.visible = false;
- m_elNoBtn.text = $.Localize(_IsFinalOffer() ? '#user_btn_decline' : _RandomizeLocString('#user_btn_next_'), m_elNoBtn);
- m_elNoBtn.SwitchClass('bnt-type', 'yellow');
- m_elNoBtn.SetPanelEvent('onmouseover', () => { UiToolkitAPI.ShowTextTooltipStyled(m_elNoBtn.id, '#user_btn_purchase_desc_continue', 'tooltip-offer-actions'); });
- m_elNoBtn.SetPanelEvent('onmouseout', () => { UiToolkitAPI.HideTextTooltip(); });
- m_elNoBtn.SetPanelEvent('onmouseup', () => _OnMouseUp(m_elNoBtn));
- m_elNoBtn.SetPanelEvent('onmousedown', () => _OnMouseDown(m_elNoBtn, () => {
- _EnableActionButtons(false);
- elOffer.SetHasClass('rejected', true);
- elOffer.SetDialogVariable('offer-status', $.Localize('#dealer_offer_attachment_status-declined-price', elOffer));
- elOffer.FindChildInLayoutFile('id-offer-desc').text = $.Localize('#dealer_offer_attachment_status-declined', elOffer);
- m_elScreen.FindChildInLayoutFile('id-offer-preview-panel-container').SetHasClass('show', false);
- m_elScreen.FindChildInLayoutFile('id-weapon-wear-rating-pointer').style.transform = 'translateX(100%) translateY(3px) scaleY(-1);';
- m_elScreen.FindChildInLayoutFile('id-chat-messages-bg').SetHasClass('show', false);
- OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Discarded');
- _MakeMessage(systemUserRejectOffer);
- _MakeMessage(dealerNextOffer);
- }));
- _EnableActionButtons(true);
- }
- function _OnMouseDown(elBtn, funcAction) {
- CancelButtonTimer(elBtn);
- _m_buttonDown = true;
- _m_buttonTimer = 0;
- IncrementButtonTimer(elBtn, funcAction);
- }
- function _OnMouseUp(elBtn) {
- CancelButtonTimer(elBtn);
- _m_buttonDown = false;
- _m_buttonTimer = 0;
- elBtn.FindChild('id-response-btn-timer').visible = false;
- elBtn.FindChild('id-response-btn-timer').style.width = '0%;';
- _MakeFingerPrints(m_elScreen);
- }
- function IncrementButtonTimer(elBtn, funcAction) {
- ++_m_buttonTimer;
- if (_m_buttonTimer <= 10 && _m_buttonDown) {
- elBtn.FindChild('id-response-btn-timer').visible = true;
- elBtn.FindChild('id-response-btn-timer').style.width = (_m_buttonTimer * 10) + '%;';
- if (_m_buttonTimerHandle == null) {
- _m_buttonTimerHandle = $.Schedule(.1, () => IncrementButtonTimer(elBtn, funcAction));
- if (elBtn.id === 'id-user-message-yes') {
- OffersLaptop.LaptopSoundStartLooping('UI.Laptop.ButtonFillLoop');
- }
- else {
- OffersLaptop.LaptopSoundStartLooping('UI.Laptop.ButtonFillLoop_Deny');
+ let _m_savedOffer = null;
+ let _m_savedOfferItemData = null;
+ function _SetUpUserOfferConfirmDeclineBtns(elOffer, OfferItemData) {
+ _m_savedOffer = elOffer;
+ _m_savedOfferItemData = OfferItemData;
+ const numPaidAlready = 0;
+ let payPrice = OfferItemData.price;
+ m_elYesBtn.SetDialogVariable('price', payPrice);
+ m_elYesBtn.visible = true;
+ m_elNoBtn.visible = !_IsFinalOffer() && (numPaidAlready === 0);
+ m_elEndBtn.visible = _IsFinalOffer() && (numPaidAlready === 0);
+ m_elScreen.FindChildInLayoutFile('id-offer-limit-setting').visible = (numPaidAlready === 0);
+ m_elScreen.FindChildInLayoutFile('id-price-tooltip').visible = (numPaidAlready === 0);
+ if (m_elYesBtn.visible) {
+ const btnYesSettings = {
+ btn: m_elYesBtn,
+ tooltip: '#user_btn_purchase_desc_purchase',
+ locString: $.Localize(_RandomizeLocString('#user_btn_accept_'), m_elYesBtn),
+ tooltipStyle: 'tooltip-offer-actions',
+ loopingSound: 'UI.Laptop.ButtonFillLoop',
+ timerCompleteAction: () => {
+ _EnableActionButtons(false);
+ _MakeMessage(dealerOpenCheckOutMessage);
+ OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Purchased');
}
- }
- else {
- $.Schedule(.1, () => IncrementButtonTimer(elBtn, funcAction));
- }
- return;
+ };
+ HoldButton.SetupButton(btnYesSettings);
}
- if (_m_buttonDown) {
- funcAction();
+ if (m_elEndBtn.visible) {
+ const btnEndSettings = {
+ btn: m_elEndBtn,
+ tooltip: '#user_btn_purchase_desc_end',
+ locString: $.Localize('#user_btn_end'),
+ tooltipStyle: 'tooltip-offer-actions',
+ loopingSound: 'UI.Laptop.ButtonFillLoop',
+ timerCompleteAction: () => {
+ _EnableActionButtons(false);
+ _DealerEndTransaction();
+ }
+ };
+ HoldButton.SetupButton(btnEndSettings);
}
- _OnMouseUp(elBtn);
- }
- function CancelButtonTimer(elBtn) {
- if (_m_buttonTimerHandle !== null) {
- $.CancelScheduled(_m_buttonTimerHandle);
- if (elBtn.id === 'id-user-message-yes') {
- OffersLaptop.LaptopSoundStopLooping('UI.Laptop.ButtonFillLoop');
- }
- else {
- OffersLaptop.LaptopSoundStopLooping('UI.Laptop.ButtonFillLoop_Deny');
- }
- _m_buttonTimerHandle = null;
+ if (m_elNoBtn.visible) {
+ const btnNoSettings = {
+ btn: m_elNoBtn,
+ tooltip: '#user_btn_purchase_desc_continue',
+ locString: $.Localize(_IsFinalOffer() ? '#user_btn_decline' : _RandomizeLocString('#user_btn_next_'), m_elNoBtn),
+ tooltipStyle: 'tooltip-offer-actions',
+ loopingSound: 'UI.Laptop.ButtonFillLoop',
+ timerCompleteAction: () => {
+ _EnableActionButtons(false);
+ elOffer.SetHasClass('rejected', true);
+ elOffer.SetDialogVariable('offer-status', $.Localize('#dealer_offer_attachment_status-declined-price', elOffer));
+ elOffer.FindChildInLayoutFile('id-offer-desc').text = $.Localize('#dealer_offer_attachment_status-declined', elOffer);
+ m_elScreen.FindChildInLayoutFile('id-offer-preview-panel-container').SetHasClass('show', false);
+ m_elScreen.FindChildInLayoutFile('id-weapon-wear-rating-pointer').style.transform = 'translateX(100%) translateY(3px) scaleY(-1);';
+ m_elScreen.FindChildInLayoutFile('id-chat-messages-bg').SetHasClass('show', false);
+ OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Drop.Discarded');
+ _MakeMessage(systemUserRejectOffer);
+ _MakeMessage(dealerNextOffer);
+ }
+ };
+ HoldButton.SetupButton(btnNoSettings);
}
+ _EnableActionButtons(numPaidAlready === 0);
}
function OnInventoryUpdated() {
if (m_bWrappingUpThisTransaction)
@@ -766,7 +773,7 @@ var CollectionOffers;
m_idContainerItem = '';
_EnableActionButtons(false);
m_elEndBtn.enabled = false;
- _MakeMessage(systemContainerExpired);
+ _MakeMessage(dealerContainerExpired);
}
CollectionOffers.OnInventoryUpdated = OnInventoryUpdated;
function OnItemCustomizationNotification(numericType, szType, itemid) {
@@ -963,7 +970,6 @@ var CollectionOffers;
elParent.SetPanelEvent('onactivate', () => {
_MakeFingerPrints(m_elScreen);
_XpCollectionPopup();
- m_elScreen.FindChildInLayoutFile('id-popup-lootlist').SetHasClass('show', true);
});
for (let i = 0; i < count; i++) {
const itemId = InventoryAPI.GetLootListItemIdByIndex(m_idContainerItem, i);
@@ -989,10 +995,8 @@ var CollectionOffers;
}
}
function _XpCollectionPopup() {
- m_elScreen.FindChildInLayoutFile('id-close-popup-lootlist').SetPanelEvent('onactivate', () => {
- OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Click');
- m_elScreen.FindChildInLayoutFile('id-popup-lootlist').SetHasClass('show', false);
- });
+ m_elScreen.FindChildInLayoutFile('id-popup-in-screen').SetHasClass('show-lootlist', true);
+ m_elScreen.FindChildInLayoutFile('id-close-popup-in-screen').SetPanelEvent('onactivate', () => CloseInScreenPopup('show-lootlist'));
const oHistoricData = InventoryAPI.GetCacheTypeElementJSOByIndex('VolatileItemOffer', InventoryAPI.GetCacheTypeElementIndexByKey('VolatileItemOffer', m_defidxContainerItem));
const oClaimedData = InventoryAPI.GetCacheTypeElementJSOByIndex('VolatileItemClaimedRewards', InventoryAPI.GetCacheTypeElementIndexByKey('VolatileItemClaimedRewards', m_defidxContainerItem));
const elParent = m_elScreen.FindChildInLayoutFile('id-offer-xp-lootlist');
@@ -1065,6 +1069,78 @@ var CollectionOffers;
}
}
}
+ async function _ShowMessageOfferLimit() {
+ const elMessage = $.CreatePanel('Panel', m_elMessagesParent, '');
+ elMessage.BLoadLayoutSnippet('interaction-offer-limit-message');
+ elMessage.AddClass('show');
+ const oSettings = {
+ parentPanel: elMessage.FindChildInLayoutFile('id-interaction-list'),
+ buttonClass: 'message-interaction__text-button',
+ group: 'offer-limit-message',
+ namePrefix: 'id-limit-message',
+ isContextMenu: false
+ };
+ MakeOfferLimitRadioButton(oSettings);
+ await Async.Delay(.1);
+ m_elMessagesParent.ScrollToBottom();
+ return elMessage;
+ }
+ function ShowOfferLimitPopup() {
+ m_elScreen.FindChildInLayoutFile('id-popup-in-screen').SetHasClass('show-settings', true);
+ m_elScreen.FindChildInLayoutFile('id-close-popup-in-screen').SetPanelEvent('onactivate', () => CloseInScreenPopup('show-settings'));
+ const oSettings = {
+ parentPanel: m_elScreen.FindChildInLayoutFile('id-offer-settings'),
+ buttonClass: 'popup-offers-setting__text-button',
+ group: 'offer-limit',
+ namePrefix: 'id-limit-popup',
+ isContextMenu: true
+ };
+ MakeOfferLimitRadioButton(oSettings);
+ }
+ function MakeOfferLimitRadioButton(oSetting) {
+ let oLimits = JSON.parse(InventoryAPI.GetVolatileLimits());
+ for (let i = 0; i < oLimits.choices.length; i++) {
+ let elButton = oSetting.parentPanel.FindChild(oSetting.namePrefix + oLimits.choices[i].limit);
+ if (!elButton) {
+ elButton = $.CreatePanel('RadioButton', oSetting.parentPanel, oSetting.namePrefix + oLimits.choices[i].limit, {
+ class: oSetting.buttonClass,
+ group: 'offer-limit',
+ html: 'true',
+ text: '{s:setting-label}'
+ });
+ elButton.SetDialogVariable('limit-setting', oLimits.choices[i]?.label);
+ const locString = (oLimits.choices[i].limit !== 0) ?
+ $.Localize(_RandomizeLocString('#user_message_limit_'), elButton) :
+ $.Localize(_RandomizeLocString('#user_message_limit_unlimited_'), elButton);
+ elButton.SetDialogVariable('setting-label', locString);
+ elButton.SetPanelEvent('onactivate', () => {
+ InventoryAPI.SetVolatileLimits(oLimits.choices[i].limit);
+ m_elScreen.SetDialogVariable('limit', GetLimitString(oLimits.choices[i]?.limit, oLimits.choices[i]?.label));
+ if (oSetting.isContextMenu) {
+ $.Schedule(.25, () => CloseInScreenPopup('show-settings'));
+ oSetting.parentPanel.Children().forEach(element => element.enabled = false);
+ ShowDealerOfferLimitAcknowledge();
+ return;
+ }
+ else {
+ oSetting.parentPanel.SetHasClass('hide', true);
+ _MakeMessage(systemOfferLimitSetWithBootstrapAction);
+ }
+ });
+ }
+ if (oSetting.isContextMenu) {
+ elButton.checked = ((oLimits.limit === oLimits.choices[i].limit) && oLimits.selected === true);
+ elButton.enabled = !elButton.checked;
+ }
+ }
+ }
+ function CloseInScreenPopup(className) {
+ OffersLaptop.LaptopSoundPlayOnce('UI.Laptop.Click');
+ m_elScreen.FindChildInLayoutFile('id-popup-in-screen').SetHasClass(className, false);
+ }
+ function GetLimitString(nLimit, sLimitLabel) {
+ return nLimit === 0 ? $.Localize(sLimitLabel) : sLimitLabel;
+ }
})(CollectionOffers || (CollectionOffers = {}));
var DecodeText;
(function (DecodeText) {
game/csgo/pak01_dir/panorama/styles/csgostyles.css
modified • +5 / -0 • changes: 5
Show patch
@@ -3773,6 +3773,11 @@ EdgeScrollBar.Vertical #MaxButton
margin-right: 4px;
}
+.right-margin-6
+{
+ margin-right: 6px;
+}
+
.right-margin
{
margin-right: 8px;
game/csgo/pak01_dir/panorama/styles/hud/hudlegend.css
modified • +10 / -0 • changes: 10
Show patch
@@ -35,6 +35,11 @@
visibility: collapse;
}
+.DemoControllerHidden .HudSpecplayer__key-hints
+{
+ visibility: collapse;
+}
+
.HudSpecplayer__key-hints .DemoControllerFull
{
visibility: collapse;
@@ -49,6 +54,11 @@
margin: 0px 4px;
}
+.DemoControllerHidden .HudSpecplayer__key-hints-text
+{
+ visibility: collapse;
+}
+
.DemoControllerFull .HudSpecplayer__key-hints-text
{
visibility: collapse;
game/csgo/pak01_dir/panorama/styles/itemtile.css
modified • +10 / -0 • changes: 10
Show patch
@@ -343,6 +343,16 @@
visibility:visible;
}
+.item-tile__onmarket
+{
+ height: 16px;
+ width: 16px;
+ transform: scaleX(-1);
+ vertical-align: center;
+ margin-right: 1px;
+ wash-color: baseText;
+}
+
.item-tile__original-owner
{
margin-left: 8px;
game/csgo/pak01_dir/panorama/styles/popups/popup_offers_laptop_interface.css
modified • +325 / -74 • changes: 399
Show patch
@@ -3,6 +3,8 @@
@define window-background-color: #263238;
@define blueColor:rgb(16, 90, 133);
@define lightCoolGreyColor: #B0BEC5;
+@define textGreyColor: #78909C;
+@define darkTextGreyColor: #455A64;
@define headerBarColor: #37474F;
.collection-laptop-container
{
@@ -462,7 +464,7 @@
padding-left: 16px;
vertical-align: center;
transform: translateY( -1px );
- color: #78909C;
+ color: textGreyColor;
height: 16px;
text-overflow: ellipsis;
}
@@ -509,6 +511,11 @@
width: 100%;
height: 100%;
background-color: gradient( linear, 0% 0%, 0% 100%, from( #b3b3b3be ), to( #131313be ) );
+ background-image: url("s2r://panorama/images/icons/ui/arms_deal_icon.vsvg");
+ background-img-opacity: .15;
+ background-position: 75px 120px;
+ background-size: auto 450px;
+ background-repeat: no-repeat;
opacity: 0;
transition-property: wash-color, opacity;
transition-duration: .5s;
@@ -588,14 +595,14 @@
.window__dealer-chat .chat-messages .chat-message.chat-message-system
{
- margin: 4px;
+ margin: 2px;
horizontal-align:center;
}
.window__dealer-chat .chat-messages .chat-message.chat-message-system .chat-message__body
{
background-color: none;
- max-width: 380px;
+ max-width: 420px;
padding: 0px;
horizontal-align:center;
text-align: center;
@@ -839,6 +846,94 @@
font-weight: bold;
}
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction
+{
+ margin-left: 54px;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction.hide
+{
+ visibility: visible;
+ height: 0px;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction.hide .message-interaction__text-button
+{
+ visibility: collapse;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .interaction-card
+{
+ background-color: rgba(0, 0, 0, 0.637);
+ flow-children: down;
+ border-radius: 4px;
+ padding: 8px;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .interaction-card .interaction-card-desc
+{
+ font-size: 14px;
+ padding:8px;
+ max-width: 380px;
+ color:grey;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button
+{
+ color: black;
+ font-weight: bold;
+ margin: 2px 0px;
+ border: 1px solid rgba(128, 128, 128, 0);
+ border-radius: 24px;
+ transition-property: border, brightness, box-shadow;
+ transition-duration: 0.20s;
+ transition-timing-function: ease-in-out;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button .RadioBox
+{
+ vertical-align: center;
+ min-width: 12px;
+ min-height: 12px;
+ background-size: auto 100%;
+ opacity: .5;
+ background-color: rgba(0, 0, 0, 0.50 );
+ border: 2px solid rgba(128, 128, 128, .25);
+ border-radius: 50%;
+ box-shadow: none;
+ margin: 0px 8px;
+ transition-property: opacity;
+ transition-duration: 0.20s;
+ transition-timing-function: ease-in-out;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button Label
+{
+ font-size: 16px;
+ padding: 2px 8px;
+ color: rgba(255, 255, 255, 0.45);
+ margin: 0px;
+ font-family: Stratum2, "Arial Unicode MS";
+ font-weight: normal;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button:hover
+{
+ border: 1px solid rgba(111, 129, 139, 0.25);
+ brightness: 2;
+ box-shadow: hollow #00000067 0px 0px 6px 1px;
+ transition-property: border, brightness, box-shadow;
+ transition-duration: 0.20s;
+ transition-timing-function: ease-in-out;
+}
+
+.window__dealer-chat .chat-messages .chat-message.chat-message-interaction .message-interaction__text-button:selected .RadioBox
+{
+ opacity: 1;
+ background-color: rgba(255, 255, 255, 0.35);
+ border: 2px solid rgba(65, 65, 65, 1);
+}
+
.window__dealer-chat .chat-messages .chat-message.show
{
visibility: visible;
@@ -857,15 +952,18 @@
.window__dealer-chat .chat-user-responses
{
width: 100%;
+ height: fit-children;
flow-children: down;
+ transition-property: height;
+ transition-duration: .25s;
+ transition-timing-function: ease-in-out;
}
.window__dealer-chat .chat-user-responses .chat-user-responses__container
{
flow-children: down;
width: 100%;
- margin: 8px;
- height: 80px;
+ margin: 10px 8px;
opacity: 0;
transform: translateY( 32px );
transition-property: opacity, transform;
@@ -882,11 +980,11 @@
.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-responses__title,.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-responses__desc
{
- width: 400px;
+ width: fit-children;
font-size: 16px;
margin-left: 6px;
- margin-bottom: 8px;
- color: #78909C;
+ margin-right: 6px;
+ color: textGreyColor;
text-transform: uppercase;
}
@@ -898,46 +996,96 @@
opacity: .75;
}
+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting
+{
+ font-size: 14px;
+ vertical-align: center;
+ horizontal-align: right;
+ text-align:right;
+ border-radius: 24px;
+ padding: 2px 8px;
+ box-shadow: none;
+ transition-property: border, brightness, box-shadow;
+ transition-duration: .25s;
+ transition-timing-function: ease-in-out;
+}
+
+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting Label
+{
+ font-size: 14px;
+ font-weight: normal;
+ color: textGreyColor;
+ -s2-mix-blend-mode: additive;
+ font-family: Stratum2, "Arial Unicode MS";
+}
+
+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting .expand-icon
+{
+ width:7px;
+ height:7px;
+ wash-color: textGreyColor;
+ transform: translatey(-5px);
+}
+
+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:hover:not(:disabled)
+{
+ brightness: 2;
+}
+
+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:active
+{
+ sound: "UI.Laptop.Click";
+}
+
+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:disabled Label
+{
+ color: darkTextGreyColor;
+}
+
+.window__dealer-chat .chat-user-responses .chat-user-responses__container .chat-user-limit-offer-setting:disabled .expand-icon
+{
+ wash-color: darkTextGreyColor;
+}
+
.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-price-tooltip
{
vertical-align: center;
- wash-color: lightCoolGreyColor;
+ wash-color: textGreyColor;
tooltip-position: top;
tooltip-body-position: 50% 100%;
}
.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-price-tooltip.faded
{
- wash-color: #455A64;
+ wash-color: darkTextGreyColor;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn
+.window__dealer-chat .chat-user-responses .user-response-btn
{
margin: 4px 6px;
border: 2px solid grey;
tooltip-position: top;
tooltip-body-position: 0% 100%;
- border-radius: 24px;
- transition-property: opacity, brightness,background-color;
+ border-radius: 26px;
+ transition-property: opacity, brightness,background-color, box-shadow, width;
transition-duration: .25s;
transition-timing-function: ease-in-out;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn Label
+.window__dealer-chat .chat-user-responses .user-response-btn Label
{
font-family: Stratum2, "Arial Unicode MS";
- font-weight: normal;
+ font-weight: medium;
padding: 8px 12px;
font-size: 16px;
z-index: 2;
- -s2-mix-blend-mode: additive;
text-align: center;
horizontal-align: center;
color: grey;
letter-spacing: .5px;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn .user-response-btn__timer
+.window__dealer-chat .chat-user-responses .user-response-btn .user-response-btn__timer
{
width: 0px;
height: 100%;
@@ -947,102 +1095,109 @@
transition-timing-function: linear;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:active
+.window__dealer-chat .chat-user-responses .user-response-btn:active
{
sound: "UI.Laptop.Click";
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.blue
+.window__dealer-chat .chat-user-responses .user-response-btn.blue
{
background-color: rgb(5, 55, 61);
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.blue Label
+.window__dealer-chat .chat-user-responses .user-response-btn.blue Label
{
color:rgb(5, 155, 175);
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.blue .user-response-btn__timer
+.window__dealer-chat .chat-user-responses .user-response-btn.blue .user-response-btn__timer
{
background-color: rgb(5, 55, 61);
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive
+.window__dealer-chat .chat-user-responses .user-response-btn.positive
{
- border: 1px solid #4caf4f00;
- background-color: #16681d;
+ border: 1.5px solid #02a002;
+ background-color: none;
+ box-shadow: hollow #00000000 0px 0px 3px 0px;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive Label
+.window__dealer-chat .chat-user-responses .user-response-btn.positive Label
{
- color:rgb(163, 199, 147);
+ color:#02a002;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive .user-response-btn__timer
+.window__dealer-chat .chat-user-responses .user-response-btn.positive .user-response-btn__timer
{
- background-color: #26882b;
+ background-color: #166b16;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.positive:hover:not(:disabled)
+.window__dealer-chat .chat-user-responses .user-response-btn.positive:hover:not(:disabled)
{
- box-shadow: fill #00000067 2px 2px 6px 1px;
- border: 1px solid rgb(57, 134, 59);
+ box-shadow: hollow #00000067 0px 0px 8px 0px;
+ border: 1.5px solid #02a002;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.yellow
+.window__dealer-chat .chat-user-responses .user-response-btn.yellow
{
- border: 1px solid #90A4AE;
+ border: 1.5px solid #6a777e;
background-color: none;
horizontal-align: right;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.yellow Label
+.window__dealer-chat .chat-user-responses .user-response-btn.yellow Label
{
color: #9badb6;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.yellow .user-response-btn__timer
+.window__dealer-chat .chat-user-responses .user-response-btn.yellow .user-response-btn__timer
{
background-color: #546E7A;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.negative
+.window__dealer-chat .chat-user-responses .user-response-btn.yellow:hover:not(:disabled)
{
- border: 1px solid negativeColor;
+ box-shadow: hollow #0000008c 0px 0px 6px 1px;
+}
+
+.window__dealer-chat .chat-user-responses .user-response-btn.negative
+{
+ border: 1.5px solid negativeColor;
background-color: rgba(129, 40, 18, 0.15);
horizontal-align: right;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.negative Label
+.window__dealer-chat .chat-user-responses .user-response-btn.negative Label
{
color:negativeColor;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn.negative .user-response-btn__timer
+.window__dealer-chat .chat-user-responses .user-response-btn.negative .user-response-btn__timer
{
background-color: rgb(129, 41, 18);
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:hover:not(:disabled)
+.window__dealer-chat .chat-user-responses .user-response-btn:hover:not(:disabled)
{
brightness: 1.6;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:disabled
+.window__dealer-chat .chat-user-responses .user-response-btn:disabled
{
brightness: 1;
- border: 1px solid #455A64;
- background-color: #263238;
+ border: 1.5px solid darkTextGreyColor;
+ background-color: none;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:disabled .user-response-btn__timer
+.window__dealer-chat .chat-user-responses .user-response-btn:disabled .user-response-btn__timer
{
width: 0px;
}
-.window__dealer-chat .chat-user-responses .chat-user-responses__container .user-response-btn:disabled Label
+.window__dealer-chat .chat-user-responses .user-response-btn:disabled Label
{
- color: #455A64;
+ color: darkTextGreyColor;
+ background-color: none;
}
.window__weapon-preview
@@ -1191,6 +1346,7 @@
horizontal-align: left;
vertical-align: bottom;
margin-bottom: 16px;
+ z-index: 3;
transition-property: width;
transition-duration: .1s;
transition-timing-function: linear;
@@ -1372,7 +1528,7 @@
.window__weapon-wear .window__weapon-wear__graph-container .window__weapon-wear__graph .window__weapon-wear__graph__segment.field-tested
{
width: 92px;
- background-color: #78909C;
+ background-color: textGreyColor;
}
.window__weapon-wear .window__weapon-wear__graph-container .window__weapon-wear__graph .window__weapon-wear__graph__segment.well-worn
@@ -1607,6 +1763,7 @@
.offer-collection__lootlist .offer-collection__lootlist__item.seen
{
background-color: white;
+ border: 0px solid rgba(255, 255, 255, 0.26);
opacity: 1;
}
@@ -1679,7 +1836,7 @@
z-index: 4;
flow-children: right;
border-radius: 24px;
- border: 1px solid lightCoolGreyColor;
+ background-color: darkTextGreyColor;
transition-property: brightness;
transition-duration: .25s;
transition-timing-function: ease-in-out;
@@ -1690,6 +1847,7 @@
font-family: Stratum2, 'Arial Unicode MS';
font-size: 12px;
margin:4px 8px;
+ text-align: center;
color: lightCoolGreyColor;
}
@@ -1771,7 +1929,7 @@
color:color-rarity-unusual;
}
-.popup-lootlist-container
+.popup-laptop-container
{
width: 100%;
height: 100%;
@@ -1781,21 +1939,43 @@
transition-timing-function: linear;
}
-.popup-lootlist-container.show
+.popup-laptop-container.show,.popup-laptop-container.show-lootlist,.popup-laptop-container.show-settings
+{
+ visibility: visible;
+ opacity: 1;
+}
+
+.popup-laptop-container.show-lootlist
+{
+ visibility: visible;
+ opacity: 1;
+}
+
+.popup-laptop-container.show-lootlist .popup-lootlist
+{
+ transform: translateY(0px) scaleY(1);
+ opacity: 1;
+ transition-property: transform, opacity;
+ transition-duration: .25s;
+ transition-timing-function: linear;
+}
+
+.popup-laptop-container.show-settings
{
visibility: visible;
opacity: 1;
}
-.popup-lootlist-container.show .popup-lootlist
+.popup-laptop-container.show-settings .popup-offers-settings
{
transform: translateY(0px) scaleY(1);
- transition-property: transform;
+ opacity: 1;
+ transition-property: transform, opacity;
transition-duration: .25s;
transition-timing-function: linear;
}
-.popup-lootlist
+.popup-lootlist,.popup-offers-settings
{
horizontal-align: right;
vertical-align: bottom;
@@ -1804,55 +1984,125 @@
flow-children: down;
background-color: window-background-color;
width: 250px;
+ opacity: 0;
transform-origin: 0% 100%;
transform: translateY(40px);
- transition-property: transform;
+ transition-property: transform, opacity;
transition-duration: .25s;
transition-timing-function: linear;
box-shadow: fill #0000005b 2px 2px 28px 1px;
}
-.popup-lootlist .popup-lootlist__desc
+.popup-lootlist.popup-offers-settings,.popup-offers-settings.popup-offers-settings
+{
+ horizontal-align: left;
+ margin-left: 280px;
+ margin-bottom: 120px;
+ margin-right: 0px;
+ width: 280px;
+}
+
+.popup-lootlist.popup-offers-settings .popup-lootlist__list__section,.popup-offers-settings.popup-offers-settings .popup-lootlist__list__section
+{
+ background-color: rgba(0, 0, 0, 0.315);
+ margin: 8px;
+ width: 100%;
+}
+
+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button
+{
+ margin: 2px 0px;
+ vertical-align: center;
+ border: 1px solid rgba(111, 129, 139, 0);
+ box-shadow: hollow #00000000 0px 0px 6px 1px;
+ border-radius: 12px;
+ padding: 2px 8px 2px 8px;
+ transition-property: border, brightness, box-shadow;
+ transition-duration: .25s;
+ transition-timing-function: ease-in-out;
+}
+
+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button .RadioBox,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button .RadioBox
+{
+ vertical-align: center;
+ min-width: 12px;
+ min-height: 12px;
+ background-size: auto 100%;
+ opacity: .5;
+ background-color: rgba(0, 0, 0, 0.50 );
+ border: 2px solid rgba(128, 128, 128, .25);
+ border-radius: 50%;
+ box-shadow: none;
+ transition-property: opacity;
+ transition-duration: 0.20s;
+ transition-timing-function: ease-in-out;
+}
+
+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button Label,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button Label
+{
+ font-family: Stratum2, "Arial Unicode MS";
+ font-size: 14px;
+ color: lightCoolGreyColor;
+}
+
+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button:hover,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button:hover
+{
+ border: 1px solid rgba(111, 129, 139, 0.25);
+ brightness: 2;
+ box-shadow: hollow #00000067 0px 0px 6px 1px;
+ transition-property: border, brightness, box-shadow;
+ transition-duration: 0.20s;
+ transition-timing-function: ease-in-out;
+}
+
+.popup-lootlist.popup-offers-settings .popup-offers-setting__text-button:selected .RadioBox,.popup-offers-settings.popup-offers-settings .popup-offers-setting__text-button:selected .RadioBox
+{
+ opacity: 1;
+ background-color: rgba(255, 255, 255, 0.35);
+ border: 2px solid rgba(65, 65, 65, 1);
+}
+
+.popup-lootlist .popup-lootlist__desc,.popup-offers-settings .popup-lootlist__desc
{
font-size: 14px;
margin: 8px 16px;
vertical-align: top;
color: lightCoolGreyColor;
}
-.popup-lootlist .popup-lootlist__list
+.popup-lootlist .popup-lootlist__list,.popup-offers-settings .popup-lootlist__list
{
flow-children: down;
width: 100%;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section
+.popup-lootlist .popup-lootlist__list:last-child,.popup-offers-settings .popup-lootlist__list:last-child
{
- background-color: rgba(0, 0, 0, 0.315);
- margin: 4px 8px;
- width: 100%;
+ margin-bottom: 8px;
}
-.popup-lootlist .popup-lootlist__list:last-child
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section
{
- margin-bottom: 8px;
+ background-color: rgba(0, 0, 0, 0.315);
+ margin: 4px 8px;
+ width: 100%;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items
{
flow-children: down;
padding: 16px;
width: 100%;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item
{
flow-children: right;
margin: 2px 0px 2px 0px;
width: 100%;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__rarity
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__rarity,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__rarity
{
width: 12px;
height: 12px;
@@ -1863,7 +2113,7 @@
opacity: .5;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__name
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__name,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item .popup-lootlist__list__item__name
{
vertical-align: center;
font-size: 14px;
@@ -1876,28 +2126,29 @@
transition-timing-function: ease-in-out;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item.seen .popup-lootlist__list__item__rarity
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item.seen .popup-lootlist__list__item__rarity,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item.seen .popup-lootlist__list__item__rarity
{
background-color: white;
+ border: 0px solid White;
opacity: 1;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item:hover .popup-lootlist__list__item__name
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item:hover .popup-lootlist__list__item__name,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__item:hover .popup-lootlist__list__item__name
{
border: 1px solid rgba(111, 129, 139, 0.25);
brightness: 2;
box-shadow: hollow #00000067 0px 0px 6px 1px;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__progress
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__progress,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__progress
{
font-size: 12px;
- color: #78909C;
+ color: textGreyColor;
width: 112px;
text-overflow: noclip;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn
{
border: 1px solid rgba(111, 129, 139, 0.25);
border-radius: 12px;
@@ -1907,7 +2158,7 @@
transition-timing-function: ease-in-out;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn Label
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn Label,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn Label
{
font-size: 12px;
text-align: center;
@@ -1917,14 +2168,14 @@
width: 72px;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:hover:not(:disabled)
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:hover:not(:disabled),.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:hover:not(:disabled)
{
border: 1px solid rgba(111, 129, 139, 0.479);
brightness: 2;
box-shadow: hollow #00000067 0px 0px 6px 1px;
}
-.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:disabled
+.popup-lootlist .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:disabled,.popup-offers-settings .popup-lootlist__list .popup-lootlist__list__section_items .popup-lootlist__list__section__btn:disabled
{
opacity: .20;
}
game/csgo/pak01_dir/panorama/styles/tooltips/tooltip_inventory_item.css
modified • +5 / -1 • changes: 6
Show patch
@@ -19,10 +19,14 @@
visibility:visible;
}
-.collection-label
+.collection-text-style
{
font-weight: normal;
font-size: 14px;
+}
+
+.collection-label
+{
visibility:collapse;
}
game/csgo/pak01_dir/resource/csgo_english.txt
modified • +55 / -11 • changes: 66
Show patch
@@ -2426,6 +2426,7 @@
"NewItemMethod_CommunityMarketPurchase" "You Received from the Community Market:"
"ItemHistory_ActionWithTime" "%s1 on %s2"
+ "ItemHistory_Action_GSCreate" "Created"
"ItemHistory_Action_GenericAdd" "Added"
"ItemHistory_Action_GenericRemove" "Removed or modified"
"ItemHistory_Action_Traded" "Traded"
@@ -2489,6 +2490,9 @@
"ItemHistory_Action_TournamentDrop" "Earned a souvenir drop"
"ItemHistory_Action_TemplateItemGrant" "Earned"
"ItemHistory_Action_Market_Add" "Received from the Community Market"
+ "ItemHistory_Action_Market_Sealed" "Created listing on the Steam Community Market"
+ "ItemHistory_Action_Market_Unsealed" "Removed listing from the Community Market"
+ "ItemHistory_Action_Market_SoldSealed" "Sold on the Steam Community Market"
"ItemHistory_Transaction_Delete" "You deleted"
"ItemHistory_Transaction_Craft" "Crafted"
@@ -2651,6 +2655,7 @@
"Attrib_NeverTradableButHasAfterDate1" "This item is not tradable and is not marketable."
"Attrib_NeverTradableButHasAfterDate2" "After use, items received will have a trade restriction until %s1"
"Attrib_TradeProtectedEscrowDate" "⇆ This item is trade-protected and cannot be consumed, modified, or transferred until %s1"
+ "Attrib_TradeProtectedEscrowMarket" "⇆ This item is listed on the Steam Community Market and cannot be consumed or modified while listed."
"Attrib_TradableAfterDate" "Tradable After %s1"
"Attrib_TradableMarketableAfterDate" "Tradable/Marketable After %s1"
"Attrib_MarketableWithRestrictions" "Sellable Immediately on the Steam Community Market"
@@ -39494,6 +39499,7 @@
"SFUI_InvContextMenu_preview_musickit" "Inspect - Preview Music"
"SFUI_InvContextMenu_decodable" "Unlock Container"
"SFUI_InvContextMenu_sell" "Sell On Community Market"
+ "SFUI_InvContextMenu_marketlisting" "View Market Listing"
"SFUI_InvContextMenu_openloadout" "View Loadout Slot"
"SFUI_InvContextMenu_inspectcase" "Open..."
"SFUI_InvContextMenu_useitem" "Use Item"
@@ -42913,6 +42919,8 @@
"SFUI_Settings_Network_Bandwidth_40mbps" "4 Mbps"
"SFUI_Settings_Network_Bandwidth_Max" "Unrestricted"
+ "SFUI_Settings_Volatile_Limit_Unlimited" "Unlimited"
+
"SFUI_FeatureUnavailableDuringBeta" "Unavailable During Beta"
"SFUI_Settings_Always_Show_Inventory" "Always Show Inventory"
@@ -48033,6 +48041,7 @@
"inv_context_remove_patch" "Remove Patch"
"inv_context_openloadout" "View in Loadout"
"inv_context_sell" "Sell On Community Market"
+ "inv_context_marketlisting" "View Market Listing"
"inv_context_tradeup_add" "Use With Trade Up Contract"
"inv_context_tradeup_remove" "Remove From Trade Up Contract"
"inv_context_open_contract" "Open Contract"
@@ -48090,6 +48099,7 @@
"inv_session_prop_updated" "Updated!"
"inv_session_prop_quest_reward" "Reward!"
"inv_session_prop_xpshopredeem" "New!"
+ "inv_session_prop_marketlisting" "<img src='file://{images}/icons/ui/coupon.svg' class='item-tile__onmarket'/> On Market"
"inv_equipped_item" "Equipped <b>{s:name}</b> for <b>{s:team}</b>"
"inv_equipped_item_noteam" "Equipped <b>{s:name}</b>"
"inv_unequipped_item" "Unequipped <b>{s:name}</b>"
@@ -51056,7 +51066,7 @@
"laptop_app_version" "v 1.1.0.2000"
"dealer_offer_attachment_title" "{s:item-name}"
- "dealer_offer_attachment_wear" "{s:item-rarity}"
+ "dealer_offer_attachment_wear" "{s:item-rarity}"
"dealer_offer_attachment_remaining_title" "OFFER #{d:offer-total}"
"dealer_offer_attachment_remaining" "Offer #{d:offer-total}"
"dealer_offer_received_count" "<b>{s:offer-count}</b> Offer"
@@ -51071,8 +51081,8 @@
"user_btn_purchase_desc_purchase" "Hold to purchase this item. After purchase, the Terminal is discarded."
"user_btn_purchase_desc_continue" "Hold to permanently decline this offer and see the next one."
"user_btn_purchase_desc_end" "Decline the final offer and discard this Terminal."
- "user_btn_purchase_title" "<b>{s:offer-count} Offer</b> - Suggested Responses"
- "user_btn_purchase_final_title" "<b>Final Offer</b> - Suggested Responses"
+ "user_btn_purchase_title" "{s:offer-count} - Offer"
+ "user_btn_purchase_final_title" "<b>Final Offer</b>"
"user_btn_decline_desc" "Decline this offer and see another one"
"user_btn_accept" "Accept Offer <b>{s:price}</b>"
"user_btn_accept_final" "Accept Final Offer <b>{s:price}</b>"
@@ -51094,6 +51104,18 @@
"user_btn_pause" "Pause Deal"
"user_btn_end" "Decline Final Offer"
+ "user_message_limit_0" "I can do up to <b>{s:limit-setting}</b>."
+ "user_message_limit_1" "How about <b>{s:limit-setting}</b> as the ceiling."
+ "user_message_limit_2" "Up to <b>{s:limit-setting}</b> works for me."
+ "user_message_limit_3" "<b>{s:limit-setting}</b> cap is good."
+ "user_message_limit_unlimited_0" "<b>No max</b>, I want to see it all."
+ "user_message_limit_unlimited_1" "<b>Blank check</b>. Don't worry about the wallet."
+ "user_message_limit_unlimited_2" "I'm here to buy. <b>Show me everything</b>."
+ "user_message_limit_unlimited_3" "If it shoots, I'm interested.<b> No limits</b>."
+ "user_message_limit_unlimited_4" "Sky's the limit"
+ "offer_limit_setting" "Offer limit: {s:limit}"
+ "offer_limit_setting_interface" "Offer limit: {s:limit} <img src='file://{images}/icons/ui/expand.svg' class='expand-icon'/>"
+
"dealer_offer_Unknown" "-"
"dealer_offer_1" "1st"
"dealer_offer_2" "2nd"
@@ -51110,7 +51132,9 @@
"declined_offer_tooltip" "Declined offer"
"future_offer_tooltip" "Offer not yet revealed."
"laptop_expiration_tooltip" "Time remaining until this Uplink Terminal and its offers expire."
+ "laptop_max_offer_tooltip" "Set your Max Offer Limit. You will only receive offers under that limit. You can change it at any time."
"collection_xp_tooltip" "Earn XP for viewing the offers in this collection. Open to see progress and redeem XP."
+ "terminal_offer_limit_tooltip" "Update your max offer limit. The Arms Dealer will only show you offers up to that limit."
"popup_lootlist_title" "Collection Catalog XP"
"popup_lootlist_desc" "Earn XP for viewing the offers in this collection"
"popup_lootlist_progress" "Seen {d:seen}/{d:total} offers"
@@ -51121,21 +51145,25 @@
"popup_vpn_status_disconnected" "Status: Disconnected"
"popup_signal_full" "Full Signal"
"popup_signal_ok" "Strong Signal"
+ "popup_offer_limit_desc" "Update your max offer limit for all future offers"
"laptop_battery_tooltip" "Battery Charge: {d:percent}%"
"laptop_original_seal_tooltip" "Any item purchased from this Uplink Terminal will come with an Original Owner Certificate, which is valid while you are the owner."
"laptop_zoom_tooltip" "Scroll mouse wheel to zoom in and out"
"laptop_pan_tooltip" "Hold 'Shift' key and drag to pan the camera"
"laptop_pricing_tooltip" "Prices are global and adjusted automatically based on demand for each item in this collection."
-
+ "dealer_message_set_offer_limit_0" "First things First. How much are you authorized to drop?"
+ "dealer_message_set_offer_limit_1" "Lets get this out of the way.<!--.25--> What’s your limit?"
+ "dealer_message_set_offer_limit_2" "Before we get started...<!--.25--> What’s the cap? How much are you authorized to drop?"
+
"dealer_message_start_0" "This stuff's contractor issue across the board.<!--.25-->All the bells and whistles. None of the paperwork."
"dealer_message_start_1" "I'm moving gray channel stock, no paper.<!--.25-->Don't worry: they're cold. Out of circulation for years, no one's looking for them.<!--.25-->Plus they still shoot when you point them, if you're curious."
"dealer_message_start_2" "Customs in Ahradan froze my cargo this morning. I tried thawing it out with a sob story about medical equipment and some poor dying... whoever.<!--.25-->That didn't work. But the briefcase full of money did.<!--.25-->How about we take a look at these dialysis machines before I get them to the orphans."
"dealer_message_start_3" "Regime change just went down in one of the 'stans.<!--.25-->The depot doors swung open and I picked through the pile myself.<!--.25-->I'm only selling the sterile pieces. Take a look."
"dealer_message_start_4" "The stuff I've got today is all clean.<!--.25-->As far as anyone knows, yours are the first hands they've passed through."
"dealer_message_start_5" "Sterile pieces, no serials, perfect action.<!--.25-->A war tribunal would call these evidence.<!--.25-->You and I know they're goddamn masterpieces."
"dealer_message_start_6" "This whole shipment is exotics recently liberated from a parade unit.<!--.25-->Marched around a lot. Never fired."
- "dealer_message_start_7" "Good. It's you.<!--.25-->My other clients always want to know how I got what I'm selling. I hate that.<!--.25-->All you ever want to know is if it's the best stuff on the market.<!--.25-->Guess what: It is."
+ "dealer_message_start_7" "My other clients always want to know how I got what I'm selling. I hate that.<!--.25-->All you ever want to know is if it's the best stuff on the market.<!--.25-->Guess what: It is."
"dealer_message_start_8" "Peace agreement in Drosvik. I love peace.<!--.25-->Because I've got a general with a lot of debts and a fully stocked armory gathering dust.<!--.25-->I mean...<!--.25-->Also because peace is good, obviously. Innocent lives and...<!--.25-->What am I saying, you don't care."
"dealer_message_start_9" "This load's got exotics from a gray channel diversion.<!--.25-->Unusual calibers, not for amateurs. You'll love 'em."
"dealer_message_start_10" "This is embarrassing.<!--.25-->I must have accidentally mislabeled a crate on my shipping manifest.<!--.25-->Well. A few dozen crates.<!--.25-->How about you help me make this inventory disappear before the port authority looks into it."
@@ -51159,7 +51187,6 @@
"dealer_message_start_28" "Perennial hot zone down south just had its bi-annual parliament collapse.<!--.25-->Bunch of local armories busted open like pinatas."
"dealer_message_start_29" "Port authority inspector called this shipment irregular last Friday.<!--.25-->By Monday his daughter's got enough tuition money to attend Stamwick and the shipment is farm tools again.<!--.25-->What can I say, education's important. Let's look at some farm tools."
-
"dealer_message_resume_0" "<!--1-->You're back. Good. Deal's still on the table."
"dealer_message_resume_1" "<!--1-->Needed a minute to think about it? Not a problem."
"dealer_message_resume_2" "<!--1-->I figured you'd be back."
@@ -51222,7 +51249,6 @@
"dealer_message_next_offer_39" "<!--1-->Not a problem. I wouldn't have bought that either. Now this, on the other hand..."
"dealer_message_next_offer_40" "<!--1-->Making me go all the way in the back for the premium shelf stuff, huh? Alright, you got it."
-
"dealer_message_last_offer_0" "<!--0-->Alright, last and final offer. Take it or leave it."
"dealer_message_last_offer_1" "<!--0-->Consider this my final offer."
"dealer_message_last_offer_2" "<!--0-->Final offer. Take it or leave it, let's stop wasting my time."
@@ -51249,7 +51275,7 @@
"dealer_message_timerexpired_7" "<!--.1-->And here I thought I was helping you waste people.<!--.5-->Turns out you're just wasting my time."
"dealer_message_timerexpired_8" "<!--.1-->Deal's off."
"dealer_message_timerexpired_9" "<!--.1-->Time's up."
- "dealer_message_timerexpired_10" "<!--.1-->Alright, I'm officially bored. We're done here."
+ "dealer_message_timerexpired_10" "<!--.1-->Alright, I'm officially bored. We're done here."
"dealer_message_open_check_out_0" "<!--.5-->This one had your name all over it. That's why I thought of you first. Let's seal this deal."
"dealer_message_open_check_out_1" "<!--.5-->An excellent decision. I'll make sure it's packed and ready."
@@ -51258,8 +51284,8 @@
"dealer_message_open_check_out_4" "<!--.5-->Perfect. Let's do this."
"dealer_message_open_check_out_5" "<!--.5-->Good choice."
"dealer_message_open_check_out_6" "<!--.5-->Smartest choice you've ever made. Let's make it final."
- "dealer_message_open_check_out_7" "<!--.5-->Good. Let's make it official."
-
+ "dealer_message_open_check_out_7" "<!--.5-->Good. Let's make it official."
+
"dealer_message_txn_xld_bailout_0" "<!--.5-->No rush. You know where to find me."
"dealer_message_txn_xld_bailout_1" "<!--.5-->I'm not going anywhere."
"dealer_message_txn_xld_bailout_2" "<!--.5-->I'll keep this one on the table for now."
@@ -51327,12 +51353,30 @@
"dealer_message_addition_factory_new_1" "<!--.25-->And it's factory new. Pristine."
"dealer_message_addition_factory_new_2" "<!--.25-->Straight from the vault. Factory new."
"dealer_message_addition_factory_new_3" "<!--.25-->This one's factory new. Never fired."
+
+ "dealer_message_limit_first_time_0" "Good to know, I'll only show you offers up to {s:limit}.<!--.25--> Let's see what you need."
+ "dealer_message_limit_first_time_2" "Only offer under {s:limit}, I'll keep that in mind.<!--.25--> Clock's ticking. Let's start."
+ "dealer_message_limit_first_time_3" "Noted. Updated.<!--.25--> Here we go."
+ "dealer_message_limit_first_time_unlimited_0" "No max, Excellent. I'll open the current catalog going forward.<!--.25--> Clock's ticking. Let's start."
+ "dealer_message_limit_first_time_unlimited_1" "Roger. Uncapped. Now we’re getting serious.<!--.25--> Let's see what you need."
+
+ "dealer_message_limit_0" "Good to know, I'll only show you offers up to {s:limit}."
+ "dealer_message_limit_1" "Only offers under {s:limit}, I'll keep that in mind."
+ "dealer_message_limit_2" "Adjusting the parameters. Only offers up to {s:limit}."
+ "dealer_message_limit_3" "Offers up to {s:limit}. Noted. Updated."
+ "dealer_message_limit_4" "I’ll only pull what fits the tag, up to {s:limit}"
+ "dealer_message_limit_5" "{s:limit}, got the new cap"
+ "dealer_message_limit_6" "Understood. Resetting the filter for offers up to {s:limit}."
+ "dealer_message_limit_unlimited_0" "No max, Excellent. I'll open the current catalog going forward."
+ "dealer_message_limit_unlimited_1" "Got it, uncapped. If any thing exotic comes up I won't hold back."
+ "dealer_message_limit_unlimited_2" "Music to my ears. If something that fits the bill shows up I won't hesitate to show you"
+ "dealer_message_limit_unlimited_3" "Roger. Uncapped. Now we’re getting serious."
"system_dealer_left_chat_0" "The Dealer has left your chat."
"system_dealer_join_chat_0" "{s:collection} Arms Deal Offers.<!--1.25-->Dealer Connected"
"system_user_reject_offer_0" "{s:user-name} Declined Offer."
-
+ "system_user_updated_offer_limit_0" "Max Offer Limit updated to {s:limit}. You can update the setting at any time."
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Retakes
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
game/csgo/readonly_tools_asset_info.txt
modified • +12 / -0 • changes: 12
Show patch
@@ -123034,3 +123034,15 @@ panorama/images/map_icons/map_icon_de_warden.vsvg
panorama/videos/limited_edition_variations.webm
scripts/workshop_cvar_whitelist.txt
maps/editor/zoo/scripts/input.vjs
+panorama/images/econ/status_icons/maptoken_alpine_png.vtex
+panorama/images/econ/status_icons/maptoken_alpine_small_png.vtex
+panorama/images/econ/status_icons/maptoken_poseidon_png.vtex
+panorama/images/econ/status_icons/maptoken_poseidon_small_png.vtex
+panorama/images/econ/status_icons/maptoken_sanctum_png.vtex
+panorama/images/econ/status_icons/maptoken_sanctum_small_png.vtex
+panorama/images/econ/status_icons/maptoken_stronghold_png.vtex
+panorama/images/econ/status_icons/maptoken_stronghold_small_png.vtex
+panorama/images/econ/status_icons/maptoken_warden_png.vtex
+panorama/images/econ/status_icons/maptoken_warden_small_png.vtex
+materials/models/inventory_items/music_kit/label_cs2.vmat
+materials/models/inventory_items/music_kit/label_cs2_color_psd_ad840642.vtex
game/csgo/steam.inf
modified • +6 / -6 • changes: 12
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000738
-ServerVersion=2000738
-PatchVersion=1.41.3.7
+ClientVersion=2000744
+ServerVersion=2000744
+PatchVersion=1.41.3.8
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=10477407
-VersionDate=Feb 25 2026
-VersionTime=13:52:57
+SourceRevision=10494140
+VersionDate=Mar 04 2026
+VersionTime=13:26:09
game/csgo_community_addons/de_sanctum/de_sanctum_dir.txt
modified • +1025 / -1102 • changes: 2127
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo_community_addons/de_warden/de_warden_dir.txt
modified • +4 / -2 • changes: 6
Show patch
@@ -372,7 +372,7 @@ materials/de_warden/monterey_cypress_bark/monterey_cypress_bark.vmat_c CRC:00716
materials/de_warden/monterey_cypress_bark/monterey_cypress_bark_color_tif_a716819.vtex_c CRC:00543b56f9 size:1400212
materials/de_warden/monterey_cypress_bark/monterey_cypress_bark_normal_tif_acf65e41.vtex_c CRC:00256f339d size:2798436
materials/de_warden/monterey_cypress_bark/monterey_cypress_bark_vmat_g_tambientocclusion_9782fd5c.vtex_c CRC:00fbd446d5 size:2008
-materials/de_warden/moss_01/moss_01.vmat_c CRC:001ca18853 size:4309
+materials/de_warden/moss_01/moss_01.vmat_c CRC:00af8acde0 size:4392
materials/de_warden/moss_01/moss_01_color_png_f4e9893b.vtex_c CRC:00d16dc9ff size:1400180
materials/de_warden/moss_01/moss_01_height_png_1f83de80.vtex_c CRC:0046998172 size:1400244
materials/de_warden/moss_01/moss_01_height_png_3a4cf3f3.vtex_c CRC:006d948792 size:1400292
@@ -390,7 +390,7 @@ materials/de_warden/painted_bricks_worn/painted_bricks_worn.vmat_c CRC:000c454eb
materials/de_warden/painted_bricks_worn/painted_bricks_worn_color_png_512d594c.vtex_c CRC:00c436afcd size:5594548
materials/de_warden/painted_bricks_worn/painted_bricks_worn_height_png_adbf20cb.vtex_c CRC:009ee6d134 size:5594612
materials/de_warden/painted_bricks_worn/painted_bricks_worn_normal_png_9c4f459.vtex_c CRC:00a10ff897 size:5594628
-materials/de_warden/painted_concrete_01/painted_concrete_01.vmat_c CRC:001b4baecc size:4181
+materials/de_warden/painted_concrete_01/painted_concrete_01.vmat_c CRC:006e9461af size:4312
materials/de_warden/painted_concrete_01/painted_concrete_01_color_psd_4c3b9834.vtex_c CRC:00407790e1 size:5594468
materials/de_warden/painted_concrete_01/painted_concrete_01_damaged_blend.vmat_c CRC:0003ba9900 size:7240
materials/de_warden/painted_concrete_01/painted_concrete_01_damaged_blend_overlay.vmat_c CRC:00d739e772 size:7592
@@ -604,8 +604,10 @@ materials/de_warden/worn_plaster_01/worn_plaster_01_color_tga_523055d3.vtex_c CR
materials/de_warden/worn_plaster_01/worn_plaster_01_height_tga_32fbcc90.vtex_c CRC:00684b826b size:1400212
materials/de_warden/worn_plaster_01/worn_plaster_01_height_tga_4cec3a67.vtex_c CRC:00d8479e8a size:1400212
materials/de_warden/worn_plaster_01/worn_plaster_01_normal_tga_c8fb9d5a.vtex_c CRC:00b69c768f size:1400276
+materials/de_warden/worn_plaster_02/worn_plaster_02.vmat_c CRC:0058855c09 size:4264
materials/de_warden/worn_plaster_02/worn_plaster_02_color_png_fefea71f.vtex_c CRC:003b6b23b7 size:5594548
materials/de_warden/worn_plaster_02/worn_plaster_02_height_png_7172ac85.vtex_c CRC:0032375bc6 size:5594564
+materials/de_warden/worn_plaster_02/worn_plaster_02_height_png_762c4102.vtex_c CRC:00966b9c16 size:5594580
materials/de_warden/worn_plaster_02/worn_plaster_02_normal_png_6772b05a.vtex_c CRC:000bba71de size:5594628
materials/default/default_ao_tga_559f1ac6.vtex_c CRC:00aef61552 size:2200
materials/default/default_bentnormal_tga_2023e987.vtex_c CRC:00f3748ef8 size:2272
25.2.2026, 22.53.49
Assets/UI/maps update (content/csgo/maps/editor/zoo/scripts/chess.js, content/csgo/maps/editor/zoo/scripts/input.js, content/csgo/maps/editor/zoo/scripts/point_script.d.ts).
Files changed: 19 • +308 / -50
scriptsassetsmisccontent-change
Changed files
DumpSource2/convars.txt
modified • +3 / -0 • changes: 3
Show patch
@@ -10779,6 +10779,9 @@ sv_weapon_swap_difficulty_near_hi_pri 2 (gamedll clientdll replicated release)
sv_workshop_allow_other_maps true (gamedll release)
When hosting a workshop collection, users can play other workshop map on this server when it is empty and then mapcycle into this server collection.
+sv_workshop_map_save_data_max_filesize_mb 1 (gamedll release commandline_enforced)
+ <no description>
+
sys_minidumpexpandedspew true (developmentonly defensive)
<no description>
content/csgo/maps/editor/zoo/scripts/chess.js
modified • +33 / -11 • changes: 44
Show patch
@@ -303,7 +303,7 @@ function ChessJS() {
["A", "Z"],
],
false,
- false
+ false,
);
var peg$e6 = peg$otherExpectation("tag value");
var peg$e7 = peg$classExpectation(['"'], true, false);
@@ -1390,7 +1390,7 @@ function ChessJS() {
throw peg$buildStructuredError(
peg$maxFailExpected,
peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
- peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
+ peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos),
);
}
}
@@ -3468,7 +3468,7 @@ function ChessJS() {
};
}
-const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE } = ChessJS();
+const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE, validateFen } = ChessJS();
let chess = new Chess();
@@ -3497,13 +3497,7 @@ async function RunChess() {
while (!chess.isGameOver()) {
await Delay(0);
- let move;
- if (chess.turn() === BLACK) {
- move = await AIMove();
- } else {
- move = await AIMove();
- }
-
+ const move = await AIMove();
await AnimateMove(move);
}
@@ -3667,6 +3661,7 @@ async function AIMove() {
undosNeeded--;
}
chess.move(bestMove);
+ writeSaveKey("chess", chess.fen());
return bestMove;
}
@@ -3737,7 +3732,17 @@ function GetFitness(color) {
/** @param {Chess?} oldChess */
function Init(oldChess) {
- if (oldChess && !oldChess.isGameOver()) chess = oldChess;
+ if (oldChess) {
+ if (!oldChess.isGameOver()) {
+ chess = oldChess;
+ }
+ } else {
+ // Check if save data exists. Because script_zoo is not a workshop addon it won't find any unless the user ran with "-addon".
+ const saveData = readSaveKey("chess");
+ if (validateFen(saveData).ok) {
+ chess.load(saveData);
+ }
+ }
FindCenters();
Instance.SetNextThink(Instance.GetGameTime());
}
@@ -3784,3 +3789,20 @@ function shuffle(arr) {
}
return arr;
}
+
+// Allows multiple scripts to use the same save without stepping on each other's toes
+function readSaveKey(key) {
+ const data = Instance.GetSaveData();
+ try {
+ return JSON.parse(data)[key];
+ } catch {}
+ return "";
+}
+function writeSaveKey(key, value) {
+ let json = {};
+ try {
+ json = JSON.parse(Instance.GetSaveData());
+ } catch {}
+ json[key] = value;
+ Instance.SetSaveData(JSON.stringify(json));
+}
content/csgo/maps/editor/zoo/scripts/input.js
added • +42 / -0 • changes: 42
Show patch
@@ -0,0 +1,42 @@
+import { Instance, CSInputs, CSPlayerPawn } from "cs_script/point_script";
+
+const CSInputsValues = Object.values(CSInputs).filter((i) => typeof i === "number");
+
+/** @type {CSPlayerPawn | undefined} */
+let inputPawn = undefined;
+
+Instance.OnPlayerChat(({ player, text }) => {
+ if (text === "!showinput") {
+ inputPawn = inputPawn == player?.GetPlayerPawn() ? undefined : player?.GetPlayerPawn();
+ }
+});
+
+/**
+ * @param {string} name
+ * @param {(input:CSInputs) => boolean} getter
+ * @param {number} x
+ * @param {number} y
+ */
+function printInputType(name, getter, x, y) {
+ const inputs = CSInputsValues.filter(getter).map((i) => CSInputs[i]);
+ let inputText = inputs.length === 0 ? "NONE" : inputs.join("|");
+ Instance.DebugScreenText({ text: `${name}: ${inputText}`, x, y });
+}
+
+/**
+ * @param {CSPlayerPawn | undefined} pawn
+ */
+function printInput(pawn) {
+ if (pawn) {
+ printInputType("Pressed", pawn.IsInputPressed.bind(pawn), 100, 500);
+ printInputType("Just Pressed", pawn.WasInputJustPressed.bind(pawn), 100, 510);
+ printInputType("Just Released", pawn.WasInputJustReleased.bind(pawn), 100, 520);
+ }
+}
+
+Instance.OnActivate(() => Instance.SetNextThink(Instance.GetGameTime()));
+Instance.OnScriptReload({ after: () => Instance.SetNextThink(Instance.GetGameTime()) });
+Instance.SetThink(() => {
+ Instance.SetNextThink(Instance.GetGameTime());
+ printInput(inputPawn);
+});
content/csgo/maps/editor/zoo/scripts/point_script.d.ts
modified • +84 / -12 • changes: 96
Show patch
@@ -61,6 +61,21 @@ declare module "cs_script/point_script"
*/
OnScriptReload<T>(config: { before?: () => T, after?: (memory: T) => void }): void;
+ /**
+ * Writes save data associated with this workshop addon.
+ * Will synchronously write to disk every time this is called.
+ * @experimental This method is experimental and may experience breaking changes.
+ * Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
+ */
+ SetSaveData(data: string): void;
+ /**
+ * Retrieves the save data associated with this workshop addon.
+ * Will synchronously read from disk the first time this is called.
+ * @experimental This method is experimental and may experience breaking changes.
+ * Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
+ */
+ GetSaveData(): string;
+
/** Called at a specified time. Control when this is run using SetNextThink. */
SetThink(callback: () => void): void;
/** Set when the OnThink callback should next be run. The exact time will be on the tick nearest to the specified time, which may be earlier or later. */
@@ -88,12 +103,17 @@ declare module "cs_script/point_script"
/** Called when a player defuses the c4 */
OnBombDefuse(callback: (event: { plantedC4: Entity, defuser: CSPlayerPawn }) => void): void;
/**
- * Called when a CSPlayerPawn is about to take damage
+ * Called immediately before a CSPlayerPawn takes damage to armor and health.
+ * Called after hitgroup modifications are applied such as headshot multiplier.
+ * This won't be called if the player would take no damage. Such as if they're frozen or invulnerable or if friendly fire would disable the damage.
* @param callback
- * Return `{ damage: N }` to modify the amount of damage. Armor and hitgroup modifications will be applied to this new value.
+ * Return `{ damage: N }` to modify the amount of damage.
+ * Return `{ damageFlags: event.damageFlags | CSDamageFlags.IGNORE_ARMOR }` to have the damage pierce armor.
* Return `{ abort: true }` to cancel the damage event.
+ * @experimental This method is experimental and may experience breaking changes.
+ * Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
*/
- OnBeforePlayerDamage(callback: (event: BeforePlayerDamageEvent) => BeforePlayerDamageModify | { abort: true } | void): void;
+ OnModifyPlayerDamage(callback: (event: ModifyPlayerDamageEvent) => ModfiyPlayerDamageResult | void): void;
/**
* Called when a player has taken damage.
*/
@@ -170,6 +190,8 @@ declare module "cs_script/point_script"
/** Issue a command. */
ServerCommand(command: string): void;
+ /** @deprecated This method will be removed in a future update */
+ OnBeforePlayerDamage(callback: () => any): void;
/** @deprecated This method will be removed in a future update */
OnBeforeReload(callback: () => any): void;
/** @deprecated This method will be removed in a future update */
@@ -291,6 +313,7 @@ declare module "cs_script/point_script"
PREVENT_DEATH = 1 << 3,
FORCE_DEATH = 1 << 4,
SUPPRESS_DAMAGE_MODIFICATION = 1 << 5,
+ IGNORE_ARMOR = 1 << 6,
}
export enum CSHitGroup {
@@ -306,6 +329,23 @@ declare module "cs_script/point_script"
NECK,
}
+ export enum CSInputs {
+ NONE = 0,
+ FORWARD = 1 << 0,
+ BACK = 1 << 1,
+ LEFT = 1 << 2,
+ RIGHT = 1 << 3,
+ WALK = 1 << 4,
+ DUCK = 1 << 5,
+ JUMP = 1 << 6,
+ USE = 1 << 7,
+ ATTACK = 1 << 8,
+ ATTACK2 = 1 << 9,
+ RELOAD = 1 << 10,
+ SHOW_SCORES = 1 << 11,
+ LOOK_AT_WEAPON = 1 << 12,
+ }
+
interface BaseTraceConfig {
start: Vector;
end: Vector;
@@ -358,24 +398,28 @@ declare module "cs_script/point_script"
hitGroup: CSHitGroup;
}
- interface BeforePlayerDamageEvent {
+ interface ModifyPlayerDamageEvent {
/** The victim that is taking damage */
player: CSPlayerPawn;
- /** The amount of damage being applied, before armor and hitgroup modifications */
+ /** The amount of damage being applied, after hitgroup modifications and before armor modifications */
damage: number;
- /** The type or types of damage. */
+ /** The types of damage. */
damageTypes: CSDamageTypes;
/** The flags configuring how to interpret the damage. */
damageFlags: CSDamageFlags;
+ /** The hit group where the damage occured. */
+ hitGroup: CSHitGroup;
/** The entity applying the damage. For bullets this is the owner of the gun. For grenades this is the exploding projectile. */
- inflictor?: Entity;
+ inflictor: Entity;
/** The entity credited with causing the damage. For bullets this is the shooter. For grenades this is the thrower. */
attacker?: Entity;
/** The weapon used. For grenades this will not be present because the weapon is often removed before the projectile explodes. */
weapon?: CSWeaponBase;
}
- interface BeforePlayerDamageModify {
+ interface ModfiyPlayerDamageResult {
+ /** If true, stop processing this damage */
+ abort?: boolean;
/** The amount of damage being applied, before armor and hitgroup modifications */
damage?: number;
/** The type or types of damage. */
@@ -387,14 +431,16 @@ declare module "cs_script/point_script"
interface PlayerDamageEvent {
/** The victim that has taken damage */
player: CSPlayerPawn;
- /** The actual health lost after armor and hitgroup modifications */
+ /** The actual health lost after hitgroup and armor modifications */
damage: number;
/** The type or types of damage. */
damageTypes: CSDamageTypes;
/** The flags configuring how to interpret the damage. */
damageFlags: CSDamageFlags;
+ /** The hit group where the damage occured. */
+ hitGroup: CSHitGroup;
/** The entity applying the damage. For bullets this is the owner of the gun. For grenades this is the exploding projectile. */
- inflictor?: Entity;
+ inflictor: Entity;
/** The entity credited with causing the damage. For bullets this is the shooter. For grenades this is the thrower. */
attacker?: Entity;
/** The weapon used. For grenades this will not be present because the weapon is often removed before the projectile explodes. */
@@ -447,7 +493,7 @@ declare module "cs_script/point_script"
Kill(): void;
Remove(): void;
- /** @deprecated This method will be removed in a future update */
+ /** @deprecated This overload will be removed in a future update */
Teleport(newPosition: Vector | null, newAngles: QAngle | null, newVelocity: Vector | null): void;
/** @deprecated This method will be removed in a future update */
GetLocalVelcoity(): Vector;
@@ -529,6 +575,24 @@ declare module "cs_script/point_script"
GetPlayerController(): CSPlayerController | undefined;
/** Gets the controller that this player pawn was originally spawned for. */
GetOriginalPlayerController(): CSPlayerController;
+ /**
+ * @returns `true` if specified inputs are pressed at the end of the current tick.
+ * @experimental This method is experimental and may experience breaking changes.
+ * Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
+ */
+ IsInputPressed(inputs: CSInputs): boolean;
+ /**
+ * @returns `true` if specified inputs went from released to pressed at some point during the current tick.
+ * @experimental This method is experimental and may experience breaking changes.
+ * Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
+ */
+ WasInputJustPressed(inputs: CSInputs): boolean;
+ /**
+ * @returns `true` if specified inputs went from pressed to released at some point during the current tick.
+ * @experimental This method is experimental and may experience breaking changes.
+ * Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
+ */
+ WasInputJustReleased(inputs: CSInputs): boolean;
FindWeapon(name: string): CSWeaponBase | undefined;
FindWeaponBySlot(slot: CSGearSlot): CSWeaponBase | undefined;
GetActiveWeapon(): CSWeaponBase | undefined;
@@ -539,14 +603,22 @@ declare module "cs_script/point_script"
GiveNamedItem(name: string, autoDeploy?: boolean): void;
GetArmor(): number;
SetArmor(value: number): void;
+ IsDucking(): boolean;
+ IsDucked(): boolean;
+ IsNoclipping(): boolean;
+
+ /** @deprecated This method will be removed in a future update */
IsCrouching(): boolean;
+ /** @deprecated This method will be removed in a future update */
IsCrouched(): boolean;
- IsNoclipping(): boolean;
}
export class PointTemplate extends Entity {
ForceSpawn(origin?: Vector, angle?: QAngle): Entity[] | undefined;
}
+
+ /** @deprecated This enum will be removed in a future update */
+ export enum CSDamageType { }
}
/**
content/csgo/maps/editor/zoo/scripts/setup.js
modified • +2 / -2 • changes: 4
Show patch
@@ -1,4 +1,4 @@
-import { CSDamageFlags, CSLoadoutSlot, Instance } from "cs_script/point_script";
+import { CSDamageFlags, Instance } from "cs_script/point_script";
Instance.ServerCommand("mp_warmup_offline_enabled 1");
Instance.ServerCommand("mp_warmup_pausetimer 1");
@@ -9,7 +9,7 @@ Instance.OnPlayerActivate(({ player }) => {
Instance.ServerCommand("bot_add");
});
-Instance.OnBeforePlayerDamage(({ player }) => {
+Instance.OnModifyPlayerDamage(({ player }) => {
if (player.GetOriginalPlayerController().IsBot()) {
return { damageFlags: CSDamageFlags.PREVENT_DEATH };
}
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-10470273
+10477372
game/bin/linuxsteamrt64/libengine2_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -4643,6 +4643,7 @@ Force full sendtable sending path.
Force toggle hibernation state
Force uncompressed update
Force user input to this split screen player.
+ForceFixedAppIds
Forced by cvar\n
Forcing engine to render for the next %d frames\n
Forward
game/bin/linuxsteamrt64/libnetworksystem_strings.txt
modified • +2 / -0 • changes: 2
Show patch
@@ -620,6 +620,7 @@ Netchan queued message new high water mark reached by %s at %d messages\n
Network System Initialized\n
Network field tried to use a priority that has not been registered!\n
Network socket '%s' opened on port %d\n
+NetworkConfigLimits
NetworkMessages::FindOrCreateNetMessage: Message %s is of size %d in leaf code, but protobuf object is size %lld, the added fields should be placed into object derived from protobuf and then CNetMessagePB references that\n
NetworkReplayCompatField_t %s::%s on field '%s' is using possibly bogus this pointer from class %s!\n
NetworkSystem
@@ -663,6 +664,7 @@ ProcessMessages
ProcessOverride encountered unknown directive NetworkOverrideType_t(%d)\n
Processing
Proto
+PublicUniverse
QAngle
Quaternion
QuaternionStorage
game/csgo/bin/linuxsteamrt64/libclient_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -17457,6 +17457,7 @@ JZIX
J\nHBF
J`KL
Japanese
+Jg-a~
Job %s has EXCEEDED TIMEOUT THRESHOLD exclusive time: %ums >= %ums\n
Job %s has EXCEEDED TIMEOUT THRESHOLD yield time: %ums >= %ums\n
Job %s has spent >%2.3fms without yielding: %2.3fms\n
game/csgo/bin/linuxsteamrt64/libserver_strings.txt
modified • +40 / -0 • changes: 40
Show patch
@@ -1391,13 +1391,15 @@ $light_emissive
(config:{text: string, x: number, y: number, duration: number, color: Color})
(connectionId:number)
(damage: number, info?: Object)
+(data: string)
(debug)
(default)
(duration: number)
(from angle, to angle, time) - Spherical lerp of angle from->to based on time
(hInflictor, hAttacker, flDamage) - Allocate a damageinfo object, used as an argument to TakeDamage(). Call DestroyDamageInfo( hInfo ) to free the object.
(health: number)
(immunityColor: color)
+(inputs:number)
(int iIndex, int iPoint, Vector vOrigin, QAngle qAngles ) - Set the transform for a control on a particle effect
(int iIndex, int iPoint, Vector vOrigin, Vector vecForward ) - Set the origin and forward direction for a control on a particle effect
(int iIndex, int iPoint, Vector vecOffset ) - Set the linear offset for a control on a particle effect
@@ -2725,6 +2727,7 @@ $light_emissive
15CCSHitboxSystem
15CCSObserverPawn
15CCSPetPlacement
+15CCSScriptSystem
15CCSUsrMsg_Shake
15CCSUsrMsg_Train
15CCSWeaponSystem
@@ -5496,6 +5499,7 @@ $light_emissive
22CUserMessageScreenTilt
22CUserMessageWaterShake
22CUserMessage_DllStatus
+22IAddonListChangeNotify
22IBoneTransformOverride
22IEconItemSetDefinition
22IEventRegisterCallback
@@ -5711,6 +5715,7 @@ $light_emissive
24CGameSystemStaticFactoryI14CGameTimescaleS0_E
24CGameSystemStaticFactoryI15CCSAddonManagerS0_E
24CGameSystemStaticFactoryI15CCSHLTVDirectorS0_E
+24CGameSystemStaticFactoryI15CCSScriptSystemS0_E
24CGameSystemStaticFactoryI15CCSWeaponSystemS0_E
24CGameSystemStaticFactoryI15CItemGenerationS0_E
24CGameSystemStaticFactoryI16CFuncMoverSystemS0_E
@@ -7025,6 +7030,7 @@ $light_emissive
>KS[ac5>IU^c+0<LZc
?33s?
???CRR_Response bogus index
+?KA8
@player_start_teleport_destination
@workshop
A CT bot doesn't know what to do while the bomb is planted!\n
@@ -7144,7 +7150,9 @@ APPSYSTEM: In ConnectGameInterfaces(), tried to use different connection modes!\
APPSYSTEM: In ReconnectGameInterface(), tried to use different connection modes!\n
AREA_DAMAGE
ASN1 lib
+ATTACK
ATTACK END\n
+ATTACK2
ATTACKING: %s
AVOID
AVelocity: %.2f %.2f %.2f
@@ -7227,6 +7235,8 @@ Additive Blend
Additive Blend (Masked): %.2f%%
Additive Blend: %.2f%%
AdditiveAnims
+Addon save file exceeds max size setting (%s)\n
+Addon save file reached max size for this server (%s)\n
Adds CSS class(es) to the panel
Adds a team (by index) to the broadcast list
Adds an I/O connection that will call the named function on the passed entity when the specified output fires.
@@ -7432,6 +7442,7 @@ AwardText
Axis
AxisAngleToQuaternion
B-Spline
+BACK
BADFUNCTIONPOINTER
BANG!
BAddToMessage
@@ -7884,6 +7895,7 @@ CCSPointPulseAPI::OnRoundEnd
CCSPointPulseAPI::OnRoundFreezeEnd
CCSPointPulseAPI::OnRoundStart
CCSPointPulseSystem
+CCSScriptSystem
CCSUsrMsg_AdjustMoney_t
CCSUsrMsg_CallVoteFailed_t
CCSUsrMsg_CurrentRoundOdds_t
@@ -8635,6 +8647,7 @@ CS2Bullets
CS2ClientPerfData
CSDamageFlags
CSDamageType
+CSDamageTypes
CSForceTeamThink
CSGO Compute AI Data\n
CSGO: CSGO: Compute Hiding spots [ disabled for survival maps ]\n
@@ -8646,6 +8659,7 @@ CSGO: Compute Hiding spots
CSGOVScriptGameSystem
CSGearSlot
CSHitGroup
+CSInputs
CSLoadoutSlot
CSMovementVelocityQuantizer_t
CSObserverPawn
@@ -9422,6 +9436,7 @@ DSA-SHA1-old
DSA-old
DSO lib
DSO support routines
+DUCK
DUCKING
DVCS
DX11
@@ -10102,6 +10117,7 @@ FLASHBANG: %0.2f \n
FOLLOW
FORCE_DEATH
FORCE_NOT_USED
+FORWARD
FOV2D
FPlayerCanRespawn: pPlayer=0
FX_FireBullets: GetCSWeaponDataFromItem failed for weapon %s\n
@@ -10173,6 +10189,7 @@ Failed to load %s\n
Failed to load KV3 AI Data\n
Failed to load cs_script "%s"\n
Failed to load file: %s\n
+Failed to load map save file %s\n
Failed to open file
Failed to play server side instructor hint: no player specified for hint\n
Failed to precache script entity %s of type %s: script entity instance is null\n
@@ -10193,6 +10210,8 @@ Failed to start replay, requires HTLV to be enabled to work\n
Failed to update networkable loadout\n
Failed to update on remove script entity %s of type %s: script entity instance is null\n
Failed to write %s!\n
+Failed to write '%s' to steam cloud\n
+Failed to write map save file to %s\n
Failed with no pGoalArea and no pGoalPos
Failed with no pStartArea
Failing to submit row for a grenade detonation: Grenade has no weapon info!\n
@@ -10844,6 +10863,7 @@ GetReportedPosition
GetRightVector
GetRootMoveParent
GetRoundsPlayed
+GetSaveData
GetSceneByIndex
GetScore
GetScriptClassForDesignerName
@@ -11154,6 +11174,7 @@ IDEA-ECB
IDEA-OFB
IGNORED due to being marked "Dont save".\n
IGNORED, no across_transition flag & no globalname\n
+IGNORE_ARMOR
IGNORE_ENEMIES
IGameSystem::Init( %-80s ) %8.3f msec
IGameSystem::PostInit( %-80s ) %8.3f msec
@@ -11869,6 +11890,7 @@ Invalid request for mesh %d in model %s with %d entry remapping start table\n
Invalid request for mesh %d in model %s with no remapping table starts\n
Invalid request for mesh %d in model %s with no remapping table\n
Invalid return type from Instance.OnBeforePlayerDamage.\n
+Invalid return type from Instance.OnModifyPlayerDamage.\n
Invalid save, failed to open file\n
Invalid script. No valid imports found.\n
Invalid skirmish '%s' in mp_endmatch_votenextmap_wargames_modes\n
@@ -11923,6 +11945,7 @@ IsFreezePeriod
IsGlowing
IsGrabbable
IsInToolsMode
+IsInputPressed
IsLineBlockedBySmoke
IsMarkedForDeletion
IsMaster
@@ -12050,12 +12073,14 @@ LADDER
LARGE_CENTERED_HULL
LARGE_HULL
LATE
+LEFT
LEFTARM
LEFTLEG
LEVEL DESIGN ERROR: Divide by zero in math_value\n
LEVEL DESIGN ERROR: Entity %s is parented to itself!\n
LOCKED
LOOK_AT_SPOT
+LOOK_AT_WEAPON
LOOK_TOWARDS_SPOT
LOS check failed. Obstructed.
LOST DAMAGE:\t\t
@@ -12154,6 +12179,7 @@ LoadNavMesh: unable to read movable meshes setting 'gravity follows rotation'.\n
LoadSubclasses
LoadThink
Loaded %d rays\n
+Loaded existing workshop save file from %s\n
Loaded server checkpoint %s, starting match with score %d:%d after round %d\n
Loading custom game "%s" with map "%s"\n
Loading script "%s"\n
@@ -13396,6 +13422,7 @@ OnMinPlayerDist2
OnMinPlayerDist3
OnMinPlayerDistAll
OnMixed
+OnModifyPlayerDamage
OnMoneySpent
OnMoneySpentFail
OnMotionEnabled
@@ -14042,6 +14069,7 @@ RC5-CFB
RC5-ECB
RC5-OFB
RDO_AB
+RELOAD
REMOVENORAGDOLL
RESCUE_HOSTAGES
RESOURCE_HANDLE_INVALID
@@ -14064,6 +14092,7 @@ RIFLE1
RIFLE2
RIFLE3
RIFLE4
+RIGHT
RIGHTARM
RIGHTLEG
RIPEMD160
@@ -14429,6 +14458,7 @@ SHA512
SHOCK
SHOTGUN
SHOULD_BE_DESTROYED
+SHOW_SCORES
SKIP (no prior visit of '%s')
SLASH
SLOWBURN
@@ -14544,6 +14574,8 @@ SaveRestoreIO
SaveRestoreIOFiltered
SaveRestoreSyncIO
SaveThink
+Saved to '%s' steam cloud\n
+Saving existing workshop save file from %s\n
Saving game to %s...\n
Saving money for next round.\n
Scale INV R%d <- R%d / R%d
@@ -15264,6 +15296,7 @@ SetRestLength
SetRotateType
SetRotationDistance
SetRotatorTarget
+SetSaveData
SetScale
SetScriptOwnerEntity
SetScrollSpeed
@@ -16429,6 +16462,8 @@ Warp XY
Warp XYZ
Warp Z
Warp attempted for animation with invalid warp events!
+WasInputJustPressed
+WasInputJustReleased
Water.PlayerEnter
Water.PlayerExit
Water: Level %0.3f\n
@@ -16577,6 +16612,7 @@ ZN30CheckAreasOverlappingBreakable6SearchEvEUlR8CNavAreaE_
ZN9CSNavMesh19FindMinimumCostAreaINS_26FarAwayFromPositionFunctorEEEP8CNavAreaS3_RT_EUlRS2_E_
ZNK19CNavObstacleOverlap22AppendElemsForObstacleEyP23CUtlVectorFixedGrowableIjLm64EiEEUlRKjE_
ZNK19CNavObstacleOverlap22AppendObstaclesForElemEjP23CUtlVectorFixedGrowableIyLm32EiEEUlRKyE_
+ZOOM
Z]_abcTZ\_bcLTV[`c@FJS]c-27AQc
Z^`bccUY\`ccMPU\acADIR\c./4=Oc
Zero Pose Task
@@ -22278,6 +22314,7 @@ save/%s/%s.sav
save/%s_%s.kv3.txt
save/*.hl?
saveAndRestore
+save_%s.txt
save_maxarray_spew set to %d\n
save_threshold
savedwep_lastinv
@@ -23883,6 +23920,7 @@ v8::HandleScope::~HandleScope()
v8::Int32::Value() const
v8::Integer::New(v8::Isolate*, int)
v8::Integer::NewFromUnsigned(v8::Isolate*, unsigned int)
+v8::Integer::Value() const
v8::Isolate::Enter()
v8::Isolate::Exit()
v8::Isolate::GetCurrent()
@@ -23937,6 +23975,7 @@ v8::Value::IsObject() const
v8::Value::IsUint32() const
v8::Value::NumberValue(v8::Local<v8::Context>) const
v8::Value::ToInt32(v8::Local<v8::Context>) const
+v8::Value::ToInteger(v8::Local<v8::Context>) const
v8::Value::ToNumber(v8::Local<v8::Context>) const
v8::Value::ToObject(v8::Local<v8::Context>) const
v8::Value::ToString(v8::Local<v8::Context>) const
@@ -24363,6 +24402,7 @@ wm_bodygroup_override
wm_bodygroup_state_override
work item
workshop
+workshop_saves
workthreadpool.cpp
world
world.glass
game/csgo/pak01_dir.txt
modified • +6 / -5 • changes: 11
Show patch
@@ -4437,11 +4437,12 @@ maps/de_train_camera_nodes.kv3 CRC:00c2db3b8b size:26613
maps/de_train_retake.txt CRC:0002fee1a2 size:4826
maps/de_vertigo_camera_nodes.kv3 CRC:003995c8c5 size:16095
maps/de_vertigo_retake.txt CRC:0041f38891 size:4630
-maps/editor/zoo/scripts/chess.vjs_c CRC:005d447f9b size:142965
+maps/editor/zoo/scripts/chess.vjs_c CRC:005adbfaa7 size:143685
maps/editor/zoo/scripts/grenadetraining.vjs_c CRC:0042df3cd1 size:5668
maps/editor/zoo/scripts/hello.vjs_c CRC:0085031ac4 size:919
+maps/editor/zoo/scripts/input.vjs_c CRC:0077381b08 size:2301
maps/editor/zoo/scripts/mdlchange.vjs_c CRC:0025d1e734 size:2582
-maps/editor/zoo/scripts/setup.vjs_c CRC:001bf897ce size:1365
+maps/editor/zoo/scripts/setup.vjs_c CRC:000d9de9d7 size:1350
maps/editor/zoo/scripts/trace.vjs_c CRC:00388091aa size:6616
maps/workshop_compatibility_versions.txt CRC:0026cd2bf9 size:1428
materials/anubis/anubis_water_canal.vmat_c CRC:007e7b5225 size:5763
@@ -78645,9 +78646,9 @@ resource/csgo_koreana.txt CRC:0094ae07a7 size:4822017
resource/csgo_latam.txt CRC:0088605eef size:4901995
resource/csgo_norwegian.txt CRC:00155c7d7f size:4656283
resource/csgo_polish.txt CRC:00ea6940aa size:5042271
-resource/csgo_portuguese.txt CRC:0070428009 size:4797723
+resource/csgo_portuguese.txt CRC:0006399b4f size:4797727
resource/csgo_romanian.txt CRC:0011ba6df7 size:4991821
-resource/csgo_russian.txt CRC:0043a2d0a3 size:6235328
+resource/csgo_russian.txt CRC:009cc7b664 size:6234936
resource/csgo_schinese.txt CRC:00d0741e1a size:4648471
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
resource/csgo_spanish.txt CRC:00bc293312 size:4864560
@@ -78808,7 +78809,7 @@ scripts/talker/swat_fem.vrr_c CRC:00c4cdd7b0 size:22650
scripts/tools/anim_preview_archetypes.vdata_c CRC:00d242f917 size:6878
scripts/tools/game_asset_tags.vdata_c CRC:00559be7bf size:2755
scripts/weapons.vdata_c CRC:009e00c0ab size:32148
-scripts/workshop_cvar_whitelist.txt CRC:007ee7ec6e size:17545
+scripts/workshop_cvar_whitelist.txt CRC:00f5d54e5d size:17584
smartprops/bicycle/bicycle_rack.vsmart_c CRC:0097f4a6c4 size:1423
smartprops/bicycle/bicycle_single.vsmart_c CRC:001f5c91ad size:1628
smartprops/debris/debris_ceiling_tiles_01.vsmart_c CRC:00c0a90e2e size:2600
game/csgo/pak01_dir/maps/editor/zoo/scripts/chess.js
modified • +33 / -11 • changes: 44
Show patch
@@ -303,7 +303,7 @@ function ChessJS() {
["A", "Z"],
],
false,
- false
+ false,
);
var peg$e6 = peg$otherExpectation("tag value");
var peg$e7 = peg$classExpectation(['"'], true, false);
@@ -1390,7 +1390,7 @@ function ChessJS() {
throw peg$buildStructuredError(
peg$maxFailExpected,
peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
- peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
+ peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos),
);
}
}
@@ -3468,7 +3468,7 @@ function ChessJS() {
};
}
-const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE } = ChessJS();
+const { BISHOP, BLACK, Chess, DEFAULT_POSITION, KING, KNIGHT, Move, PAWN, QUEEN, ROOK, SEVEN_TAG_ROSTER, SQUARES, WHITE, validateFen } = ChessJS();
let chess = new Chess();
@@ -3497,13 +3497,7 @@ async function RunChess() {
while (!chess.isGameOver()) {
await Delay(0);
- let move;
- if (chess.turn() === BLACK) {
- move = await AIMove();
- } else {
- move = await AIMove();
- }
-
+ const move = await AIMove();
await AnimateMove(move);
}
@@ -3667,6 +3661,7 @@ async function AIMove() {
undosNeeded--;
}
chess.move(bestMove);
+ writeSaveKey("chess", chess.fen());
return bestMove;
}
@@ -3737,7 +3732,17 @@ function GetFitness(color) {
/** @param {Chess?} oldChess */
function Init(oldChess) {
- if (oldChess && !oldChess.isGameOver()) chess = oldChess;
+ if (oldChess) {
+ if (!oldChess.isGameOver()) {
+ chess = oldChess;
+ }
+ } else {
+ // Check if save data exists. Because script_zoo is not a workshop addon it won't find any unless the user ran with "-addon".
+ const saveData = readSaveKey("chess");
+ if (validateFen(saveData).ok) {
+ chess.load(saveData);
+ }
+ }
FindCenters();
Instance.SetNextThink(Instance.GetGameTime());
}
@@ -3784,3 +3789,20 @@ function shuffle(arr) {
}
return arr;
}
+
+// Allows multiple scripts to use the same save without stepping on each other's toes
+function readSaveKey(key) {
+ const data = Instance.GetSaveData();
+ try {
+ return JSON.parse(data)[key];
+ } catch {}
+ return "";
+}
+function writeSaveKey(key, value) {
+ let json = {};
+ try {
+ json = JSON.parse(Instance.GetSaveData());
+ } catch {}
+ json[key] = value;
+ Instance.SetSaveData(JSON.stringify(json));
+}
game/csgo/pak01_dir/maps/editor/zoo/scripts/input.js
added • +42 / -0 • changes: 42
Show patch
@@ -0,0 +1,42 @@
+import { Instance, CSInputs, CSPlayerPawn } from "cs_script/point_script";
+
+const CSInputsValues = Object.values(CSInputs).filter((i) => typeof i === "number");
+
+/** @type {CSPlayerPawn | undefined} */
+let inputPawn = undefined;
+
+Instance.OnPlayerChat(({ player, text }) => {
+ if (text === "!showinput") {
+ inputPawn = inputPawn == player?.GetPlayerPawn() ? undefined : player?.GetPlayerPawn();
+ }
+});
+
+/**
+ * @param {string} name
+ * @param {(input:CSInputs) => boolean} getter
+ * @param {number} x
+ * @param {number} y
+ */
+function printInputType(name, getter, x, y) {
+ const inputs = CSInputsValues.filter(getter).map((i) => CSInputs[i]);
+ let inputText = inputs.length === 0 ? "NONE" : inputs.join("|");
+ Instance.DebugScreenText({ text: `${name}: ${inputText}`, x, y });
+}
+
+/**
+ * @param {CSPlayerPawn | undefined} pawn
+ */
+function printInput(pawn) {
+ if (pawn) {
+ printInputType("Pressed", pawn.IsInputPressed.bind(pawn), 100, 500);
+ printInputType("Just Pressed", pawn.WasInputJustPressed.bind(pawn), 100, 510);
+ printInputType("Just Released", pawn.WasInputJustReleased.bind(pawn), 100, 520);
+ }
+}
+
+Instance.OnActivate(() => Instance.SetNextThink(Instance.GetGameTime()));
+Instance.OnScriptReload({ after: () => Instance.SetNextThink(Instance.GetGameTime()) });
+Instance.SetThink(() => {
+ Instance.SetNextThink(Instance.GetGameTime());
+ printInput(inputPawn);
+});
game/csgo/pak01_dir/maps/editor/zoo/scripts/setup.js
modified • +2 / -2 • changes: 4
Show patch
@@ -1,4 +1,4 @@
-import { CSDamageFlags, CSLoadoutSlot, Instance } from "cs_script/point_script";
+import { CSDamageFlags, Instance } from "cs_script/point_script";
Instance.ServerCommand("mp_warmup_offline_enabled 1");
Instance.ServerCommand("mp_warmup_pausetimer 1");
@@ -9,7 +9,7 @@ Instance.OnPlayerActivate(({ player }) => {
Instance.ServerCommand("bot_add");
});
-Instance.OnBeforePlayerDamage(({ player }) => {
+Instance.OnModifyPlayerDamage(({ player }) => {
if (player.GetOriginalPlayerController().IsBot()) {
return { damageFlags: CSDamageFlags.PREVENT_DEATH };
}
game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt
modified • +3 / -0 • changes: 3
Show patch
@@ -521,6 +521,9 @@
"sv_gameinstructor_enable",
"sv_gameinstructor_disable",
"radio",
+ "radio1",
+ "radio2",
+ "radio3",
"player_ping",
"mp_teamlogo_1",
"mp_teamlogo_2",
game/csgo/readonly_tools_asset_info.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -123033,3 +123033,4 @@ panorama/images/map_icons/map_icon_de_stronghold.vsvg
panorama/images/map_icons/map_icon_de_warden.vsvg
panorama/videos/limited_edition_variations.webm
scripts/workshop_cvar_whitelist.txt
+maps/editor/zoo/scripts/input.vjs
game/csgo/steam.inf
modified • +6 / -6 • changes: 12
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000735
-ServerVersion=2000735
-PatchVersion=1.41.3.6
+ClientVersion=2000738
+ServerVersion=2000738
+PatchVersion=1.41.3.7
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=10470435
-VersionDate=Feb 23 2026
-VersionTime=15:06:02
+SourceRevision=10477407
+VersionDate=Feb 25 2026
+VersionTime=13:52:57
game/csgo_core/gameinfo.gi
modified • +5 / -0 • changes: 5
Show patch
@@ -145,6 +145,11 @@
NetworkSystem
{
+ PublicUniverse
+ {
+ "NetworkConfigLimits" "1"
+ }
+
BetaUniverse
{
"FakeLag" "40"
game/csgo_core/gameinfo_branchspecific.gi
modified • +1 / -0 • changes: 1
Show patch
@@ -7,6 +7,7 @@
FileSystem
{
+ ForceFixedAppIds 1
SteamAppId 730
BreakpadAppId 2347771
BreakpadAppId_Tools 2347779
23.2.2026, 23.38.41
Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).
Files changed: 37 • +382 / -292
scriptsuilocalizationassetsmisccontent-change
Changed files
DumpSource2/convars.txt
modified • +3 / -0 • changes: 3
Show patch
@@ -466,6 +466,9 @@ bot_debug 0 (gamedll cheat)
bot_debug_target 0 (gamedll cheat)
For internal testing purposes.
+bot_defense_rush_chance 33 (gamedll cheat)
+ Are the defense bots going to rush.
+
bot_defer_to_human_goals false (gamedll release commandline_enforced)
If nonzero and there is a human on the team, the bots will not do the scenario tasks.
Protobufs/source2_steam_stats.proto
modified • +19 / -0 • changes: 19
Show patch
@@ -170,3 +170,22 @@ message CSource2Metrics_RecordPlayStats_Notification {
repeated .CMsgSource2PlayStatsPackedRecordList record_types = 1;
optional uint32 appid = 2;
}
+
+message CSource2Metrics_FetchMapData_Request {
+ optional uint32 appid = 1;
+ optional string map_name = 2;
+ optional uint32 game_type = 3;
+ optional uint32 game_mode = 4;
+ optional string param = 5;
+ optional uint32 time_span = 6;
+}
+
+message CSource2Metrics_FetchMapData_Response {
+ message MapData {
+ optional string name = 1;
+ optional string type = 2;
+ optional string data = 3;
+ }
+
+ repeated .CSource2Metrics_FetchMapData_Response.MapData results = 1;
+}
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-10439824
+10470273
game/bin/linuxsteamrt64/libengine2_strings.txt
modified • +6 / -2 • changes: 8
Show patch
@@ -1667,7 +1667,7 @@ $lZT
20ISource2ServerConfig
20ISource2WorldSession
20PacketEntitiesFilter
-21:37:27
+21:54:28
21C2S_CONNECT_Message_t
21CCLCMsg_BaselineAck_t
21CEngineGotvSyncPacket
@@ -1952,9 +1952,11 @@ $lZT
36CMsgSource2PlayStatsPackedRecordList
36CNETMsg_SpawnGroup_SetCreationTick_t
36CSource1InputHandlerPreClientHandler
+36CSource2Metrics_FetchMapData_Request
37CCompressedResourceManifestRefCounted
37CMetaDuplicationAutoCompletionFunctor
37CSource1InputHandlerPostClientHandler
+37CSource2Metrics_FetchMapData_Response
37CVConsole2FlattenedSerializerListener
37CWaitForGameServerStartupPrerequisite
37IKV3TransferInterface_Worldspace_Load
@@ -1994,6 +1996,7 @@ $lZT
456789:;<=
45CMsgSource2PlayStatsPackedRecordList_FieldDef
45CNetworkServerSpawnGroup_AllocatePrerequisite
+45CSource2Metrics_FetchMapData_Response_MapData
45CSource2Metrics_MatchPerfSummary_Notification
476\r
488:1: POS_FLOATLITERAL : ( ( DIGIT )+ '.' ( DIGIT )* ( EXPONENT )? | '.' ( DIGIT )+ ( EXPONENT )? | ( DIGIT )+ EXPONENT );
@@ -4544,7 +4547,7 @@ Failure
False
FastHexToBuffer() wants non-negative integers, not
Features
-Feb 9 2026
+Feb 23 2026
February
Feel free to add support for more if you need it.
Field "
@@ -8212,6 +8215,7 @@ ThreadGetProcessPriority
ThreadInMainThread
ThreadInPrimaryOrSecondaryMainThread
ThreadNanoSleep
+ThreadSetPerfSetAffinity
ThreadSetPriority
ThreadSetProcessPriority
ThreadSleep
game/bin/linuxsteamrt64/liblocalize_strings.txt
modified • +2 / -1 • changes: 3
Show patch
@@ -144,7 +144,6 @@
+Inf
-Inf
/resource/valve_
-0qe`(
12CRefCounted1I23ILocalizeCompiledString20CRefCountServiceBaseI6CRefMTEE
14CBaseAppSystemI9ILocalizeE
15CTier0AppSystemI9ILocalizeLx0EE
@@ -157,6 +156,7 @@
34CLocalizeCompiledStringSinglePlain
35CLocalizeCompiledStringLocVariables
36CLocalizeCompiledStringMessageFormat
+4k4$
9CLocalize
9ILocalize
:help
@@ -332,6 +332,7 @@ es-419
es_419
es_ES
fi_FI
+file://
finnish
fr_FR
french
game/bin/linuxsteamrt64/libmaterialsystem2_strings.txt
modified • +21 / -21 • changes: 42
Show patch
@@ -653,7 +653,7 @@ ZN37CTypesafeIntrospectedToKV3TypeManagerILy500152889462E24PostProcessingResourc
\n*** Unable to parse Version in HEADER section of %s!\n\n
\n*** Unknown rule "%s" in %s!\n\n
\n*** Unknown text found in FEATURES section in %s: "%s"\n\n
-\n*** material2.cpp(1570): Error! Trying to load material "%s" without any params!\n
+\n*** material2.cpp(1548): Error! Trying to load material "%s" without any params!\n
\n*** vfx_common.cpp(1410): Error opening file "%s"!\n\n
\n*** vfx_common.cpp(1487): Error opening file "%s"!\n\n
\n*** vfx_common.cpp(5867): Error opening file "%s"!\n\n
@@ -674,18 +674,18 @@ ZN37CTypesafeIntrospectedToKV3TypeManagerILy500152889462E24PostProcessingResourc
\n\t%02i%% (%i/%i)
\n\t\tDynamic:
\nmaterial2.cpp(119): ERROR! Can't load vfx_dx dll, dynamic shader compile unavailable!\n
-\nmaterial2.cpp(1565): Error! Material "%s" is already loaded!\n
-\nmaterial2.cpp(1599): Cannot find shader entry in material "%s"! Using error.vfx!\n
-\nmaterial2.cpp(1642): Error creating shader %s and cannot load error.vfx instead!\n
-\nmaterial2.cpp(1681): Error creating fallback shader %s for %s for material %s! A fallback shader cannot fallback to a different shader!\n
-\nmaterial2.cpp(1693): Error creating fallback shader %s for %s for material %s!\n
-\nmaterial2.cpp(1697): Error creating fallback shader %s for %s and cannot load error.vfx instead!\n
-\nmaterial2.cpp(1724): Error creating shader %s for material %s!\n
-\nmaterial2.cpp(1729): Error creating shader %s and cannot load error.vfx instead!\n
-\nmaterial2.cpp(1739): Error creating static combos for shader %s and error.vfx instead!\n
-\nmaterial2.cpp(2868): Dynamic shader compile failed for %s in material "%s"!\n
-\nmaterial2.cpp(3590): All bad! The error material failed in dynamic shader compile!\n
-\nmaterial2.cpp(4414): Find a graphics programmer! Trying to bind a "%s" shader that doesn't exist! for %s\n
+\nmaterial2.cpp(1543): Error! Material "%s" is already loaded!\n
+\nmaterial2.cpp(1577): Cannot find shader entry in material "%s"! Using error.vfx!\n
+\nmaterial2.cpp(1620): Error creating shader %s and cannot load error.vfx instead!\n
+\nmaterial2.cpp(1659): Error creating fallback shader %s for %s for material %s! A fallback shader cannot fallback to a different shader!\n
+\nmaterial2.cpp(1671): Error creating fallback shader %s for %s for material %s!\n
+\nmaterial2.cpp(1675): Error creating fallback shader %s for %s and cannot load error.vfx instead!\n
+\nmaterial2.cpp(1702): Error creating shader %s for material %s!\n
+\nmaterial2.cpp(1707): Error creating shader %s and cannot load error.vfx instead!\n
+\nmaterial2.cpp(1717): Error creating static combos for shader %s and error.vfx instead!\n
+\nmaterial2.cpp(2843): Dynamic shader compile failed for %s in material "%s"!\n
+\nmaterial2.cpp(3565): All bad! The error material failed in dynamic shader compile!\n
+\nmaterial2.cpp(4389): Find a graphics programmer! Trying to bind a "%s" shader that doesn't exist! for %s\n
\src\shaders\
\t\tStatic:
^^^ Attribute-based texture warning is now disabled after outputting 50 warnings.\n
@@ -981,14 +981,14 @@ mat_print_materials %s -show_none
mat_print_shader_info %s -show_used_combos
mat_print_shader_info %s -show_used_combos -%s
material2.cpp
-material2.cpp(1638): Error creating shader %s for material %s!\n
-material2.cpp(2460): DxSupportLevel %d not supported!\n
-material2.cpp(3175): Failed call to FindOrLoadStaticComboData()!\n
-material2.cpp(660): Material "%s" is requesting a bad mode "%s"!\n
-material2.cpp(783): Error! Material "%s" doesn't have any valid layers to get the CVsInputSignatureVector from!\n
-material2.cpp(815): Error! Material "%s" doesn't have a CVsInputSignatureVector!\n
-material2.cpp(833): Error! Material "%s" has invalid signature index %d!\n
-material2.cpp:2811
+material2.cpp(1616): Error creating shader %s for material %s!\n
+material2.cpp(2435): DxSupportLevel %d not supported!\n
+material2.cpp(3150): Failed call to FindOrLoadStaticComboData()!\n
+material2.cpp(644): Material "%s" is requesting a bad mode "%s"!\n
+material2.cpp(767): Error! Material "%s" doesn't have any valid layers to get the CVsInputSignatureVector from!\n
+material2.cpp(799): Error! Material "%s" doesn't have a CVsInputSignatureVector!\n
+material2.cpp(817): Error! Material "%s" has invalid signature index %d!\n
+material2.cpp:2786
material_shader_params.cpp(1002): Unknown variable type for %s in material "%s"!\n
material_shader_params.cpp(1047): Invalid data type for render state variable %s in material "%s"!\n
material_shader_params.cpp(1100): Invalid data type for render state variable %s in material "%s"!\n
game/bin/linuxsteamrt64/libpanoramauiclient_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -2106,6 +2106,7 @@ program
progress
pthread_cancel
purple
+qd$6
radial
radial(
rebeccapurple
game/bin/linuxsteamrt64/libpulse_system_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -133,7 +133,6 @@
49PulseSystemEventObservableVariableSourceChanged_t
50PulseSystemEventObservableVariableListenerNotify_t
56CPulseGraphInstance_TestDomain_UseReadOnlyBlackboardView
-8R\S
<No Cell>
<map_key>
<map_value>
game/bin/linuxsteamrt64/libsteamnetworkingsockets_strings.txt
modified • +3 / -5 • changes: 8
Show patch
@@ -534,14 +534,14 @@ $d`D-laM
/data/src/steamnetworkingsockets/clientlib/steam/csteamnetworkingsockets_steampartner.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_connections.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_connections.h
+/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_ice_client.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.h
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p.h
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.h
-/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_stun.cpp
/data/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_udp.cpp
/data/src/steamnetworkingsockets/sdr/steamdatagram_network_config.cpp
/data/src/steamnetworkingsockets/sdr/steamdatagram_network_config.h
@@ -572,6 +572,7 @@ $d`D-laM
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./
08bX
0Z@q
+0\7!6w#
0\n(legacy_authorized_client_identity_binary
0\n,k_ESteamDatagramMsg_GameserverSessionRequest
0\r0#0)070;0U0Y0[0g0q0y0}0
@@ -772,7 +773,6 @@ $d`D-laM
99Ov
99rKJJ
9<n\nM
-9H@T
9IGv
9\n\noneof_decl
9eZI
@@ -3156,9 +3156,7 @@ Fatal Assertion Failed: EVP_EncryptFinal_ex( ctx, pOut, &nBytesWritten ) == 1
Fatal Assertion Failed: EVP_EncryptInit_ex( ctx, nullptr, nullptr, nullptr, (const uint8*)pIV ) == 1
Fatal Assertion Failed: EVP_EncryptUpdate( ctx, nullptr, &nBytesWritten, (const uint8*)pAdditionalAuthenticationData, (int)cbAuthenticationData ) == 1
Fatal Assertion Failed: EVP_EncryptUpdate( ctx, pOut, &nBytesWritten, (const uint8*)pPlaintextData, (int)cbPlaintextData ) == 1
-Fatal Assertion Failed: EVP_PKEY_derive(ctx, bufSharedSecret, &skeylen ) == 1
Fatal Assertion Failed: EVP_PKEY_derive_init(ctx) == 1
-Fatal Assertion Failed: EVP_PKEY_derive_set_peer(ctx, peerkey) == 1
Fatal Assertion Failed: GetRawData( privateKey ) == 32
Fatal Assertion Failed: GetRawData( publicKey ) == 32
Fatal Assertion Failed: SetRawDataAndWipeInput( tmp, cbData )
@@ -7995,7 +7993,7 @@ legacy_your_public_port
length is greater than %ld\n
length too long
level_add_node
-lib Oct 2 2025 23:55:42
+lib Feb 10 2026 01:04:29
lib(%lu)
librt.so.1
libstdc++.so.6
game/bin/linuxsteamrt64/libtier0_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -6472,6 +6472,7 @@ _txnal_logic_error_get_msg(void*)
_txnal_runtime_error_get_msg(void*)
_txnal_sso_string_c_str(void const*)
_wWT+
+a lz
a?y#c?sIe?
aC.B
aG0"
@@ -7326,7 +7327,6 @@ l<}2l
lDa>
lQ?2
lR(g
-l^g%B
labM
large
large:
game/bin/linuxsteamrt64/libvconcomm_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -30,7 +30,6 @@ Clearing %d buffered messages of %d bytes\n
Clients %d of %d:\n
Connection in progress...\n
Connection will timeout in %d seconds...\n
-Dd6/q
Invalid connection type.
List connections
Make VConsole Foreground(): ReturnToWindow:0x%p, Timeout:%d, UseHostPath:%d\n
game/bin/linuxsteamrt64/libvphysics2_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -406,7 +406,6 @@
<tr><td>Set <b>ON</b></td>
<ul><li><font color="cyan">"%s"(%d)</font></li><li><font color="green">"%s"(%d)</font></li></ul>
?unsupported?
-A4juu
ATTACHMENT_INFLUENCE_FLAGS_NONE
Accelerate
AddMultipleToTail
game/bin/linuxsteamrt64/libworldrenderer_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -154,6 +154,7 @@ Not safe to 'new' this class due to alignment requirements
NumCols() <= V_ARRAYSIZE( s_DummyRow )
Physics
PushCurrentSkewBrightnessValuesToSceneObject
+QAw#Z
RESOURCE_TYPE_ENTITY_LUMP
RESOURCE_TYPE_WORLD
RESOURCE_TYPE_WORLD_NODE
@@ -195,7 +196,6 @@ ZN37CTypesafeIntrospectedToKV3TypeManagerILy431366240118E11WorldNode_tE15Allocat
ZN37CTypesafeIntrospectedToKV3TypeManagerILy431366240118E11WorldNode_tE24DeallocateDestroyCleanupEPvP25IResourceDeallocatorUtilsE17CDeallocatorUtils
ZN37CTypesafeIntrospectedToKV3TypeManagerILy495874631030E20PermEntityLumpData_tE15AllocateAndLoadER23CKV3TransferLoadContextPK21ResourceBindingBase_tP29IRD_RegisterResourceDataUtilsE15CAllocatorUtils
ZN37CTypesafeIntrospectedToKV3TypeManagerILy495874631030E20PermEntityLumpData_tE24DeallocateDestroyCleanupEPvP25IResourceDeallocatorUtilsE17CDeallocatorUtils
-\Q1JO\v^
\nLoaded List:\n
\nPending List:\n
\tWorld: %s
game/bin/win64/assetrename_strings.txt
modified • +6 / -7 • changes: 13
Show patch
@@ -470,6 +470,7 @@ $x(<*L(^$*.d$40.2Z$D6@$Q
&nbsp;&nbsp;There is one code reference that may need to be manually fixed:<br>\n
&nbsp;&nbsp;There is one code reference that will need to be manually fixed:<br>\n
&nbsp;&nbsp;VMDL File saved: %s<br>\n
+&nbsp;&nbsp;VTEX File saved : %s<br>\n
'%s' is not a valid variable type
'OverrideClass' was specified but class '%s' has not been previously defined.\n
'\n#k_EProtoDebugVisibility_ValveServer
@@ -14492,6 +14493,7 @@ $x(<*L(^$*.d$40.2Z$D6@$Q
<font color=red>&nbsp;&nbsp;ERROR: Failed to read VTEX file.</font><br>\n
<font color=red>&nbsp;&nbsp;ERROR: Failed to read file.</font><br>\n
<font color=red>&nbsp;&nbsp;ERROR: Failed to save kv1: %s.</font><br>\n
+<font color=red>&nbsp;&nbsp;ERROR: Failed to save kv3 to buffer: %s.</font><br>\n
<font color=red>&nbsp;&nbsp;ERROR: Failed to save kv3: %s.</font><br>\n
<font color=red>&nbsp;&nbsp;ERROR: Failed to write fixed-up data %s</font><br>\n
<font color=red>ERROR: Failed to load file %s.</font><br>\n
@@ -16811,7 +16813,6 @@ CDmeDag::GetParentWorldMatrix called on a dag that has different rotation and tr
CDmeDotaTileGrid
CDmeDrawCallSnapshot
CDmeImageProcessor
-CDmeInputTexture
CDmeLog: interpolable type %s doesn't have an interpolation function!
CDmeNavData
CDmeNodeInstanceData
@@ -19110,6 +19111,7 @@ DriverBone
DumpModeDecode: Not enough data for scanline %d
Duplicate a UV Map texcoord channel
Duplicate attribute name %s encountered!\n
+Duplicate bone %d renamed :: "%s" -> "%s"\n
Duplicate child mesh name
Duplicate hit group (%s) specified in destructible parts system data. Please fix.
Duplicate model config '%s'
@@ -25411,8 +25413,6 @@ Zpm"U
\ng default\n
\nh?oT
\nk>oB
-\r&nbsp;&nbsp;VTEX File saved : %s<br>\n
-\r<font color=red>&nbsp;&nbsp;ERROR: Failed to save kv3 to buffer: %s.</font><br>\n
\r?darker@QColor@@QEBA?AV1@H@Z
\r?event@QObject@@UEAA_NPEAVQEvent@@@Z
\r?eventFilter@QObject@@UEAA_NPEAV1@PEAVQEvent@@@Z
@@ -25427,7 +25427,7 @@ Zpm"U
\r?information@QMessageBox@@SA?AW4StandardButton@1@PEAVQWidget@@AEBVQString@@1V?$QFlags@W4StandardButton@QMessageBox@@@@W421@@Z
\r?information@QMessageBox@@SA?AW4StandardButton@1@PEAVQWidget@@AEBVQString@@1W421@2@Z
\r?initPainter@QWidget@@MEBAXPEAVQPainter@@@Z
-\rDuplicate bone %d renamed :: "%s" -> "%s"\n
+\rCDmeInputTexture
\rGraph Object is null
\rModelDoc
\r\f?focusInEvent@QLineEdit@@MEAAXPEAVQFocusEvent@@@Z
@@ -25440,8 +25440,9 @@ Zpm"U
\r\n\tTYPE_ENUM
\r\r?heightForWidth@QGridLayout@@UEBAHH@Z
\r\tV_expf
+\rinvalid bone index(%d) specified, valid range[0:%d]\n
\rp\f`\v0\nP!'\f
-\rsmartprop2
+\rvsmart
\src\shaders\
\t2t4J6$"$
\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z
@@ -28153,7 +28154,6 @@ interpolator_right
interpretation
interrupted
intmap
-invalid bone index(%d) specified, valid range[0:%d]\n
invalid compound data group
invalid hash bucket count
invalid header in CprImpl(Compound)
@@ -31542,7 +31542,6 @@ vs_5_0
vs_6_0
vscale
vsky
-vsmart
vsubgrph
vsutils_py
vtex
game/bin/win64/cs_mdl_import.exe_strings.txt
modified • +17 / -19 • changes: 36
Show patch
@@ -7364,30 +7364,34 @@ $prefix_element$
/yQA
0 0 0
0 0 0 255
-00H@
0123456789abcdefghijklmnopqrstuvwxyz
016@
019@
02P@
02w@
031@
+03H@
+04H@
04a@
073@
+07H@
07b@
08T@
+09w@
0A8@
0AW@
-0BH@
0BT@
+0DH@
0E>X
0ET@
0EZ@
+0Gw@
0HT@
0J6@
+0Jw@
0KQ@
0LT@
0M5@
-0Mw@
0SS@
0U9@
0UN@
@@ -7401,9 +7405,12 @@ $prefix_element$
0i4@
0iN>/
0iT@
+0jw@
+0kw@
+0mw@
0nS@
+0ow@
0pT@
-0sw@
0w1@
0wL@
0wP@
@@ -13131,17 +13138,14 @@ Overrides the target VSNAP resource (defaults to "particles/models/%model_name%/
Overwrite all bone data
Overwrite existing flags only
Overwriting existing wrinkle map data on mesh
-P0H@
P0R@
P1w@
P2M@
P2v@
P3N@
P46@
P4File
-P4H@
P58@
-P5w@
P6M@
P6v@
P7E@
@@ -13169,11 +13173,11 @@ PATTACH_RENDERORIGIN_FOLLOW
PATTACH_ROOTBONE_FOLLOW
PATTACH_WATERWAKE
PATTACH_WORLDORIGIN
-PBH@
PBM@
PBW@
PCW@
PE7@
+PEw@
PFNoiseModifier_t
PFNoiseTurbulence_t
PFNoiseType_t
@@ -13259,7 +13263,6 @@ PInstruction_t<41>::Run
PInstruction_t<42>::Run
PJT@
PKT@
-PKw@
PLATFORM
PMS@
PMZ@
@@ -13545,9 +13548,7 @@ Pitch Friction
Pitch Yaw Roll
Pitch Yaw Roll Max
PivotPaint
-Piw@
PixarLog
-Pkw@
Place On Attachment
Place On Bone
Place on Floor
@@ -13627,8 +13628,6 @@ Plat_VirtualAlloc
Plat_VirtualFree
Plat_WindowToOsSpecificHandle
Play End Cap Effect
-Plw@
-Pnw@
Po8@
Point
Point 0
@@ -13683,7 +13682,6 @@ PosterSettings
Posture
Power scale for applying the supplemental ambient occlusion map.
Pp8@
-Ppw@
Pre-Age Noise
Pre-Clear Selection
Precision Degrees
@@ -13743,7 +13741,6 @@ PropertyEditorSystem_001
Prune pieces < error threshold
PsJ@
PsM@
-Ptw@
Pull towards control point
Pulse
Pulse Graph
@@ -20406,32 +20403,34 @@ owM&
owner dead
ownerlog
owns_polymorphic_data
+p0H@
p10@
+p1H@
p2S@
p3a@
p3b@
p46@
-p4H@
p4lib
p5F@
p71@
-p7H@
p7b@
p8H@
p9T@
+pBH@
+pCH@
pCT@
pCheckpointName
pDescription
pEb@
pFZ@
pGN@
+pIw@
pM0@
pM5@
pMessage
pO6@
pOb@
pQ7@
-pRw@
pSb@
pTG@
pTagName
@@ -20497,7 +20496,6 @@ pathclass
pathnode
pathnodeclass
pattern
-pcw@
peP@
peT@
peak
game/bin/win64/csgocfg.exe_strings.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -410,7 +410,7 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
/src/
0iN>/
11Y@
-13:36:50
+13:57:21
1:1: Tokens : ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );
1AcceptIfItemPicked()
1OnAccept()
@@ -1603,7 +1603,7 @@ Failed to load layered mod '%s'. %s
Failed to map from %s to content-path\n
Failed to map from %s to game-path\n
Failed to parse KeyValues
-Feb 9 2026
+Feb 23 2026
February
FileSystem
FileSystem/SearchPaths
game/bin/win64/resourcecompiler_strings.txt
modified • +4 / -5 • changes: 9
Show patch
@@ -20681,7 +20681,6 @@ $prefix_element$
0\r%0t
0\r0#0)070;0U0Y0[0g0q0y0}0
0\tV_isfinited
-0d,Y
0e\r8
0iN>/
0pp@5tqE?|sO541
@@ -20713,7 +20712,7 @@ $prefix_element$
12'0
1280x720
12v)
-13:41:00
+13:59:27
14 (default)
15\tr\
16-byte data pool
@@ -21279,7 +21278,7 @@ $prefix_element$
?FixSlashes@CUtlString@@QEAAXD@Z
?FixupPathName@CBufferString@@QEAAPEBDD@Z
?FixupPathName@CUtlString@@QEAAXXZ
-?Foot Cycle Override start frame is larger than the number of frames
+?Foot Cycle Override toe lift frame is larger than the number of frames
?ForEachInBox@CVertexKDTree@@QEBAXAEBV?$Vec3D@M@@0AEBV?$function@$$A6AXPEBM@Z@std@@H@Z
?Format@CBufferString@@QEAAHPEBDZZ
?Format@CUtlString@@QEAAHPEBDZZ
@@ -29448,10 +29447,10 @@ Foot Cycle Override heel land frame is larger than the number of frames
Foot Cycle Override heel land frame is less than zero
Foot Cycle Override heel lift frame is larger than the number of frames
Foot Cycle Override heel lift frame is less than zero
+Foot Cycle Override start frame is larger than the number of frames
Foot Cycle Override start frame is less than zero
Foot Cycle Override toe land frame is larger than the number of frames
Foot Cycle Override toe land frame is less than zero
-Foot Cycle Override toe lift frame is larger than the number of frames
Foot Cycle Override toe lift frame is less than zero
Foot Lock node (%s): Failed to find foot with name "%s"
Foot Lock node (%s): No feet defined; node will do nothing
@@ -47312,7 +47311,7 @@ pbeWithSHA1And40BitRC2-CBC
pbeWithSHA1And40BitRC4
pbeWithSHA1AndDES-CBC
pbeWithSHA1AndRC2-CBC
-pc64 Feb 9 2026 13:40:52
+pc64 Feb 23 2026 13:59:31
pcPathLengthConstraint
peak_attr
peak_cycle
game/bin/win64/resourceinfo.exe_strings.txt
modified • +71 / -68 • changes: 139
Show patch
@@ -1187,10 +1187,11 @@ $prefix_element$
093@
0;Q5[
0<cz
-0B6@
0C3@
0C5@
0D5@
+0E6@
+0G6@
0H3@
0I3@
0I6@
@@ -1200,41 +1201,46 @@ $prefix_element$
0M5@
0MD5
0N3@
+0N6@
0O4@
-0O6@
0P4@
-0P6@
+0Q6@
0R3@
0T3@
0U3@
0W/5
0W4@
0X3@
0X4@
+0X6@
0Y3@
-0Y6@
0Z@q
0\r0#0)070;0U0Y0[0g0q0y0}0
0b3@
-0b6@
0c3@
+0c6@
0d3@
0e3@
+0e6@
0e\r8
+0f6@
0h3@
0i3@
0i6@
0iN>/
0k3@
+0k6@
+0l6@
+0n6@
0pp@5tqE?|sO541
0q3@
0q6@
0r3@
+0t6@
0tU+xc:
-0w6@
+0u6@
0x%llx
-0y6@
-0z6@
+0x6@
0}dV
1!1'1-191C1E1K1]1a1g1m1s1
1#IND
@@ -1405,15 +1411,15 @@ $prefix_element$
8<pl
8= zp
8A3@
+8A6@
8A6j
8B3@
-8C6@
8ClipBoard
8Csinf
-8D6@
8E3@
8E5@
8F5@
+8F6@
8G5@
8GZS
8H5@
@@ -1424,36 +1430,33 @@ $prefix_element$
8N5@
8O3@
8P3@
+8P6@
8Q3@
8S3@
8SIffK5W
8TZvrv<
8V3@
8W3@
8W6@
+8Y6@
8Z3@
-8Z6@
8\v8!83858A8G8K8S8W8_8e8o8q8}8
8]Vc2
8a6@
8b3@
-8c6@
8ca1
-8d6@
8dS2
-8j6@
-8l6@
+8g6@
8m3@
8n3@
8o3@
8o6@
8p3@
8pe7?
8q-S*]X
-8r6@
-8s6@
8sOy
-8x6@
+8w6@
+8y6@
9#9%9)9/9=9A9M9[9k9y9}9
9)PF
9)jx
@@ -3754,12 +3757,13 @@ H8xp
H=`HY
H@H9xqI
HA3@
-HA6@
HB3@
HBJ\nTRF
HD3@
HD5@
+HE6@
HEAD
+HF6@
HH&a
HH3@
HH:mm:ss
@@ -3774,21 +3778,21 @@ HMAC routines
HMAC-MD5
HMAC-SHA1
HMAC_Init_ex
+HN6@
HO4@
HO8?
-HP6@
HR4@
HT3@
HU3@
HU>mA$_E*
HW3@
+HW6@
HWyn
+HX6@
HY3@
-HY6@
Hammer temp export
HammerMapLoader001
Hash Algorithm:
-Hb6@
HbAta
Hc S
Hc3@
@@ -3798,19 +3802,17 @@ Hd3@
Hd4@
HdEu
He3@
+He6@
Heap32First
Heap32ListFirst
Heap32ListNext
Heap32Next
HelpSystem_001
Hf3@
-Hg6@
Hg>?S
Hh4@
Hhr+g
-Hi6@
Hj3@
-Hj6@
Hk3@
Hl3@
Ho6@
@@ -3824,9 +3826,11 @@ Hostname mismatch
Hp)X?
Hp3@
Hq,r/f
+Hq6@
HqI9x
Ht4qw
-Hy6@
+Hw6@
+Hx6@
H{1S
I"9|OxTex
I+8G
@@ -4476,7 +4480,6 @@ PARSE_BAGS
PARSE_HTTP_LINE1
PARSE_TAGGING
PATHBYADDR
-PB6@
PBE-MD2-DES
PBE-MD2-RC2-64
PBE-MD5-DES
@@ -4496,7 +4499,6 @@ PBKDF2
PBKDF2PARAM
PBMAC1
PC5@
-PD6@
PE5@
PEIF
PEM lib
@@ -4529,6 +4531,7 @@ PEM_write
PEM_write_bio
PF5@
PG5@
+PG6@
PGr]
PHAG2
PHhn}Y
@@ -4652,6 +4655,7 @@ PL5@
PLATFORM
PM3@
PM5@
+PM6@
PN3@
PN4@
PO3@
@@ -4670,6 +4674,7 @@ PPz\v=
PQ3@
PR3@
PR4@
+PR6@
PRB+
PRINTABLE
PRINTABLESTRING
@@ -4691,9 +4696,7 @@ PUT
PV3@
PW3@
PW4@
-PW6@
PZ3@
-PZ6@
Pa6@
Packed store %s with refcount > 0.\n
PackedBlobNormal
@@ -4706,7 +4709,6 @@ Particle Configuration File
ParticleSystemMgr003
Pb3@
Pd4@
-Pd6@
PeekNamedPipe
Peer haven't sent GOST certificate, required for selected ciphersuite
PerVertexLighting
@@ -4717,7 +4719,7 @@ Ph4@
Physics
PhysicsBuilderMgr001
PivotPaint
-Pl6@
+Pk6@
Plat_AttachDebuggerToProcess
Plat_CPUTickFrequency
Plat_CheckSDL
@@ -4765,7 +4767,6 @@ Plat_UnloadSDL
Pm8A?
PmR"H?
Pn3@
-Pn6@
Pointers cannot be used as numeric values
Policy Qualifier CPS
Policy Qualifier User Notice
@@ -4801,13 +4802,12 @@ Process32Next
PropWorldOrigin
PropertyEditorSystem_001
Proxy Certificate Information
-Pt6@
Public Key
Public-Key
Public-Key: (%d bit)\n
Pv6@
Pw3@
-Pz6@
+Py6@
P|iC\r
Q*hd
Q/xtJ2
@@ -6078,52 +6078,62 @@ X9_62_PENTANOMIAL
X9cm
X:vS
XA3@
+XA6@
XB3@
XB`i|
+XC6@
XD3@
+XD6@
XD{p7
-XE6@
XF3@
XF6@
XFle
XG3@
-XG6@
XG[r
XH5@
+XH6@
XI3@
XI5@
-XI6@
XJ3@
XLuC'4
XM4@
XMM{*
XN5@
XNU`{3
+XP6@
XQ6@
XR4@
XRJ2
+XW6@
XWY]
XX3@
XX6@
+XY6@
XYD%
X\tQo
Xa3@
+Xb6@
+Xc6@
Xd3@
Xd3h
+Xd6@
Xe6@
Xf6@
XfJ7
XjfR
Xk3@
Xm3@
+Xn6@
Xo3@
Xo6@
Xp3@
XqgA+
+Xu6@
Xuub
Xw6@
XwA0
Xz"7
+Xz6@
Y-Ny
Y4i%
Y93a=7c@
@@ -7920,24 +7930,24 @@ h93@
hA3@
hB6@
hC3@
-hC6@
-hD6@
hE5@
hEM&!
hF3@
-hF6@
hF\rDz
hFcg
hG3@
-hH6@
+hG6@
hI3@
hJ3@
hJxRX@_
hM4@
+hM6@
hN2D
+hN6@
hO3@
-hO6@
hP4@
+hP6@
+hQ6@
hR3@
hRB.
hS3@
@@ -7946,28 +7956,26 @@ hV3@
hW*m
hW1M
hW_z
+hX6@
hX@e
hZ3@
-hZ6@
h`Zr
hammer
hash
hashAlgorithm
hashFunc
-hb6@
hb`V
hbvc
hc[N
hc\raF
-hd6@
+he6@
header too long
heartbeat request already pending
height
hex:
hex_to_string
hexkey
hg3@
-hg6@
hhwi
hiddenFlags
hiddenGroups
@@ -8003,9 +8011,8 @@ houseIdentifier
hr_H
http request
https proxy request
-hv6@
hvL&
-hw6@
+hy6@
hz6@
h|gg
i <= EVP_MAX_MD_SIZE
@@ -9439,8 +9446,6 @@ pB3@
pC5@
pD4t
pE3@
-pE6@
-pG6@
pG_*h
pH5@
pI5@
@@ -9452,24 +9457,23 @@ pM3@
pM4@
pM5@
pN4@
-pN6@
pO0h
pO4@
pP3@
pQ3@
-pQ6@
pR4@
pRTH
pSPo
pSourceFunc
pSpecified
pT3@
pU>\AL
+pW6@
pX3@
-pX6@
pY3@
p^i9
pa3@
+pa6@
packet length too long
padding check failed
pagerTelephoneNumber
@@ -9504,6 +9508,7 @@ pathlen
pattern
payload + padding <= 16381
payment gateway capabilities
+pb6@
pbeWithMD2AndDES-CBC
pbeWithMD2AndRC2-CBC
pbeWithMD5AndCast5CBC
@@ -9521,7 +9526,7 @@ pc6@
pcPathLengthConstraint
pd3@
pd4@
-pe6@
+pd6@
peer did not return a certificate
peer does not accept heartbeats
peer error
@@ -9563,7 +9568,6 @@ pin_enabled
pivotOffset
pixelAspectRatio
pk3@
-pk6@
pkL'
pkcs
pkcs decoding error
@@ -9597,7 +9601,6 @@ pkeyalg
pkix
pkparameters2group failure
pl3@
-pl6@
pm3@
pn6@
point arithmetic failure
@@ -9641,7 +9644,6 @@ pp&c
pp3@
ppBasis
pq3@
-pq6@
pqualid
pre mac length too long
prefab_has_runtime_entity_by_default
@@ -9705,8 +9707,6 @@ pseudonym
psk identity not found
psk no client cb
psk no server cb
-pt6@
-pu6@
pub:
pub_key
pubkey
@@ -9726,7 +9726,7 @@ publish_data.txt
purecall
pvk data too short
pvk too short
-px6@
+pw6@
pzKD)
q not prime
q&A\nn
@@ -11068,49 +11068,52 @@ x509_store
x931
x93@
xA3@
-xA6@
xC3@
xD5@
+xD6@
xE5@
+xE6@
xF5@
-xF6@
xFKF
xG5@
+xH6@
xJ5@
xL5@
xN5@
+xO6@
xOu\vsF
xP4@
xP6@
+xQ6@
xQfF
+xR6@
xU3@
xUN'
xV3@
xV4@
xW3@
xW4@
-xW6@
xX3@
+xX6@
xY6@
x\v6V
-xa6@
xb3@
xc3@
xe3@
xg-9Ja
xg3@
-xg6@
xh3@
xi3@
+xk6@
xo6@
xp$=S
xpH8
+xq6@
xqI9
xrJ:DCG
xsK;
-xw6@
+xx6@
xxH}
-xy6@
xzxv
y#y&Jb
y0JY
game/bin/win64/source1import.exe_strings.txt
modified • +3 / -5 • changes: 8
Show patch
@@ -3728,15 +3728,16 @@ $woundcutouttexture
0Hh@
0I0@
0IT@
-0IW@
0Ig@
0J4@
0K7@
0M7@
0N7@
0NT@
+0NW@
0O7@
0OS@
+0OW@
0P9@
0QW@
0R8@
@@ -9384,6 +9385,7 @@ PFNoiseTurbulence_t
PFNoiseType_t
PFP@
PFQ@
+PFW@
PF\n%d %d\n-1.000000\n
PF_BIAS_TYPE_COUNT
PF_BIAS_TYPE_EXPONENTIAL
@@ -9472,7 +9474,6 @@ PIX@
PIg@
PInstruction_t<41>::Run
PInstruction_t<42>::Run
-PKW@
PLATFORM
PLUG_TYPE_INPUT
PLUG_TYPE_OUTPUT
@@ -9481,7 +9482,6 @@ PLUG_TYPE_RELAY_PREFAB_INBOUND
PLUG_TYPE_RELAY_PREFAB_LOCAL
PLUG_TYPE_RELAY_PREFAB_OUTBOUND
PLUG_TYPE_UNKNOWN
-PLW@
PMM@
PMW@
PM_TYPE_CONTROL_POINT
@@ -17836,7 +17836,6 @@ pIX@
pJT@
pK2@
pLS@
-pLW@
pMaterialGroupName
pMessage
pModelResourceName
@@ -19595,7 +19594,6 @@ yaw_stop_time
yield_token
yields
z>AlignedByteArray not properly aligned\n
-zD R
z\tV_tand
zero
zero_value
game/bin/win64/tools/cs2_item_editor_strings.txt
modified • +59 / -39 • changes: 98
Show patch
@@ -13,10 +13,13 @@
#Valve_Reject_Reserved_For_Lobby
(%d remaining)...
(08@HPX`hpx
- (08@HPX`j
- (08@HPXb
- (08@HPZ
- (0X`hpz
+ (08@HPX`j0k
+ (08@HPXbP
+ (08@HPZ0k
+ (08@HRP
+ (08@J0k
+ (08@JP
+ (0X`hpzP
(Boosted +1)
(repeat)
- IsCheckedOut: %s\n
@@ -443,20 +446,25 @@ $schemasystem/schema_enable_defines.h
(#Player_DisconnectReason_InputAutomation
((6"8(:,<*>
(0`hpx
-(1TX
-(1nX
-(5HX
-(5aX
+(10X
+(1jX
+(53X
+(A2X
+(A6X
+(ADX
+(AMX
(Documents Filter - Use | for OR, space for AND)
-(EWX
+(EPX
+(EYX
+(ElX
(Filter)
-(IVX
+(IwY
+(MSX
(No Active Session)
(Outliner Filter)
-(QLX
-(QRX
-(U9X
-(YJX
+(Q4X
+(UKX
+(YWX
(YbX
(\f"(\n&CMsgGCCStrike15_v2_ClientRequestOffers"\\n(CMsgGCCStrike15_v2_ClientRequestSouvenir
(\f"?\n#CMsgGCCStrike15_v2_Client2GCTextMsg
@@ -608,16 +616,15 @@ $schemasystem/schema_enable_defines.h
(\v2\v.CMsgVector
(\v2\v.CMsg_CVars:
(\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z
-(avX
(default)
-(e2X
-(i3X
-(iUX
-(ihX
+(i8X
+(m6X
(null)
-(qHX
-(udX
-(ygX
+(qEX
+(qIX
+(qgX
+(qxX
+(ujX
) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z
)#GameUI_Disconnect_PureServer_ClientExtra
)#GameUI_Disconnect_RemoteProblem_BadCrypt
@@ -3025,8 +3032,9 @@ $schemasystem/schema_enable_defines.h
/weapons/customization/paints_gloves/
0$2z4
08@HP
-08@HR
-08@J
+08@HR0k
+08@JP
+08B0k
08\fj
0:<\n\fdelta_ignore
0T.Q
@@ -3206,6 +3214,7 @@ $schemasystem/schema_enable_defines.h
2\r?hideEvent@QWidget@@MEAAXPEAVQHideEvent@@@Z
2\tV_isnand
2\v?event@QAction@@MEAA_NPEAVQEvent@@@Z
+2\vpT
2aboutToShow()
2activated( int )
2changed()
@@ -3277,6 +3286,7 @@ $schemasystem/schema_enable_defines.h
5\n\vnested_type
5\n\vtype_caches
5\v?event@QCheckBox@@MEAA_NPEAVQEvent@@@Z
+6Pr?
6[?setRenderHint@QPainter@@QEAAXW4RenderHint@1@_N@Z
6\n1k_EGCItemCustomizationNotification_CasketContents
6\n1k_EGCItemCustomizationNotification_ExtractSticker
@@ -3300,11 +3310,14 @@ $schemasystem/schema_enable_defines.h
7\n2k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment
7\n\tenum_type
8#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay
-8-eX
-8-uW
8@HP:
+8@J0k
+8B0k
8Csinf
+8QfX
+8UZW
8\f?focusOutEvent@QTextBrowser@@MEAAXPEAVQFocusEvent@@@Z
+8\n0k
8\n3k_EGCItemCustomizationNotification_ActivateFanToken
8\n3k_EGCItemCustomizationNotification_GenerateSouvenir
8\n3k_EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2
@@ -3313,6 +3326,7 @@ $schemasystem/schema_enable_defines.h
8\n\textension
8\v?event@QCompleter@@MEAA_NPEAVQEvent@@@Z
8]?size@QPixmap@@QEBA?AVQSize@@XZ
+8}qX
9\f?focusOutEvent@QTextEdit@@MEAAXPEAVQFocusEvent@@@Z
9\n4k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification
9\n4k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser
@@ -4991,9 +5005,13 @@ $schemasystem/schema_enable_defines.h
@#?write@QTableWidgetItem@@UEBAXAEAVQDataStream@@@Z
@08@HPX`hpx
@08N
+@20k
+@6pm?
@HPX
@HPX&I
-@HPX`hv0
+@HPX`hv`
+@HV0
+@HdR
@\n\fSingleObject
@\n\vserver_type
@\v?event@QFrame@@MEAA_NPEAVQEvent@@@Z
@@ -5837,6 +5855,7 @@ FGD Variable %s has bad default value %d (has bits set that are not valid choice
FOLDER
FORCE_NOT_USED
F\n%NETWORK_DISCONNECT_DISCONNECT_BY_USER
+F\n0k
F\n\foptimize_for
F\n\rroundstatsall
F\v?event@QGroupBox@@MEAA_NPEAVQEvent@@@Z
@@ -5908,7 +5927,6 @@ FocusOut
FolderName
FoliageAnimation
Follow user preference
-Fpv?
FreeEnvironmentStringsW
FreeLibrary
From EconItems
@@ -6567,9 +6585,10 @@ OrigMat
Other Tools
Outliner
OverlayProjectionDirection
-P08@J
+P08@JP
P08J
P08N
+P20k
P?isValid@QColor@@QEBA_NXZ
P?isValid@QTextCharFormat@@QEBA_NXZ
P?itemData@QStandardItemModel@@UEBA?AV?$QMap@HVQVariant@@@@AEBVQModelIndex@@@Z
@@ -6626,12 +6645,13 @@ Patina
Patina Extended
Pedestal Model
PerVertexLighting
-Pf t?
+PfPt?
PgDn
PgUp
Physics
Picks
PivotPaint
+Pj0k
PlayerCommendationInfo
PlayerDecalDigitalSignature
PlayerMedalsInfo
@@ -7317,7 +7337,7 @@ X\n\tTeamStats
X\n\vFantasyTeam
X\r?horizontalHeader@QTableView@@QEBAPEAVQHeaderView@@XZ
X\v?event@QPushButton@@MEAA_NPEAVQEvent@@@Z
-X`hr
+X`hr0k
XpProgressData
Y?setData@QStandardItem@@UEAAXAEBVQVariant@@H@Z
Y?setData@QStandardItemModel@@UEAA_NAEBVQModelIndex@@AEBVQVariant@@H@Z
@@ -7435,7 +7455,6 @@ Zip system failure.\n
\f\f?focusInEvent@QLabel@@MEAAXPEAVQFocusEvent@@@Z
\f\n EGCItemCustomizationNotification
\f\n?deselect@QLineEdit@@QEAAXXZ
-\fp\vPX
\n CMsgItemAcknowledged__DEPRECATED
\n CSVCMsg_GameSessionConfiguration
\n google/protobuf/descriptor.proto
@@ -7940,6 +7959,7 @@ Zip system failure.\n
\n\vvalue_bytes
\n\vxp_category
\n\vyoutube_url
+\nqZW
\r?darker@QColor@@QEBA?AV1@H@Z
\r?data@QStandardItem@@UEBA?AVQVariant@@H@Z
\r?data@QStandardItemModel@@UEBA?AVQVariant@@AEBVQModelIndex@@H@Z
@@ -7975,6 +7995,7 @@ Zip system failure.\n
\r\n\tTYPE_BOOL
\r\n\tTYPE_ENUM
\r\r?heightForWidth@QGridLayout@@UEBAHH@Z
+\rtext
\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z
\t?alpha@QColor@@QEBAHXZ
\t?alphaF@QColor@@QEBANXZ
@@ -8106,13 +8127,16 @@ _nodrips
_sm.png
_sticker_capsule
_toolsautosave
+`20k
`?validate@QDoubleValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z
`?validate@QRegExpValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z
`RTTI
`\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z
`adjustor{
`anonymous namespace'
+`b0k
`copy constructor closure'
+`d0k
`default constructor closure'
`dynamic atexit destructor for '
`dynamic initializer for '
@@ -8146,7 +8170,6 @@ _toolsautosave
`template-type-parameter-
`typeof'
`udt returning'
-`ufX
`unknown ecsu'
`vbase destructor'
`vbtable'
@@ -8913,7 +8936,6 @@ h\n,NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING
h\r?horizontalScrollbarAction@QTreeView@@MEAAXH@Z
h\v?event@QTabWidget@@MEAA_NPEAVQEvent@@@Z
ha?window@QPalette@@QEBAAEBVQBrush@@XZ
-ha\rX
halfgridsnap
handle
hbox
@@ -8946,7 +8968,7 @@ host_computationtime
host_frame_dropped_pct_x10
host_unfiltered_frametime
hours
-hpz
+hpzP
i ?topLevelWidgets@QApplication@@SA?AV?$QList@PEAVQWidget@@@@XZ
iValueIn
i\f?forward@QTextBrowser@@UEAAXXZ
@@ -9666,7 +9688,6 @@ my_current_event_stages
my_current_event_teams
my_current_team
n03>Pu
-n0w?
nBuildError
nCentralDirectoryEntries_ThisDisk
nCentralDirectoryEntries_Total
@@ -9796,16 +9817,14 @@ owner dead
owner_only
owns_polymorphic_data
p08@H^
-p0jp
p0p@
-p6`s?
+p20k
p@HPX`h\f
pButton
pCurrentFocusWidget
pData
pEvent
pFilter
-pFpv?
pPrevFocusWidget
pResultKV
pV?read@QImageReader@@QEAA?AVQImage@@XZ
@@ -9869,6 +9888,7 @@ payload
payment_row_usd
payment_rules/0/workshop_revenue_share
payment_us_usd
+pb0k
pearlescent
pedestal display model
pedestal_display_model
game/bin/win64/tools/met_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -990,7 +990,7 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
1/2/3
11Y@
128 x 128
-13:36:34
+13:54:32
1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );
1AboutAction()
1AcceptColorInternal(FatColor_t)
game/bin/win64/tools/modeldoc_editor_strings.txt
modified • +33 / -31 • changes: 64
Show patch
@@ -27,7 +27,7 @@
R%d: %15s %25s %s\n
Top-level Mesh Op '%s' returning a cached result.\n
V%d: '%s' (%s)\n
- !"#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@
+ !"#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!"#$%&'()*+,-./
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~
#%d: %d Faces, %d Verts, %d Edges\n
@@ -686,29 +686,34 @@ $schemasystem/schema_enable_defines.h
(%d tracks)
((6"8(:,<*>
(0`hpx
+(19H
+(1RH
(1iH
(4pZ\n
-(5IH
-(5nH
-(5vH
-(9LH
+(58H
+(9nH
+(9wH
(? Queued)
(?!\d)[\w_]*
(Advanced Feature) Used to specify special interaction rules or exclusions. References a name in scripts/collision_properties.txt.
(Anonymous)
+(AtH
(Cannot dynamically spawn a prop_static)
(Custom Colors Disabled)
(Debug Feature) Used to draw collision with the same material in Physics Debugger as in Hammer.
(Debug) Visualize Simplification Edges
+(EDH
+(EdH
(Edges to Faces)
(Edges to Vertices)
-(EeH
(EpH
+(ErH
(Error)
(Faces to Edges)
(Faces to Vertices)
(Filter)
-(MNH
+(I0H
+(MJH
(Mesh Substring Filter)
(Multiple)
(No Active Session)
@@ -718,16 +723,12 @@ $schemasystem/schema_enable_defines.h
(No class selected)
(Outliner Filter)
(Preview Outliner Filter)
-(QGO
-(QKO
-(QrH
+(QeH
(Specified in project's gameinfo.gi)
(Steam Audio) Update physics surface property of VMDL files. They are used for picking acoustic material property for Steam Audio.
-(UBH
-(UPH
+(U7H
(Vertices to Edges)
(Vertices to Faces)
-(YAH
(\f?focusOutEvent@QAbstractButton@@MEAAXPEAVQFocusEvent@@@Z
(\r?hideEvent@QAbstractSpinBox@@MEAAXPEAVQHideEvent@@@Z
(\t"\r\n\vCNETMsg_NOP"'\n
@@ -756,23 +757,20 @@ $schemasystem/schema_enable_defines.h
(\v2\v.CMsgVector
(\v2\v.CMsg_CVars:
(\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z
-(aCH
-(axH
+(aAH
+(aFH
+(aZH
(export) %d %s %d %s %s\n
(export) %d %s %d %s\n
-(i1H
-(iZH
(layer %d)
-(mbH
-(mmH
+(m5H
+(myH
(no-compile)
(null)
-(q9H
-(qRH
-(qiH
-(u8H
-(ynH
-(ywH
+(qqH
+(qvH
+(uLH
+(yfH
) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z
)#GameUI_Disconnect_PureServer_ClientExtra
)#GameUI_Disconnect_RemoteProblem_BadCrypt
@@ -13145,8 +13143,6 @@ $schemasystem/schema_enable_defines.h
8-byte data pool
8@HP:
8Csinf
-8QSH
-8YGH
8\f?focusOutEvent@QTextBrowser@@MEAAXPEAVQFocusEvent@@@Z
8\n\textension
8\v?event@QCompleter@@MEAA_NPEAVQEvent@@@Z
@@ -13794,6 +13790,7 @@ $schemasystem/schema_enable_defines.h
?MoveFrom@CBufferString@@QEAAXAEAV1@@Z
?Nearest@CVertexKDTree@@QEBAXAEBV?$Vec3D@M@@AEAV?$CUtlVectorFixedGrowable@PEBM$0EA@H@@@Z
?OutputIndentation@IFormatOutputStream@@UEAAXXZ
+?PaV
?ParallelCallQueued@CCallQueue@@QEAAXPEBDPEAVIThreadPool@@@Z
?ParseToken@CUtlBuffer@@QEAA_NPEBD0PEADH@Z
?PathJoin@CUtlString@@SA?AV1@PEBD0@Z
@@ -19840,7 +19837,7 @@ Grow or Shrink
Grow or shrink a selection
Grow the selection by adding contiguous components to the selection.
H.FM
-H5CO
+H1DO
HAC K Unused Binding
HELPER_BONE
HH:mm:ss
@@ -19850,6 +19847,7 @@ HSVA
HSVA\t
HSequence ID
HUD Display
+HYDO
Hack Dota Layer Opaque
Hack Dota Layer Opaque Translucent
HairShader
@@ -19959,7 +19957,6 @@ How much to consider facing angle in occlusion.
How quickly the elasticity target pose changes to match the current pose
How sensitive the setting thresholds for 'stationary' should be - a value of 1 means use the vdata settings directly.
How the end effector should be rotated after the solve.
-HqDO
Hud Settings
Hull
Hull Per Element
@@ -20148,6 +20145,7 @@ Importing a file whose mod (%s) is not in the leafiest search path.<br>Do you wa
Imports The Skeleton From The Specified File Or SkeletonFile Node
In Frame
In-Game Animation Capture
+InEO
InFrame
InFrame frame, also called "apex" and "in", can be aliased via "entrytag" in sequence KV
Inactive events ignored
@@ -25249,14 +25247,14 @@ YCbCrCoefficients
YCbCrPositioning
YCbCrSubsampling
YClipPathUnits
-YJEO
YO?insertColumns@QStandardItemModel@@UEAA_NHHAEBVQModelIndex@@@Z
YPosition
YResolution
YY?setDropAction@QDropEvent@@QEAAXW4DropAction@Qt@@@Z
Y\n)NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS
Y\n*NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW
Y\n0NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID
+Y\nEO
Y\tV_roundf
Y\v?event@QRadioButton@@MEAA_NPEAVQEvent@@@Z
Yaw Bounce
@@ -25504,6 +25502,7 @@ Zpm"U
\n?editorEvent@QStyledItemDelegate@@MEAA_NPEAVQEvent@@PEAVQAbstractItemModel@@AEBVQStyleOptionViewItem@@AEBVQModelIndex@@@Z
\nDescription: %s
\nErrors Found:\n%s
+\nGGH
\nIHDRPLTEIDATIENDtRNScHRMgAMAiCCPsBITsRGBtEXtzTXtiTXtbKGDhISTpHYssPLTtIMEoFFseXIf
\nThickness: %.1f [inches]
\n[ERR] Not enough memory, shop for some more RAM. See you!\n
@@ -25577,7 +25576,6 @@ Zpm"U
\n\voutput_type
\n\vsource_file
\n\vspawn_count
-\neEO
\ng default\n
\nh?oT
\nk>oB
@@ -25895,6 +25893,8 @@ _zero
`Q?lightnessF@QColor@@QEBANXZ
`RTTI
`V?queryKeyboardModifiers@QGuiApplication@@SA?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ
+`YFO
+`YHH
`\r?entryInfoList@QDir@@QEBA?AV?$QList@VQFileInfo@@@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z
`\tV_sinf
`\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z
@@ -25926,6 +25926,7 @@ _zero
`omni callsig'
`placement delete closure'
`placement delete[] closure'
+`qGO
`scalar deleting destructor'
`string'
`template static data member constructor helper'
@@ -25949,6 +25950,7 @@ _zero
`virtual displacement map'
`vtordispex{
`vtordisp{
+`yFO
a6>r
a:fulltype
a:typeparam
game/bin/win64/tools/pet_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -9477,6 +9477,7 @@ Zpm"U
\r\f\v\v\n\n\t\t\t\t\t
\r\r?heightForWidth@QGridLayout@@UEBAHH@Z
\r\tV_expf
+\rpSp
\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z
\t?alpha@QColor@@QEBAHXZ
\t?alphaF@QColor@@QEBANXZ
game/bin/win64/tools/postprocessingeditor_strings.txt
modified • +7 / -8 • changes: 15
Show patch
@@ -293,11 +293,11 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
(Filter)
(No Active Session)
(No Asset)
+(Ykm
(\f?focusOutEvent@QAbstractButton@@MEAAXPEAVQFocusEvent@@@Z
(\r?hideEvent@QAbstractSpinBox@@MEAAXPEAVQHideEvent@@@Z
(\v?enterEvent@QToolButton@@MEAAXPEAVQEvent@@@Z
(null)
-(ykm
) ?timerEvent@QTableView@@MEAAXPEAVQTimerEvent@@@Z
)\f?focusOutEvent@QAbstractItemView@@MEAAXPEAVQFocusEvent@@@Z
)\r?hideEvent@QComboBox@@MEAAXPEAVQHideEvent@@@Z
@@ -3047,15 +3047,14 @@ $\f?focusNextPrevChild@QWidget@@MEAA_N_N@Z
?userType@QVariant@@QEBAHXZ
?valueToKeys@QMetaEnum@@QEBA?AVQByteArray@@H@Z
?xMk
-?xNk
?ysB
@#?write@QTableWidgetItem@@UEBAXAEAVQDataStream@@@Z
@Integer overflow in %s
@PXk
+@Tgm
@\v?event@QFrame@@MEAA_NPEAVQEvent@@@Z
@^8U)zj
@spawn
-@tgm
A fatal error occurred.
A new location must be selected in order to save the file.
A resource error occurred.
@@ -4146,9 +4145,10 @@ Greens
Grid layout should be an array of arrays
Group3Options
Group4Options
+H%gm
HAC K Unused Binding
-HEgm
HH:mm:ss
+HMgm
HSLA
HSLA\t
HSVA
@@ -4164,7 +4164,7 @@ Hide
Hide unless error/warning occurs
High Contrast
Highlights
-Hmgm
+Hihm
Home
Horizontal differencing "Predictor" not supported with %d-bit samples
HorizontalStrafeCamera
@@ -5581,6 +5581,7 @@ Y?setHotSpot@QDrag@@QEAAXAEBVQPoint@@@Z
Y?setHslF@QColor@@QEAAXNNNN@Z
Y?setHsvF@QColor@@QEAAXNNNN@Z
Y?setIcon@QStandardItem@@QEAAXAEBVQIcon@@@Z
+YBim
YCbCrCoefficients
YCbCrPositioning
YCbCrSubsampling
@@ -5593,7 +5594,6 @@ Y\tV_roundf
Y\v?event@QRadioButton@@MEAA_NPEAVQEvent@@@Z
YawCameraLeft
YawCameraRight
-Ybim
Yellow
Yellows
Yes - Discard and reload from disk
@@ -5767,7 +5767,6 @@ Zpm"U
\r\f\v\v\n\n\t\t\t\t\t
\r\r?heightForWidth@QGridLayout@@UEBAHH@Z
\r\tV_expf
-\rxRk
\t?addPixmap@QIcon@@QEAAXAEBVQPixmap@@W4Mode@1@W4State@1@@Z
\t?addPolygon@QPainterPath@@QEAAXAEBVQPolygonF@@@Z
\t?alpha@QColor@@QEBAHXZ
@@ -5887,13 +5886,13 @@ _nextafter
_toolsautosave
_volumeatlas_
_wjb
+`9km
`?validate@QDoubleValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z
`?validate@QIntValidator@@UEBA?AW4State@QValidator@@AEAVQString@@AEAH@Z
`?value@QColor@@QEBAHXZ
`?valueF@QColor@@QEBANXZ
`Q?lightnessF@QColor@@QEBANXZ
`RTTI
-`Ykm
`\r?entryInfoList@QDir@@QEBA?AV?$QList@VQFileInfo@@@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z
`\tV_sinf
`\v?event@QSpinBox@@MEAA_NPEAVQEvent@@@Z
game/bin/win64/tools/sfm_strings.txt
modified • +1 / -2 • changes: 3
Show patch
@@ -712,7 +712,6 @@ $schemasystem/schema_enable_defines.h
---- dmxconvert output ----\n
---------------------------\n
-> Success (%d attempts)\n
--?VertexColorUVPos_t
-\nLx.\nAh/\n/4h
-cmd
-memory-
@@ -13505,6 +13504,7 @@ Velocity Inherit from Control Point
Velocity Noise
Velocity Random
Velocity Repulse from World
+VertexColorUVPos_t
VertexElementAnnotation
VertexGenericIntegerData
VertexPaintBlendParams
@@ -17409,7 +17409,6 @@ zero_value
{flat}
{for
|"?verticalHeader@QTableView@@QEBAPEAVQHeaderView@@XZ
-|BhE
}\n?connectOutputInterface@QFutureWatcherBase@@IEAAXXZ
}\n?dragMoveEvent@QAbstractItemView@@MEAAXPEAVQDragMoveEvent@@@Z
}\r?erase@QListData@@QEAAPEAPEAXPEAPEAX@Z
game/bin/win64/vrad3_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -2730,7 +2730,7 @@ path_trace_triangles_gpu_init
path_trace_triangles_gpu_shutdown
path_trajectory
pattern
-pc64 Feb 9 2026 13:35:40
+pc64 Feb 23 2026 13:53:16
permission denied
physicsSimplificationError
physicsSimplificationOverride
game/csgo/bin/linuxsteamrt64/libclient_strings.txt
modified • +8 / -6 • changes: 14
Show patch
@@ -9103,6 +9103,7 @@ $taser_charge
4tpD
4zj@1;IJ
4|2;#GameUI_Retake_Card_LightEmUp,1,1,rifle1,grenade0|2;#GameUI_Retake_Card_Kobe,1,1,rifle1,grenade2|1;#GameUI_Retake_Card_1g,1,1,rifle1,grenade3|1;#GameUI_Retake_Card_DisappearingAct,1,1,rifle1,grenade1|1;#GameUI_Retake_Card_EyesOnTarget,1,1,weapon_aug
+4~3<M
5'0v2ZP
5-535;5A5Q5e5o5q5w5{5}5
5-\rGw
@@ -9303,6 +9304,7 @@ $taser_charge
8192
8285-YOAZ-6049
82\n:XPH
+83\nN
851Pe
8835-KLXV-0292
8<pl
@@ -9565,7 +9567,6 @@ $taser_charge
<weapon>
=!=-=3=7=?=C=o=s=u=y={=
=&sf9
-=3fL
== %d Entities Dumped\n
== PulseGraphDef ==\n
== false\n
@@ -26357,7 +26358,7 @@ _var
_xU`u
_}eOk
`28)fk
-`43!D
+`43!T
`:zQF
`D$daM-l
`DZG
@@ -28566,8 +28567,8 @@ component
composite_inputs
composite_material_order
composite_material_path
-compositematerialmanager.cpp(3293):
-compositematerialmanager.cpp(3316):
+compositematerialmanager.cpp(3300):
+compositematerialmanager.cpp(3323):
compositematerials/compositematerialgamesystem.cpp
compositematerialslib
compressed length too long
@@ -31699,7 +31700,7 @@ i2d_pr.c
i2o_ECPublicKey
i2s_ASN1_ENUMERATED
i2s_ASN1_INTEGER
-i4@E
+i4@U
i4a."
i5BH
iA5StringSyntax
@@ -33062,6 +33063,7 @@ kv 0x%p Release refcount == %d\n
kw.6#
k~Rz
l <= sizeof(c->iv)
+l&+3Sl
l&rB6
l4Ot
l7@J
@@ -38453,6 +38455,7 @@ t1_ext.c
t1_lib.c
t1_reneg.c
t2U
+t3@P
t4O_
t80z
tA`KO/3G!\n7h=
@@ -40575,7 +40578,6 @@ y#y&Jb
y-offset
y0JY
y2Cu
-y3}o
y;w9
y?iLa
yG/9
game/csgo/bin/linuxsteamrt64/libmatchmaking_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -209,7 +209,6 @@ $%llx
54CProductInfo_SetRichPresenceLocalization_Request_Token
59CChinaAgreementSessions_StartAgreementSessionInGame_Request
59CQuest_PublisherAddCommunityItemsToPlayer_Request_Attribute
-5Sh&
60CChinaAgreementSessions_StartAgreementSessionInGame_Response
60CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule
61CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule
@@ -461,6 +460,7 @@ GamesTypes: unable to set convars. There are no convars for game type/mode (%s:%
GamesTypes: unable to set game type and mode. Could not find type/mode matching type:%s/mode:%s.\n
GamesTypes: unable to set game type and mode. Game type value is outside valid range. (value == %d)\n
GetPchTempTextBuffer() called after UninitTempTextBuffers()
+Host settings have bad key %s:%d\n
HostUtils001
InetSearchServerDetails
InetSearchServerDetails/pingxuid
game/csgo/pak01_dir.txt
modified • +48 / -48 • changes: 96
Show patch
@@ -40201,7 +40201,7 @@ models/props/de_nuke/windows/nuke_window_93x76_broken_trans_psd_72f14967.vtex_c
models/props/de_nuke/windows/nuke_window_93x76_broken_vmat_g_tglasstintcolor_911c8aca.vtex_c CRC:00e3a1d3b0 size:1952
models/props/de_nuke/windows/nuke_window_unbroken.vmat_c CRC:00db46b8fb size:3504
models/props/de_nuke/windows/nuke_window_unbroken_vmat_g_tglasstintcolor_911c8aca.vtex_c CRC:00e3a1d3b0 size:1952
-models/props/de_overpass/balloon.vmdl_c CRC:000234b448 size:11064
+models/props/de_overpass/balloon.vmdl_c CRC:005b842743 size:17009
models/props/de_overpass/balloon_breakable.vmdl_c CRC:0026ea4ca2 size:11953
models/props/de_overpass/bank_sign.vmdl_c CRC:006a8aae99 size:17578
models/props/de_overpass/cafe_display_cabinet.vmdl_c CRC:00494f7b2b size:15573
@@ -74099,12 +74099,12 @@ panorama/images/map_icons/screenshots/1080p/de_nuke_2_png.vtex_c CRC:00a91003ff
panorama/images/map_icons/screenshots/1080p/de_nuke_3_png.vtex_c CRC:00a1f45184 size:2683396
panorama/images/map_icons/screenshots/1080p/de_nuke_4_png.vtex_c CRC:0044245a10 size:2267537
panorama/images/map_icons/screenshots/1080p/de_nuke_png.vtex_c CRC:00c9829a43 size:2609065
-panorama/images/map_icons/screenshots/1080p/de_overpass_1_png.vtex_c CRC:005560fa7b size:3562602
-panorama/images/map_icons/screenshots/1080p/de_overpass_2_png.vtex_c CRC:00baf69758 size:3455292
-panorama/images/map_icons/screenshots/1080p/de_overpass_3_png.vtex_c CRC:00a5d18197 size:2972773
-panorama/images/map_icons/screenshots/1080p/de_overpass_4_png.vtex_c CRC:000c846f63 size:3418050
-panorama/images/map_icons/screenshots/1080p/de_overpass_5_png.vtex_c CRC:0065a71b44 size:3330129
-panorama/images/map_icons/screenshots/1080p/de_overpass_png.vtex_c CRC:00dbd2a310 size:3408168
+panorama/images/map_icons/screenshots/1080p/de_overpass_1_png.vtex_c CRC:003b761633 size:3558047
+panorama/images/map_icons/screenshots/1080p/de_overpass_2_png.vtex_c CRC:005f710f80 size:3457142
+panorama/images/map_icons/screenshots/1080p/de_overpass_3_png.vtex_c CRC:0088d06e56 size:2971254
+panorama/images/map_icons/screenshots/1080p/de_overpass_4_png.vtex_c CRC:003ad145b1 size:3412505
+panorama/images/map_icons/screenshots/1080p/de_overpass_5_png.vtex_c CRC:0096fa6c94 size:3321647
+panorama/images/map_icons/screenshots/1080p/de_overpass_png.vtex_c CRC:002aa62bb5 size:3393714
panorama/images/map_icons/screenshots/1080p/de_poseidon_png.vtex_c CRC:003f163c21 size:1575971
panorama/images/map_icons/screenshots/1080p/de_sanctum_png.vtex_c CRC:00e1e5d5ef size:3205096
panorama/images/map_icons/screenshots/1080p/de_stronghold_png.vtex_c CRC:00a176bc85 size:2855140
@@ -74137,7 +74137,7 @@ panorama/images/map_icons/screenshots/360p/de_dust_png.vtex_c CRC:007fd5e1b6 siz
panorama/images/map_icons/screenshots/360p/de_inferno_png.vtex_c CRC:0012ebbc61 size:404600
panorama/images/map_icons/screenshots/360p/de_mirage_png.vtex_c CRC:008449f607 size:454106
panorama/images/map_icons/screenshots/360p/de_nuke_png.vtex_c CRC:00bfe7927f size:353074
-panorama/images/map_icons/screenshots/360p/de_overpass_png.vtex_c CRC:0020dd2112 size:420529
+panorama/images/map_icons/screenshots/360p/de_overpass_png.vtex_c CRC:00ed9d8c68 size:419660
panorama/images/map_icons/screenshots/360p/de_poseidon_png.vtex_c CRC:00a25b4ca2 size:332332
panorama/images/map_icons/screenshots/360p/de_sanctum_png.vtex_c CRC:00d64af9e3 size:478326
panorama/images/map_icons/screenshots/360p/de_stronghold_png.vtex_c CRC:00bd6e04f1 size:411925
@@ -74209,12 +74209,12 @@ panorama/images/map_icons/screenshots/720p/de_nuke_2_png.vtex_c CRC:00fd70de3c s
panorama/images/map_icons/screenshots/720p/de_nuke_3_png.vtex_c CRC:00fec523a7 size:1268819
panorama/images/map_icons/screenshots/720p/de_nuke_4_png.vtex_c CRC:0043518b7d size:1074973
panorama/images/map_icons/screenshots/720p/de_nuke_png.vtex_c CRC:00285275dc size:1256338
-panorama/images/map_icons/screenshots/720p/de_overpass_1_png.vtex_c CRC:00843db6c8 size:1591743
-panorama/images/map_icons/screenshots/720p/de_overpass_2_png.vtex_c CRC:006fc689ff size:1609605
-panorama/images/map_icons/screenshots/720p/de_overpass_3_png.vtex_c CRC:0019e08fa2 size:1347968
-panorama/images/map_icons/screenshots/720p/de_overpass_4_png.vtex_c CRC:00c49dc062 size:1604447
-panorama/images/map_icons/screenshots/720p/de_overpass_5_png.vtex_c CRC:00c053f00e size:1523012
-panorama/images/map_icons/screenshots/720p/de_overpass_png.vtex_c CRC:0064ff88c7 size:1574652
+panorama/images/map_icons/screenshots/720p/de_overpass_1_png.vtex_c CRC:00e1be8f78 size:1589528
+panorama/images/map_icons/screenshots/720p/de_overpass_2_png.vtex_c CRC:00b8084088 size:1611145
+panorama/images/map_icons/screenshots/720p/de_overpass_3_png.vtex_c CRC:0065c7fc58 size:1346677
+panorama/images/map_icons/screenshots/720p/de_overpass_4_png.vtex_c CRC:0072907264 size:1595577
+panorama/images/map_icons/screenshots/720p/de_overpass_5_png.vtex_c CRC:00335acec6 size:1520686
+panorama/images/map_icons/screenshots/720p/de_overpass_png.vtex_c CRC:002fb8983b size:1569997
panorama/images/map_icons/screenshots/720p/de_poseidon_png.vtex_c CRC:00cccf8d37 size:1003124
panorama/images/map_icons/screenshots/720p/de_sanctum_png.vtex_c CRC:008f6cbf76 size:1644056
panorama/images/map_icons/screenshots/720p/de_stronghold_png.vtex_c CRC:009cf09cb1 size:1431771
@@ -75073,7 +75073,7 @@ panorama/scripts/common/formattext.vts_c CRC:00b9d2d472 size:17934
panorama/scripts/common/gamerules_constants.vts_c CRC:00b6a27ad2 size:3294
panorama/scripts/common/hold_button.vts_c CRC:00eecf0766 size:8974
panorama/scripts/common/icon.vts_c CRC:0013e31a4c size:4638
-panorama/scripts/common/item_context_entries.vts_c CRC:0097e878a4 size:122606
+panorama/scripts/common/item_context_entries.vts_c CRC:00cbd5fefe size:122590
panorama/scripts/common/iteminfo.vts_c CRC:00a10938ec size:41710
panorama/scripts/common/licenseutil.vts_c CRC:001a51d7f3 size:5006
panorama/scripts/common/prime_button_action.vts_c CRC:003673d8e2 size:3374
@@ -75186,7 +75186,7 @@ panorama/scripts/popups/popup_directchallenge_join.vjs_c CRC:00ef5b51d1 size:586
panorama/scripts/popups/popup_directchallenge_steamgroups.vjs_c CRC:003a9e0207 size:3268
panorama/scripts/popups/popup_hud_edge_positions.vts_c CRC:00d58daa7d size:3998
panorama/scripts/popups/popup_inspect_action-bar.vts_c CRC:0085056d82 size:42334
-panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:003570fbc4 size:60654
+panorama/scripts/popups/popup_inspect_async-bar.vts_c CRC:005a953d23 size:62158
panorama/scripts/popups/popup_inspect_header.vts_c CRC:00b455eb14 size:9822
panorama/scripts/popups/popup_inspect_purchase-bar.vts_c CRC:00367b936c size:18990
panorama/scripts/popups/popup_inspect_rental-bar.vts_c CRC:002e1b85c6 size:28734
@@ -75394,7 +75394,7 @@ panorama/styles/particle_controls.vcss_c CRC:00585f2c54 size:2838
panorama/styles/party.vcss_c CRC:005de7e9f9 size:11940
panorama/styles/player_stats_card.vcss_c CRC:005cf61fd1 size:13389
panorama/styles/playercard.vcss_c CRC:003a4613e1 size:24658
-panorama/styles/popups/popup_accept_match.vcss_c CRC:00d5b1bd1a size:22462
+panorama/styles/popups/popup_accept_match.vcss_c CRC:009b2a5dd0 size:22478
panorama/styles/popups/popup_acknowledge_item.vcss_c CRC:00fc02e964 size:10072
panorama/styles/popups/popup_acknowledge_xpgrant.vcss_c CRC:00366d2d48 size:6275
panorama/styles/popups/popup_add_friend.vcss_c CRC:00a5a41c13 size:2694
@@ -78627,36 +78627,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:0009a5517e size:4702
radial_quickinventory.txt CRC:005a0c1bf5 size:1080
rebuy.txt CRC:008332da3a size:1688
resource/clientscheme.res CRC:001b42ad42 size:14978
-resource/csgo_brazilian.txt CRC:00078ffd06 size:4771021
-resource/csgo_bulgarian.txt CRC:00e5d2a5c8 size:7270050
-resource/csgo_czech.txt CRC:00691a5230 size:4861123
-resource/csgo_danish.txt CRC:00253fccf7 size:4750400
-resource/csgo_dutch.txt CRC:0065319465 size:4799651
-resource/csgo_english.txt CRC:00da40bab3 size:4605922
-resource/csgo_finnish.txt CRC:002e484639 size:4720696
-resource/csgo_french.txt CRC:002aca9d94 size:4989591
-resource/csgo_german.txt CRC:007fa4727b size:4927937
-resource/csgo_greek.txt CRC:003f27c32c size:6805089
-resource/csgo_hungarian.txt CRC:00b60c1e4d size:4832489
-resource/csgo_indonesian.txt CRC:0019492003 size:4476068
-resource/csgo_italian.txt CRC:00df942ebb size:4914881
-resource/csgo_japanese.txt CRC:009e1c4560 size:5042632
-resource/csgo_koreana.txt CRC:006151a9d3 size:4839368
-resource/csgo_latam.txt CRC:00cd3c45c8 size:4925106
-resource/csgo_norwegian.txt CRC:0090138935 size:4678258
-resource/csgo_polish.txt CRC:00b0e451b2 size:5082879
-resource/csgo_portuguese.txt CRC:000daf52ff size:4820717
-resource/csgo_romanian.txt CRC:002efac728 size:5023820
-resource/csgo_russian.txt CRC:00cce31bb6 size:6298239
-resource/csgo_schinese.txt CRC:00e2cc1dc2 size:4670790
+resource/csgo_brazilian.txt CRC:0023fc4773 size:4748290
+resource/csgo_bulgarian.txt CRC:0075d8823f size:7275591
+resource/csgo_czech.txt CRC:00adf88619 size:4822531
+resource/csgo_danish.txt CRC:003f7156d9 size:4727904
+resource/csgo_dutch.txt CRC:0019b56c9f size:4775931
+resource/csgo_english.txt CRC:0088bf3aa3 size:4606011
+resource/csgo_finnish.txt CRC:00d16bd403 size:4697660
+resource/csgo_french.txt CRC:00f8317ead size:4965159
+resource/csgo_german.txt CRC:004cb422d3 size:4904031
+resource/csgo_greek.txt CRC:0020bf17cc size:6771286
+resource/csgo_hungarian.txt CRC:00a9ed6d15 size:4808918
+resource/csgo_indonesian.txt CRC:00d51e081e size:4460361
+resource/csgo_italian.txt CRC:008c7311fc size:4890139
+resource/csgo_japanese.txt CRC:009b43264e size:5025848
+resource/csgo_koreana.txt CRC:0094ae07a7 size:4822017
+resource/csgo_latam.txt CRC:0088605eef size:4901995
+resource/csgo_norwegian.txt CRC:00155c7d7f size:4656283
+resource/csgo_polish.txt CRC:00ea6940aa size:5042271
+resource/csgo_portuguese.txt CRC:0070428009 size:4797723
+resource/csgo_romanian.txt CRC:0011ba6df7 size:4991821
+resource/csgo_russian.txt CRC:0043a2d0a3 size:6235328
+resource/csgo_schinese.txt CRC:00d0741e1a size:4648471
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
-resource/csgo_spanish.txt CRC:006a6d675a size:4888224
-resource/csgo_swedish.txt CRC:0002929928 size:4757339
-resource/csgo_tchinese.txt CRC:0085287cbc size:4396622
-resource/csgo_thai.txt CRC:0078f0d109 size:7725917
-resource/csgo_turkish.txt CRC:00f6b00ec3 size:4901988
-resource/csgo_ukrainian.txt CRC:008090d401 size:6335162
-resource/csgo_vietnamese.txt CRC:00d0fa3d27 size:5168045
+resource/csgo_spanish.txt CRC:00bc293312 size:4864560
+resource/csgo_swedish.txt CRC:002feba8e7 size:4757235
+resource/csgo_tchinese.txt CRC:0000e58d24 size:4374355
+resource/csgo_thai.txt CRC:00dc403825 size:7703548
+resource/csgo_turkish.txt CRC:00caac9851 size:4878951
+resource/csgo_ukrainian.txt CRC:00fc78b542 size:6275298
+resource/csgo_vietnamese.txt CRC:00ba1e7b5b size:5151447
resource/game.gameevents CRC:0090de10bc size:9837
resource/halflife2.vfont CRC:00b064848c size:58000
resource/mod.gameevents CRC:008dcbd0da size:20719
@@ -78763,7 +78763,7 @@ scripts/navlinks.vdata_c CRC:007bea7af5 size:878
scripts/precipitation.vdata_c CRC:009200cb0f size:1164
scripts/propdata.txt CRC:0067850b5d size:17433
scripts/propdata.vdata_c CRC:00a2a4c997 size:2408
-scripts/replay_compatability_settings.txt CRC:001a5cacd8 size:765
+scripts/replay_compatability_settings.txt CRC:004f682fcd size:912
scripts/soundmixers.txt CRC:00f0e2ae90 size:39052
scripts/soundscapes_assault.vsc CRC:00cf8652b9 size:18234
scripts/soundscapes_inferno_new.vsc CRC:00821d092d size:31309
@@ -78808,7 +78808,7 @@ scripts/talker/swat_fem.vrr_c CRC:00c4cdd7b0 size:22650
scripts/tools/anim_preview_archetypes.vdata_c CRC:00d242f917 size:6878
scripts/tools/game_asset_tags.vdata_c CRC:00559be7bf size:2755
scripts/weapons.vdata_c CRC:009e00c0ab size:32148
-scripts/workshop_cvar_whitelist.txt CRC:00b8455714 size:17080
+scripts/workshop_cvar_whitelist.txt CRC:007ee7ec6e size:17545
smartprops/bicycle/bicycle_rack.vsmart_c CRC:0097f4a6c4 size:1423
smartprops/bicycle/bicycle_single.vsmart_c CRC:001f5c91ad size:1628
smartprops/debris/debris_ceiling_tiles_01.vsmart_c CRC:00c0a90e2e size:2600
game/csgo/pak01_dir/panorama/scripts/common/item_context_entries.js
modified • +1 / -1 • changes: 2
Show patch
@@ -943,7 +943,7 @@ var ItemContextEntries;
let oSettings = {
item_id: id,
override_async_btn_style: 'Negative',
- store_item_id: 'delete'
+ work_type: 'delete'
};
elPanel.Data().oSettings = oSettings;
}
game/csgo/pak01_dir/panorama/scripts/popups/popup_inspect_async-bar.js
modified • +18 / -0 • changes: 18
Show patch
@@ -213,6 +213,24 @@ var InspectAsyncActionBar;
};
HoldButton.SetupButton(btnSettings);
}
+ if (worktype === 'delete') {
+ elNegative.visible = false;
+ elOK.visible = false;
+ const btnHoldAction = elPanel.FindChildInLayoutFile('AsyncItemWorkAcceptNegativeHold');
+ btnHoldAction.RemoveClass('AsyncItemWorkAcceptNegativeHidden');
+ const btnSettings = {
+ btn: btnHoldAction,
+ tooltip: '#popup_delete_tooltip',
+ locString: '#popup_' + worktype + '_button',
+ loopingSound: 'UI.Laptop.ButtonFillLoop',
+ timerCompleteAction: () => {
+ _OnAccept(oSettings, elPanel, true);
+ btnHoldAction.enabled = false;
+ }
+ };
+ HoldButton.SetupButton(btnSettings);
+ return;
+ }
const toolId = InspectShared.GetPopupSetting('tool_id');
const itemDefName = InventoryAPI.GetItemDefinitionName(itemId);
const btnStyle = InspectShared.GetPopupSetting('override_async_btn_style') === false ?
game/csgo/pak01_dir/resource/csgo_english.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -48197,6 +48197,7 @@
"popup_delete_title" "{s:itemname}"
"popup_delete_desc" "Are you sure you want to delete this item?"
"popup_delete_warning" "Deleting an item cannot be undone."
+ "popup_delete_tooltip" "Hold to delete this item. Deleting an item cannot be undone."
"popup_delete_button" "Delete Item"
"popup_usegift_title" "Give {s:itemname}"
game/csgo/pak01_dir/scripts/replay_compatability_settings.txt
modified • +2 / -0 • changes: 2
Show patch
@@ -17,6 +17,8 @@
{ m_OldName = "CEntityIndex" m_NewName = "int32" },
{ m_OldName = "CSWeaponState_t" m_NewName = "uint32" },
{ m_OldName = "WorldGroupId_t" m_NewName = "uint32" },
+ { m_OldName = "PlayerAnimEvent_t" m_NewName = "WeaponGameplayAnimState" },
+ { m_OldName = "WeaponAttackType_t" m_NewName = "int32" },
]
}
game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt
modified • +26 / -0 • changes: 26
Show patch
@@ -517,5 +517,31 @@
"weapon_recoil_scale",
"weapon_reticle_knife_show",
"weapon_sound_falloff_multiplier",
+ "sv_legacy_jump",
+ "sv_gameinstructor_enable",
+ "sv_gameinstructor_disable",
+ "radio",
+ "player_ping",
+ "mp_teamlogo_1",
+ "mp_teamlogo_2",
+ "noclip_fixup",
+ "fov_cs_debug",
+ "sv_show_teammate_death_notification",
+ "sv_standable_normal",
+ "sv_walkable_normal",
+ "+jump",
+ "-jump",
+ "+duck",
+ "-duck",
+ "+forward",
+ "-forward",
+ "+back",
+ "-back",
+ "+left",
+ "-left",
+ "+right",
+ "-right",
+ "+sprint",
+ "-sprint",
]
}
\ No newline at end of file
game/csgo/shaders_pc_dir.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -42,8 +42,8 @@ shaders/vfx/csgo_effects_pc_50_psrs.vcs CRC:00754b4e4e size:2290
shaders/vfx/csgo_effects_pc_50_vs.vcs CRC:00c9ad5bb2 size:14931
shaders/vfx/csgo_environment.ini CRC:0000000000 size:0
shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00b5d88360 size:10754
-shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:0016d9c5d3 size:6997309
+shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00a5f7913a size:10754
+shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:00e60d796f size:6999724
shaders/vfx/csgo_environment_blend_pc_50_psrs.vcs CRC:00436d976f size:2610
shaders/vfx/csgo_environment_blend_pc_50_vs.vcs CRC:0021e09de1 size:330489
shaders/vfx/csgo_environment_pc_50_features.vcs CRC:003db16be5 size:6370
game/csgo/shaders_vulkan_dir.txt
modified • +5 / -5 • changes: 10
Show patch
@@ -47,14 +47,14 @@ shaders/vfx/csgo_effects_vulkan_50_psrs.vcs CRC:00754b4e4e size:2290
shaders/vfx/csgo_effects_vulkan_50_vs.vcs CRC:00ec4e77ab size:11204
shaders/vfx/csgo_environment.ini CRC:0000000000 size:0
shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:003c423a83 size:10658
-shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:00f0fbe685 size:14790776
+shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:006de3c747 size:10658
+shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:00ad9827d7 size:14798623
shaders/vfx/csgo_environment_blend_vulkan_50_psrs.vcs CRC:00ac22f17f size:2562
shaders/vfx/csgo_environment_blend_vulkan_50_vs.vcs CRC:001a7153a3 size:215962
-shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:007dbf3d50 size:10722
-shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:00f0fbe685 size:14790776
+shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:0057e0d8c6 size:10722
+shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:00ad9827d7 size:14798623
shaders/vfx/csgo_environment_blend_vulkan_60_psrs.vcs CRC:00ac22f17f size:2562
-shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:004adc6525 size:860536
+shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:00bad65b64 size:860536
shaders/vfx/csgo_environment_blend_vulkan_60_vs.vcs CRC:001a7153a3 size:215962
shaders/vfx/csgo_environment_vulkan_50_features.vcs CRC:00f49795b8 size:6306
shaders/vfx/csgo_environment_vulkan_50_ps.vcs CRC:005bc4bc93 size:896301
game/csgo/steam.inf
modified • +6 / -6 • changes: 12
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000730
-ServerVersion=2000730
-PatchVersion=1.41.3.5
+ClientVersion=2000735
+ServerVersion=2000735
+PatchVersion=1.41.3.6
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=10439835
-VersionDate=Feb 10 2026
-VersionTime=07:47:09
+SourceRevision=10470435
+VersionDate=Feb 23 2026
+VersionTime=15:06:02