Batch Compiler v3.0.0 Beta - NemPosted: Aug 4th, 2004 - 1:54:39 am

I've uploaded a shinny new version of Batch Compiler written in C#. The new v3 series maintains the same look and design as the v2 series (in fact the main screen looks the same so I won't even bother posting a screen shot) but it has a much more robust specification management system. This is a beta release so please download it, try to break it, and then tell me how you broke it. I've rewritten and added specifications for all the various mapping programs I know of (HLFix, Map Backup, RESGen, Quake Tools, Zoners Tools, Zoners Tools p15 etc.) so keep an eye open for incorrect parameters as there may be a few floating around.

Users new to mapping are going to want to use the "Zoners Tools Normal" specification and experienced users will want to use the "Zoners Tools Advanced" specification. The main difference between the two specifications is simply the tools that make them up.

You can grab the new version here. If you have any suggestions for Batch Compiler feel free to let me know.

Modified: Mar 11th, 2005 - 1:50:32 pm[ 32463 Views ]

[ 1 2 3 4 ]

31. NemModified: Aug 31st, 2004 - 9:10:09 pm

Craftos:
The absence of a new line character after a batch command was a bug with Batch Compiler (but it has since been fixed).

Hypergrif:
The absence of the directory tree is a bug with .NET, however, I forgot to set the Single-Threaded Apartment attribute for the application entry point so this could also be causing the problem. I've uploaded a new version; let me know if it works.

Bluefang:
I'll try to get to those specification files tomorrow (sorry for the delay).

[Edit]
BTW, once I get the specification files sorted out I will be taking Batch Compiler out of Beta (providing there are no more bugs) so if you know of any let me know.

32. NoBodyModified: Sep 2nd, 2004 - 9:09:19 am

i mad a spc file for MDL decompiler

Just realised that i was to tired to make a decent bcs file i will but it back up when i just adds some stuff to it capoera

33. NoBodyPosted: Sep 2nd, 2004 - 2:47:12 pm

yay i found a bug

for some reason when i try to put a command as a parameter it will always comme with "" around it making it invaled :(

Param ">>\"${FilePath}\\${FileName}.log\""

should print out
>>"C:\myfolder\thefile.log"
but it gives this instead
">>"C:\myfolder\thefile.log""

i am using this to add a log option for programs with no build in log system.

heres the mdl decompiler i mad i comented out the log part un til it is posible to do in BC.
http://cubed.dk/nobody/stuff/MDLdec.bcs

34. NemPosted: Sep 2nd, 2004 - 6:47:46 pm

Will look into it tomorrow.

35. NemPosted: Sep 3rd, 2004 - 8:15:03 pm

Ok, if you look at your specification, in your batch you have the line:

"\"${StagePath=MdlDec}\" \"${FilePath}\\${FileName}.mdl\" \"${StageParam=MdlDec}\"\n"

You are surrounding your parameters with quotes here:

\"${StageParam=MdlDec}\"

Batch Compiler isn't generating the quotes, you are.

36. NemModified: Sep 5th, 2004 - 11:11:04 pm

I've uploaded a new version of Batch Compiler which fixes the problem you were having loading several specification files. I've also updated the specification files (note: your Batch.bci file has a few errors in it) and added your BSPTwoMap.bcs specification here.

37. BluefangModified: Sep 6th, 2004 - 7:48:45 am

I'm a little disapointed that you didn't include any of the updates that I thought were important.

And if you could un-do those changes you made to the BSPTwoMAP batch template.
you removed the part that gave it a bit of intelegence. I made it so it would try to ececute the .map in the $OutputPath before trying to exectue the .map in the source directory.

that way the user would be editing the map in the directory where they told it to be copyed.

EDIT:
it looks like your ignoring the 'Improved game execution behavior' was partly my fault.

the batch.bci that I included in the ZIP didn't have the necesarry changes for the whole thing to work. (however the batch.bci.old did?)

Along with the changes that I made to all the BCS files, the batch.bci also needed this change:


CheckBox
{
Name "Copy .BSP After Compile"
Bold "True"
Param "if not exist \"${FilePath}\\${FileName}.bsp\" goto nocopybsp\n"_
"copy \"${FilePath}\\${FileName}.bsp\" \"${OutputPath}\"\n"_
"echo ${FileName}.bsp copied to ${OutputPath}.\n"_
":nocopybsp\n"_
"echo.\n"_
"echo ERROR: File not copyed!! check your compile log!\n"_
"goto noexecmap\n"

Hint "Copy your .BSP file to your map destination folder."
}

maybe that will make a bit more sense now.

38. richeiPosted: Sep 6th, 2004 - 8:36:59 am

Nice job nem. just one little bug that i think i found.

I can't get it reproduce to insert the error, but it was telling me that it couldn't find the wad but the path was listed correctly where it lists the wads.

Basicaly, i have 3 wads that are included, but the middle one was wrong, so i changed and thats when the error started popping up. I had to reselect the first wad to fixe it.

And the v2 saved config files aren't compatible with v3. Is this a bug or just because it was rewritten?

39. NemPosted: Sep 6th, 2004 - 9:16:35 am

Bluefang:

Sorry about that, I didn't notice the two paths for the editor command line in the BSPTwoMap.bcs specification (so I thought it did nothing). Hammer kept freezing when I tried to run it so it was hard for me to test it.

Also, your right, the BSP thing wasn't in the Batch.bci specification so your changes really did do nothing (which confused me). I will reassess them (though I'm not sure if the current method is 100% right, what if the user sets BC up so the map they compile is in their maps directory anyways).

