; Best to copy and maintain your own version of this file in etc
; as I don't always have time to update it

[Viewers]
; Note that these are regular expressions, not a ordinary string match.
;
; A period means 'can match any single character' - To match a period
; literally, escape them: \\. (We didn't use that for the sake of clarity)
;
; The + (which means 'one or more of the defined character') we used
; because in some cases OpenSim uses two spaces instead of one between
; viewer name and viewer version. Otherwise legit viewers would be locked
; out and see 'Your viewer is banned'.
;
; [0..9] Means any digit 0..9. (\d doesn't work in OS)
;
; Note the OpenSim regexp interpreter needs \ to be double: \\
;
; If only the first part of a version is defined, then it'll match any
; additional string part of the version id. So 6.5.6 will match 6.5.6.12345
; and 6.5.6.67890 etc
;
; You can play with and test regular expressions at https://regexr.com/
;
; Actively maintained viewers
Cool="Cool VL Viewer +1.32.2"
Cool_dev="Cool VL Viewer +1.32.3"
Firestorm="Firestorm-Releasex64 +7.1.9.74745"
Firestorm_prev="Firestorm-Releasex64 +6.6.17.70368|Firestorm-Release +6.6.17.70368"
Firestorm_dev="Firestorm-Alphax64 +7|Firestorm-Betax64 +7"

; Older viewers possibly lacking modern features such as EEP or bento
Alchemy_old="Alchemy Beta +6.3.6.46699|Alchemy Beta +6.3.6.46705"
Alchemy_old2="Alchemy Project AgileAkita +6.5.5.1540|Alchemy Project AgileAkita +6.5.5.1535"
AvatarLife_old="AvatarLife Release 64 +1.8.9.8560"
Scenegate_old="SceneGate +1.0"
Singularity_old="Singularity Release 64 +1.8.9.8338"
Singularity_old_dev="Singularity Alpha 64 +1.8.9.8709|Singularity Beta 64 +1.8.9.8419|Singularity Beta 64 +1.8.9.8382"

; Bugged versions:
;Caused tons of unnecessary maprequest calls:
Firestorm_bad_mapspam = "Firestorm-Releasex64 +4.7.7.48706|Firestorm-Release +4.7.7.48706"
;Caused spam in logfiles with var-regions not the size equal to 2^x:
Firestorm_bad_varlog = "Firestorm-Releasex64 +6.6.8.68380|Firestorm-Release +6.6.8.68380"
;Caused inventory issues (see https://www.firestormviewer.org/woops/)
Firestorm_bad_inv = "Firestorm-Releasex64 +6.6.16.70339|Firestorm-Release +6.6.16.70339"
;First PBR version, caused inventory issues on OpenSim
Firestorm_bad_inv2 = "Firestorm-Releasex64 +7.1.9.74745"

ds_copybot="Firestorm-Releasex64 +4.6.8.42696|Firestorm-Release +4.6.8.42696"
hs_copybot="Firestorm-Releasex64 +6.4.13.63251|Firestorm-Release +6.4.13.63251|Firestorm-Releasex64 +6.3.2.58086|Firestorm-Release +6.3.2.58086|Firestorm-Releasex64 +6.4.23.64823|Firestorm-Release +6.4.23.64823"
rv_copybot="Singularity Alpha 64 +1.8.7.7610"

; Radegast only sends name, no version info
Radegast="Radegast"

[AccessControl]
; It's up to you which of above defined viewers you allow:
;AllowedClients = "${Viewers|Cool}|${Viewers|Cool_dev}|${Viewers|Firestorm}|${Viewers|Firestorm_dev}|${Viewers|Firestorm_prev}"

; Instead of allowing specific viewers, you can blacklist certain bad ones.
; This is better IMHO, copybots usually identify as legit viewers anyway.
DeniedClients = "${Viewers|ds_copybot}|${Viewers|hs_copybot}|${Viewers|rv_copybot}|${Viewers|Firestorm_bad_mapspam}|${Viewers|Firestorm_bad_varlog}|${Viewers|Firestorm_bad_inv}|${Viewers|Firestorm_bad_inv2}"