Richei:

If you could reproduce the WAD error, that would help me a lot.

Version 2 configuration files are not designed to be compatible with version 3 configuration files.

40. richeiModified: Sep 6th, 2004 - 10:16:24 am

ok, i got the error, but a different way.

I was trying out the resgen on it.

This is the excert from the log:

hlcsg v2.5.3 rel Custom Build 1.7p15 (Jun 3 2004)
Zoner's Half-Life Compilation Tools -- Custom Build
Based on code modifications by Sean 'Zoner' Cavanaugh
Based on Valve's version, modified with permission.
Submit detailed bug reports to (webmaster@xp-cagey.com)
----- BEGIN hlcsg -----
Command line: "E:\Program Files\Worldcraft\CompileTools\hlcsg.exe"-wadinclude "E:\Program Files\Worldcraft\maps\cs_nortex\nortex_8222004.wad"-wadinclude E:\wads\cs_city.wad -wadinclude E:\wads\obj_armory.wad -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_City4_rev72"
Entering E:\Program Files\Worldcraft\maps\cs_city\cs_City4_rev72.map

Current hlcsg Settings
Name | Setting | Default
---------------------|-----------|-------------------------
threads [ 1 ] [ Varies ]
verbose [ off ] [ off ]
log [ on ] [ on ]
developer [ 0 ] [ 0 ]
chart [ off ] [ off ]
estimate [ on ] [ off ]
max texture memory [ 8290304 ] [ 4194304 ]
max lighting memory [ 6291456 ] [ 6291456 ]
priority [ Normal ] [ Normal ]

noclip [ off ] [ off ]
null texture stripping[ on ] [ on ]
clipnode economy mode [ on ] [ on ]
clip hull type [ legacy ] [ legacy ]
onlyents [ off ] [ off ]
wadtextures [ on ] [ on ]
skyclip [ on ] [ on ]
hullfile [ None ] [ None ]
nullfile [ None ] [ None ]
min surface area [ 0.500 ] [ 0.500 ]
brush union threshold [ 0.000 ] [ 0.000 ]

Using mapfile wad configuration
Wadinclude list :
[zhlt.wad]
[E:\Program Files\Worldcraft\maps\cs_nortex\nortex_8222004.wad]
[E:\wads\cs_city.wad]
[E:\wads\obj_armory.wad]

2 brushes (totalling 12 sides) discarded from clipping hulls
CreateBrush:
(2.86 seconds)
SetModelCenters:
(0.02 seconds)
CSGBrush:
(2.44 seconds)

Warning: Wad file '\program files\worldcraft\maps\cs_nortex\nortex_8222004.wad' not found, also tried 'E:\Program Files\Batch Compiler\cs_nortex\nortex_8222004.wad'
Warning: Wad file '\wads\cs_city.wad' not found, also tried 'E:\Program Files\Batch Compiler\wads\cs_city.wad'
Warning: Wad file '\hlserver\valve\halflife.wad' not found, also tried 'E:\Program Files\Batch Compiler\valve\halflife.wad'
Error: Could not open wad file \program files\worldcraft\maps\cs_nortex\nortex_8222004.wad
Error: Could not find WAD file
Description: The compile tools could not locate a wad file that the map was referencing.
Howto Fix: Make sure the wad's listed in the level editor actually all exist

Error: Could not open wad file \wads\cs_city.wad
Error: Could not open wad file \hlserver\valve\halflife.wad


----- END hlcsg -----

I didn't change anything in the csg section and it was saved when i exited out. So i don't know whats going on. The wads do exist in the given paths, that i verified.

There's 1 other thing that i've noticed. there's a big size difference between v2 and v3 when it creates the bsp. When i compiled my current map in v2, it was around 4 meg, now its only 1.37 meg.

I don't think its really including the wads though since when i put it on a server, it says it can't find the wads.

If it helps, i'm using the zhlt advanced setup.

I might have something setup wrong though. What suppose to in the input box in the setup?

41. NoBodyPosted: Sep 6th, 2004 - 12:48:57 pm

the drive where your wads are on or you wad directory.
is E: the right drive

42. NoBodyModified: Sep 6th, 2004 - 2:28:23 pm

@Nem
lol that is so overuse that it is embarrassing where

fixed...
I also fixed some gramma and added delete log

updated MDLdec.bcs


Ps. i am now 21 package

43. richeiPosted: Sep 6th, 2004 - 1:43:02 pm

So i just change the input to e:\, that will fix wadinclude not always including the textures in the map?

44. NoBodyPosted: Sep 6th, 2004 - 2:29:59 pm

i am not promesing a mirical but that should be wats wrong, if not a post of the bat file (in notepad) might help.

45. richeiPosted: Sep 6th, 2004 - 7:09:24 pm

well the miracle didn't happen.

I followed the instructions on the website but to no avail.

here's the batch file from the most recent compile.

@echo off
set WADROOT=E:\Program Files\Steam\SteamApps\compfnatic80@hotmail.com\counter-strike
echo ###################################################
echo # Batch Compiler #
echo ###################################################
echo ###################################################
echo # Please report bugs to: ryansgregg@hotmail.com #
echo ###################################################
echo.
echo Written At: 9/6/2004 8:14 PM
echo BC Version: 3.0.0.0
echo.
"E:\Program Files\Worldcraft\CompileTools\hlcsg.exe" -wadinclude "E:\Program Files\Worldcraft\maps\cs_nortex\nortex_8222004.wad" -wadinclude E:\wads\cs_city.wad -wadinclude E:\SIERRA\Half-Life\cstrike\halflife.wad -wadinclude E:\wads\cars.wad -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"
"E:\Program Files\Worldcraft\CompileTools\hlbsp.exe" -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"
"E:\Program Files\Worldcraft\CompileTools\hlvis.exe" -full -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"
"E:\Program Files\Worldcraft\CompileTools\hlrad.exe" -customshadowwithbounce -extra -fade 3.0 -smooth 50.0 -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"
if not exist "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p0" goto nodelp0
del "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p0"
echo E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p0 deleted.
:nodelp0
if not exist "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p1" goto nodelp1
del "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p1"
echo E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p1 deleted.
:nodelp1
if not exist "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p2" goto nodelp2
del "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p2"
echo E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p2 deleted.
:nodelp2
if not exist "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p3" goto nodelp3
del "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p3"
echo E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.p3 deleted.
:nodelp3
if not exist "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.bsp" goto nocopybsp
copy "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.bsp" "E:\Program Files\Steam\SteamApps\compfnatic80@hotmail.com\counter-strike\cstrike\maps"
echo cs_city_b1.bsp copied to E:\Program Files\Steam\SteamApps\compfnatic80@hotmail.com\counter-strike\cstrike\maps.
:nocopybsp
if not exist "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.pts" goto nocopypts
copy "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.pts" "E:\Program Files\Steam\SteamApps\compfnatic80@hotmail.com\counter-strike\cstrike\maps"
echo cs_city_b1.pts copied to E:\Program Files\Steam\SteamApps\compfnatic80@hotmail.com\counter-strike\cstrike\maps.
:nocopypts
echo.
if exist "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.log" "C:\WINNT\system32\notepad.exe" "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.log"

This is the compile log from the same compile.

hlcsg v2.5.3 rel Custom Build 1.7p15 (Jun 3 2004)
Zoner's Half-Life Compilation Tools -- Custom Build
Based on code modifications by Sean 'Zoner' Cavanaugh
Based on Valve's version, modified with permission.
Submit detailed bug reports to (webmaster@xp-cagey.com)
----- BEGIN hlcsg -----
Command line: "E:\Program Files\Worldcraft\CompileTools\hlcsg.exe"-wadinclude "E:\Program Files\Worldcraft\maps\cs_nortex\nortex_8222004.wad"-wadinclude E:\wads\cs_city.wad -wadinclude E:\SIERRA\Half-Life\cstrike\halflife.wad -wadinclude E:\wads\cars.wad -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"
Entering E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.map

Current hlcsg Settings
Name | Setting | Default
---------------------|-----------|-------------------------
threads [ 1 ] [ Varies ]
verbose [ off ] [ off ]
log [ on ] [ on ]
developer [ 0 ] [ 0 ]
chart [ off ] [ off ]
estimate [ on ] [ off ]
max texture memory [ 8290304 ] [ 4194304 ]
max lighting memory [ 6291456 ] [ 6291456 ]
priority [ Normal ] [ Normal ]

noclip [ off ] [ off ]
null texture stripping[ on ] [ on ]
clipnode economy mode [ on ] [ on ]
clip hull type [ legacy ] [ legacy ]
onlyents [ off ] [ off ]
wadtextures [ on ] [ on ]
skyclip [ on ] [ on ]
hullfile [ None ] [ None ]
nullfile [ None ] [ None ]
min surface area [ 0.500 ] [ 0.500 ]
brush union threshold [ 0.000 ] [ 0.000 ]

Using mapfile wad configuration
Wadinclude list :
[zhlt.wad]
[E:\Program Files\Worldcraft\maps\cs_nortex\nortex_8222004.wad]
[E:\wads\cs_city.wad]
[E:\SIERRA\Half-Life\cstrike\halflife.wad]
[E:\wads\cars.wad]

2 brushes (totalling 12 sides) discarded from clipping hulls
CreateBrush:
(3.80 seconds)
SetModelCenters:
(0.02 seconds)
CSGBrush:
(2.89 seconds)

Using Wadfile: \program files\worldcraft\maps\cs_nortex\nortex_8222004.wad
- Contains 34 used textures, 18.99 percent of map (111 textures in wad)
Using Wadfile: \wads\cs_city.wad
- Contains 68 used textures, 37.99 percent of map (139 textures in wad)
Using Wadfile: \hlserver\valve\halflife.wad
- Contains 54 used textures, 30.17 percent of map (3116 textures in wad)
Using Wadfile: \wads\cars.wad
- Contains 23 used textures, 12.85 percent of map (73 textures in wad)

added 12 additional animating textures.
Texture usage is at 4.18 mb (of 7.91 mb MAX)
8.23 seconds elapsed

----- END hlcsg -----



hlbsp v2.5.3 rel Custom Build 1.7p15 (Jun 3 2004)
Zoner's Half-Life Compilation Tools -- Custom Build
Based on code modifications by Sean 'Zoner' Cavanaugh
Based on Valve's version, modified with permission.
Submit detailed bug reports to (webmaster@xp-cagey.com)
----- BEGIN hlbsp -----
Command line: "E:\Program Files\Worldcraft\CompileTools\hlbsp.exe"-estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"

Current hlbsp Settings
Name | Setting | Default
-------------------|-----------|-------------------------
threads [ 1 ] [ Varies ]
verbose [ off ] [ off ]
log [ on ] [ on ]
developer [ 0 ] [ 0 ]
chart [ off ] [ off ]
estimate [ on ] [ off ]
max texture memory [ 8290304 ] [ 4194304 ]
priority [ Normal ] [ Normal ]

noclip [ off ] [ off ]
nofill [ off ] [ off ]
noopt [ off ] [ off ]
null tex. stripping [ on ] [ on ]
notjunc [ off ] [ off ]
subdivide size [ 240 ] [ 240 ] (Min 64) (Max 512)
max node size [ 1024 ] [ 1024 ] (Min 64) (Max 8192)


SolidBSP [hull 0] 500...1000...1500...2000...2500...2942 (0.34 seconds)
BSP generation successful, writing portal file 'E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1.prt'
SolidBSP [hull 1] 500...1000...1500...2000...2500...3000...3196 (0.52 seconds)
SolidBSP [hull 2] 500...1000...1500...2000...2500...3000...3120 (0.47 seconds)
SolidBSP [hull 3] 500...1000...1500...2000...2500...3000...3473 (0.92 seconds)
6.20 seconds elapsed

----- END hlbsp -----



hlvis v2.5.3 rel Custom Build 1.7p15 (Jun 3 2004)
Zoner's Half-Life Compilation Tools -- Custom Build
Based on code modifications by Sean 'Zoner' Cavanaugh
Based on Valve's version, modified with permission.
Submit detailed bug reports to (webmaster@xp-cagey.com)
----- BEGIN hlvis -----
Command line: "E:\Program Files\Worldcraft\CompileTools\hlvis.exe"-full -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"
1401 portalleafs
4397 numportals

-= Current hlvis Settings =-
Name | Setting | Default
-------------------|-----------|-------------------------
threads [ 1 ] [ Varies ]
verbose [ off ] [ off ]
log [ on ] [ on ]
developer [ 0 ] [ 0 ]
chart [ off ] [ off ]
estimate [ on ] [ off ]
max texture memory [ 8290304 ] [ 4194304 ]
max vis distance [ 0 ] [ 0 ]
priority [ Normal ] [ Normal ]

fast vis [ off ] [ off ]
full vis [ on ] [ off ]


BasePortalVis:
(20.42 seconds)
LeafThread:
(358.05 seconds)
average leafs visible: 181
g_visdatasize:81114 compressed from 246576
378.67 seconds elapsed [6m 18s]

----- END hlvis -----



hlrad v2.5.3 rel Custom Build 1.7p15 (Jun 3 2004)
Zoner's Half-Life Compilation Tools -- Custom Build
Based on code modifications by Sean 'Zoner' Cavanaugh
Based on Valve's version, modified with permission.
Submit detailed bug reports to (webmaster@xp-cagey.com)
----- BEGIN hlrad -----
Command line: "E:\Program Files\Worldcraft\CompileTools\hlrad.exe"-customshadowwithbounce -extra -fade 3.0 -smooth 50.0 -estimate -texdata 8096 "E:\Program Files\Worldcraft\maps\cs_city\cs_city_b1"

-= Current hlrad Settings =-
Name | Setting | Default
--------------------|---------------------|-------------------------
threads [ 1 ] [ Varies ]
verbose [ off ] [ off ]
log [ on ] [ on ]
developer [ 0 ] [ 0 ]
chart [ off ] [ off ]
estimate [ on ] [ off ]
max texture memory [ 8290304 ] [ 4194304 ]
max lighting memory [ 6291456 ] [ 6291456 ]
priority [ Normal ] [ Normal ]

vismatrix algorithm [ Original ] [ Original ]
oversampling (-extra)[ on ] [ off ]
bounces [ 1 ] [ 1 ]
bounce dynamic light [ on ] [ on ]
ambient light [ 0.000 0.000 0.000 ] [ 0.000 0.000 0.000 ]
maximum light [ 255.000 ] [ 256.000 ]
circus mode [ off ] [ off ]

smoothing threshold [ 50.000 ] [ 50.000 ]
direct threshold [ 25.000 ] [ 25.000 ]
direct light scale [ 2.000 ] [ 2.000 ]
coring threshold [ 1.000 ] [ 1.000 ]
patch interpolation [ on ] [ on ]

texscale [ on ] [ on ]
patch subdividing [ on ] [ on ]
chop value [ 64.000 ] [ 64.000 ]
texchop value [ 32.000 ] [ 32.000 ]

global fade [ 3.000 ] [ 1.000 ]
global falloff [ 2 ] [ 2 ]
global light scale [ 1.000 1.000 1.000 ] [ 1.000 1.000 1.000 ]
global gamma [ 0.500 0.500 0.500 ] [ 0.500 0.500 0.500 ]
global light scale [ 1.000 ] [ 1.000 ]
global sky diffusion [ 1.000 ] [ 1.000 ]

opaque entities [ on ] [ on ]
sky lighting fix [ on ] [ on ]
incremental [ off ] [ off ]
dump [ off ] [ off ]

colour jitter [ 0.0 0.0 0.0 ] [ 0.0 0.0 0.0 ]
monochromatic jitter [ 0.0 0.0 0.0 ] [ 0.0 0.0 0.0 ]
softlight hack [ 0.0 0.0 0.0 0.0 ] [ 0.0 0.0 0.0 0.0 ]
diffuse hack [ on ] [ on ]
spotlight points [ on ] [ on ]

custom shadows with bounce light
[ on ] [ off ]
rgb transfers [ off ] [ off ]


[Reading texlights from 'E:\Program Files\Worldcraft\CompileTools\lights.rad']
[68 texlights parsed from 'E:\Program Files\Worldcraft\CompileTools\lights.rad']

5660 faces
Create Patches : 28908 base patches
0 opaque faces
332250 square feet [47844024.00 square inches]
438 direct lights

BuildFacelights:
(247.56 seconds)
visibility matrix : 49.8 megs
BuildVisLeafs:
(3650.17 seconds)
custom shadow array : 308.9 megs
MakeScales:
(140.89 seconds)
SwapTransfers:
(27.28 seconds)
Transfer Lists : 26490626 : 26.49M transfers
Indices : 14578108 : 13.90M bytes
Data : 105962504 : 101.05M bytes
GatherLight:
(5.02 seconds)
FinalLightFace:
(3.80 seconds)
4133.14 seconds elapsed [1h 8m 53s]

----- END hlrad -----

The wadinclude seems to be the only thing not working.

This the input path:
E:\Program Files\Steam\SteamApps\compfnatic80@hotmail.com\counter-strike

and this the output path:
E:\Program Files\Steam\SteamApps\compfnatic80@hotmail.com\counter-strike\cstrike\maps

[ 1 2 3 4 ]

You must be logged in to post a comment.
New users can register here.
Nem's Tools v2.0 © 2006 Ryan Gregg.
Execution time: 0.061772s; Queries: 17.
dishes served.
Powered by The Wavelength.

Valid XHTML 1.0 Transitional Valid CSS
π