atvise
3.11.0
  • Welcome to atvise
  • How to use this help
  • Before you start
    • System Requirements
    • Migration Information - short description
    • Information for SVG
    • Software License Agreement
  • Installing & licensing
    • Installing atvise
    • Licensing
      • Getting an atvise webMI or scada license
      • atvise scada CCD licensing
      • Fixed client licensing
      • Web client licensing
      • Data source licensing
      • Mirrored variable licensing
  • Tutorials
    • First steps: atvise scada
      • 1 Starting atvise
      • 2 Start and connect atvise builder
      • 3 The first display
      • 4 Dynamics
        • 4.1 The first dynamics
        • 4.2 Using predefined controls
        • 4.3 Using quick dynamics
        • 4.4 Using simple dynamics
      • 5 Connecting to a foreign server
      • 6 Object-oriented engineering
      • 7 Adding an object display
      • 8 Adding historization
      • 9 Adding alarms
      • 10 Adding user rights
    • First steps: atvise webMI
      • 1 Start atvise
      • 2 Add server and import data variables
      • 3 Draw a display and generate visualization
      • 4 The visualization
      • 5 Parameterization option 1 - direct addressing
        • 5.1 Using predefined controls
        • 5.2 Using quick dynamics
        • 5.3 Using the simple dynamics dialog
      • 6 Parameterization option 2a - object oriented
      • 7 Parameterization option 2b - object oriented
      • 8 Parameterization option 3 - display at the object type
    • How-tos
      • Configure access control for the first time
      • Mirror alarms considering access control and user mapping
        • Data source configuration
        • Configuring "ds_atvise"
        • Configuring the main project
  • Security
    • atvise access control
      • Introduction
        • Basics
        • Overview
      • Common use cases
      • Information & notes
        • Default rights
        • Engineering
          • Quick Dynamics
          • Version control
          • Alarming
          • Scripting
          • Inheritance
          • Overriding instances
        • Visualization
          • Cookie support
          • Resources
          • Object display rights
          • Configuration nodes for graphics elements
    • Certificates
      • Introduction
        • Certificate management basics
        • Usage of certificates in atvise
      • Configuration
        • Command line parameters
        • atvise server
        • atvise builder
        • Basic settings for self-signed certificates
      • Application Instance Certificate
        • X.509v3 format
      • Certificate store
        • Server applications
        • Client applications
        • Directory structure
          • Certificate chains in atvise
      • Certificate management
        • atvise builder
          • Connection certificates
          • User certificates
        • atvise server
      • First connection using self-signed certificates
        • Connecting atvise builder and server
        • Login with user certificates
        • Connecting to data sources
  • Reference manual
    • Overview of the atvise components
    • atvise visualization
      • Introduction
        • User interface
      • Login & authentication
        • Login
        • Two-factor authentication
        • User information
      • Logout & auto reconnect
        • Logout
        • Auto reconnect
      • Navigation
        • Components
          • Display "navigation"
        • Examples
          • Creation of a custom menu
          • Visibility and animation
          • Limitation of the passed parameters
      • Alarm list
      • History list
      • Responsive Design Lite
      • Scaling
      • Tab Handler
      • Highcharts Trend
        • Main display
        • Configuration dialog
      • Tooltips
      • Consistency handler
      • Preloading
      • URL parameters
      • webMI events
      • Timer
      • HTML table
        • Components
          • Display "table"
          • Display "table_panel"
          • Display "table_footer" (status bar)
          • Display "table_notification"
        • Runtime mode (loading data)
        • Security mechanisms
        • Coding and reference
          • First steps
          • Basic structure of the configuration
          • Parameters of the configuration
          • Using the table controller
        • Formatting column contents
        • Customizing table appearance
      • Archive Management
        • Display
        • Configuration
        • Using the display
      • Logger
      • Access control event log
      • Recipe management
        • Manage recipe templates
        • Edit recipe templates
        • Manage recipes
        • Edit recipes
        • Activate recipes
          • Recipe picker
          • Recipe picker (small)
    • atvise server
      • Introduction
      • atserver.ini
      • Default import and standard resources
      • Statistics of atvise server
    • atvise monitor
      • Basics
      • Licensing
      • Server and project console
    • atvise builder
      • Introduction
        • Command line parameters
        • Server connection dialog
        • Overview
          • 1. Menu
          • 2. Tree
          • 3. Editor and Viewer
          • 4. Global Search / Message / Library
      • Menu
        • Introduction
        • Global Search
        • Project history and change log
        • XML export and import
        • atvise live
        • Version Control
          • Configuration
          • Export / Import
        • Access Control
          • Settings…
          • Access control editor
            • 1. Nodes
            • 2. Groups
            • 3. Rights
          • Edit Current User…
      • Tree
        • Introduction
        • Add and edit server
        • webMI server
          • Introduction
          • Objects - Importing
          • Generate visualization
        • My Server
          • Introduction
          • Handling data sources
            • Introduction
            • Add data source
              • Add OPC UA data source
              • Add redundant data source
              • Add atvise connect data source
              • Add atvise OPC UA to S7 data source
              • Add OPC COM data source
              • Add webMI data source
              • Add SNMP data source
            • Import methods from data sources
            • OPC COM configuration
              • atvise x64 server
              • OPC DCOM
          • Objects
            • Creating a data structure
            • Mirror variables from data sources
              • Mirror variables from data sources
              • Direct - absolute mirroring
              • Object oriented - relative mirroring
              • Manual adding/editing of mirror properties
            • Adding scripts to nodes
          • Alarming
            • Configuration
              • Alarm categories
              • Prevention and modification scripts
              • Alarm configuration
            • Alarm groups and sum alarms
            • Alarm statistics
            • Mirroring
              • General
              • Conditions
              • Field mapping
              • Colors and flash intervals
          • Historizing data
            • Add Archive Group
              • Data
              • Aggregate
              • Event
            • Historizing (and aggregating) a node
            • Pass-through queries
            • Synchronization
            • Query history
            • Swapping in/out archive files
            • Historization settings
          • Aggregating data
            • General
            • Aggregate functions
            • Parametrization of aggregates
            • Query of aggregates
          • Diagnostics
          • SMTP settings
          • HTTP settings
            • Creating and configuring web servers
              • Using NTLM
              • Login / Logout script
              • Protected calls
              • Modifying the HTTP header
              • Unauthorized Response Script
              • Access Denied Displays
            • Using HTTPS
        • Global parameters
          • Default global parameters and lists
          • Adding a global parameter
          • Adding a global list
        • Manage displays
        • Layouts
        • Edit quick dynamics
        • Adding displays to variable types
        • Languages
          • Translation editor
          • Using translations in builder
          • Displaying translations
        • Users and groups
          • Users
          • Groups
        • Cross references
        • Views
        • Menu scripts
      • Display Editor
        • Introduction
        • Graphical Editor
          • Introduction
            • Basic element handling
          • Editor functions
            • Standard functions
            • Grid, snap, zoom and freeze
            • Edit items
            • Drawing shapes
            • Attributes and styles
            • Context menu functions
            • Keyboard Shortcuts
          • Dynamics
            • Simple dynamics
              • Introduction
              • 0. RIGHT
              • 1. EVENT
              • 2. RESULT
              • 3. ACTION
              • Examples
            • Quick Dynamics
          • SVG attributes
          • Display parameters
          • Object-oriented parameterization
          • Example: Simple bar display
        • Code Editor
      • Quick Dynamics
        • Access Control Element Notifier
        • Access Control Manager
          • Usage
        • Acknowledge Alarm
        • Aggregate Manager
        • Alarmmanagement
        • Auto Logout
        • Auto Reconnect
        • Change Color by Alarm
        • Change Color by Node
        • Change Display by Node
        • Change Display on Event
        • Change Opacity
        • Change Stroke by Node
        • Change Visibility and Blinking
        • Configuration
        • Consistency Handler
        • Disk Space Monitoring
        • Element menu
          • Usage
        • Element Menu Default Items
        • Element Menu Manager
        • Index
        • Login handler
          • Usage
        • Move
        • Navigation
        • Open Context Menu
        • Open Element Menu
        • Open Main Menu
        • Open Picker
        • Open PopUp
        • Performance Measurement
          • Usage
        • Show Redundancy Information
        • Rotate
        • Save As
        • Scale
        • Set Node
        • Set Slider Horizontal
        • Set Slider Vertical
        • Set Text
        • Tab Handler
        • Time Formats
          • splitTime()
          • splitTimeToString()
        • Tooltip
        • Tree View
          • collapse()
          • collapseAll()
          • expand()
          • expandAll()
          • getSelectedNode()
          • selectNode()
          • setTreeStructure()
          • setSelectableTypes()
          • filter()
          • off()
          • on()
          • destroy()
        • Write Log Entry
      • Object Displays
        • Archive management
          • Add Schedule
          • Archive Management
          • Auto-Scheduler Management
          • Confirmation Dialog
        • Dashboard
          • Charts
            • Bar
            • Gauge
            • Pie and Doughnut
            • Progress Bar
          • Base Custom Tile
          • Base Value Tile
          • Chart Bar Tile
          • Chart Gauge Tile
          • Chart Line Tile
          • Chart Progress Bar Tile
        • Dialogs
          • Alarm Comment Dialog
          • Timed Shelve Dialog
          • Date Picker Dialog
          • E-mail configurator
          • Login Dialog
          • Login Dialog (2FA)
          • Message Board
          • Message Dialog
          • Message Dialog (Small)
          • Color Picker Dialog
          • User Editor
          • Password Editor
        • Highcharts
          • Button Back
          • Button Back (Small)
          • Configuration Selector
          • Button Forward
          • Button Forward (Small)
          • Time Range Selector
          • Chart Container
          • Legend Table
          • Main Display
          • Main Display (800x425)
          • Main Display (800x900)
          • Configuration - Top Display
          • Configuration - Top Display (Small)
          • Configuration - General
          • Configuration - General (Small)
          • Configuration - Save/Load
          • Configuration - Save/Load (Small)
          • Configuration - Series
          • Configuration - Series (Small)
          • Configuration - Bar/Column
          • Configuration - Bar/Column (Small)
          • Configuration - Line/Area
          • Configuration - Line/Area (Small)
          • Configuration - Pie
          • Configuration - Start
          • Configuration - X-Axis
          • Configuration - X-Axis (Small)
          • Configuration - Y-Axis
          • Configuration - Y-Axis (Small)
          • Toolbar
        • HMI
          • Access Control Log
          • Access Control Log Dialog
          • Alarmlist
          • Alarmlist Log
          • Alarmlist Popup
          • Alarmlist (Small)
          • Alarmlist (Small - Portrait)
          • Alarmlog Three Rows
          • Alarmlog One Row
          • Alarmlog Three Rows (Small)
          • Background Area
          • Button/Display Login
          • Group Alarm
          • Group Display
          • Group Zoom
          • Button Login
          • Button Switch Language
          • Button/Display Language
          • Button Reset Zoom
          • Button Zoom-In
          • Button Zoom-Out
          • Button Zoom-Area
          • Clock Analog
          • Clock Combined
          • Display Date
          • Historylist
          • Historylist (800x425)
          • Historylist (800x900)
          • iFrame: To Display a Display
          • Display Time
          • Display Time Advanced
          • Topframe Large (1280x120)
          • Topframe (1024x210)
          • Topframe Small (800x120)
          • Topframe One Row
          • Display User
          • Datasource State
        • Keyboard
          • Alphanumerical Keyboard
          • Numerical Keyboard
        • Layoutelements
          • Language Box (357x65)
          • Language Box (178x65)
          • User Box (358x65)
          • User Box (246x65)
          • Button Alarmlog
          • Button Alarmlog (Small)
          • Button Custom
          • Button Custom (Small)
          • Button Favorites
          • Button Favorites (Small)
          • Button Favorites (small, half)
          • Group Zoom
          • Button Access Control Log
          • General Log Button
          • Date Element
          • Favorites Name Input
          • Redundancy Info
          • Time Element
        • Logger
          • Button Open Log
          • Log View
          • Log View (Small)
        • Recipe management
          • Add Popup
          • Error Popup
          • Delete Dialog
          • Recipe Editor
          • Recipe Manager
          • Switch Templates/Recipes
          • Recipe Picker (Small)
          • Confirmation Dialog
          • Recipe Picker
          • Recipe Template Editor
          • Recipe Template Manager
        • Redundancy
          • Redundancy State
          • Vitality Table
          • Warning
        • Report
          • Report Editor
          • E-mail configuration
          • Report Management
          • Generate Report Dialog
          • Report Viewer
        • Slickgrid
          • Table
          • Table Footer
          • SVG Keyboard (table extension)
          • Button Table Notification
          • Table Panel
        • Timer
          • Timer
        • Bar Horizontal
        • Bar Vertical
        • Button
        • Button Alarmlist
        • Button Image Display
        • Button Increment/Decrement
        • Button Open Display
        • Button Set Address
        • Button Switch
        • Checkbox
        • Clickarea
        • Combobox
        • Gauge
        • In/Out Date
        • In/Out Date-Time
        • In/Out Password
        • In/Out Time
        • In/Out Value
        • Label
        • Navigation
        • Picker Address
        • Picker Color
        • Picker Date
        • Picker Interval
        • Picker Value
        • Radiobutton
        • Rocker Switch
        • Rocker Switch (Small)
        • Rocker Switch Horizontal
        • Slider Horizontal
        • Slider Vertical
      • Server script editor
    • atvise maintenance tool
      • Introduction
      • Project Database Operations
      • Archive(s) Operations
      • Options
      • Log files
    • Client/Browserside scripting
      • Introduction
      • Configuration
      • General functions
        • webMI.addEvent()
        • webMI.addOnload()
        • webMI.addOnunload()
        • webMI.callExtension()
        • webMI.hasRight()
        • webMI.inList()
        • webMI.sprintf()
        • webMI.query[key]
        • webMI.escapeHTML()
        • webMI.unescapeHTML()
        • webMI.secureString()
        • webMI.getMethodSupport()
        • webMI.getFeatureSupport()
        • webMI.getClientInfo()
        • webMI.getMailPolicy()
        • webMI.getPasswordPolicy()
        • webMI.getSessionID()
        • webMI.localizeNumber()
      • Data functions
        • webMI.data.call()
        • webMI.data.read()
        • webMI.data.subscribe()
        • webMI.data.unsubscribe()
        • webMI.data.subscribeBlock()
        • webMI.data.write()
        • webMI.data.addEventListener()
        • webMI.data.login()
        • webMI.data.logout()
        • webMI.data.changeemail()
        • webMI.data.changepassword()
        • webMI.data.twofactorLogin()
        • webMI.data.twofactorSendMail()
        • webMI.data.twofactorGetOTPAuth()
        • webMI.data.pause()
        • webMI.data.resume()
        • webMI.data.isPaused()
        • webMI.data.queryFilter()
        • webMI.data.queryNext()
        • webMI.data.queryRelease()
        • webMI.data.subscribeFilter()
        • webMI.data.unsubscribeFilter()
        • webMI.data.readFilter()
        • webMI.data.customRequest()
        • webMI.data.loadScript()
        • webMI.data.getRights()
      • Alarm functions
        • webMI.alarm.accept()
        • webMI.alarm.acceptDisplay()
        • webMI.alarm.subscribe()
        • webMI.alarm.unsubscribe()
      • Graphics functions
        • webMI.translate()
        • webMI.gfx.setRotation()
        • webMI.gfx.setMoveX()
        • webMI.gfx.setMoveY()
        • webMI.gfx.setScaleX()
        • webMI.gfx.setScaleY()
        • webMI.gfx.setSkewX()
        • webMI.gfx.setSkewY()
        • webMI.gfx.setFill()
        • webMI.gfx.setVisible()
        • webMI.gfx.createPoint()
        • webMI.gfx.getScreenCTM()
        • webMI.gfx.getAbsoluteOffset()
        • webMI.gfx.getAbsoluteScaleFactor()
        • webMI.gfx.getBoundingClientRect()
        • webMI.gfx.setScaledEvents()
        • webMI.gfx.scaleEventCoordinates()
      • Widget functions
        • webMI.widget.getValue()
        • webMI.widget.setDisabled()
        • webMI.widget.setValue()
      • Display functions
        • webMI.display.openWindow()
        • webMI.display.openDisplay()
        • webMI.display.openUrl()
        • webMI.display.closeWindow()
        • webMI.display.showPopup()
        • webMI.frame.getActiveFrames()
      • Sound functions
        • webMI.sound.play()
        • webMI.sound.stop()
      • Trigger functions
        • webMI.trigger.connect()
        • webMI.trigger.fire()
      • Key functions
        • webMI.keys.addCombinationListener()
        • webMI.keys.addDownListener()
        • webMI.keys.addPressListener()
        • webMI.keys.addUpListener()
        • webMI.keys.isDown()
      • Performance functions
        • webMI.performance.setMarker()
        • webMI.performance.getMarkers()
        • webMI.performance.clearMarkers()
    • SCADA serverside scripting
      • Introduction
      • Conventions
      • Scheduling rules
      • Access control functions
        • conf.setPermissionsForGroup()
        • conf.getPermissionsForGroup()
        • conf.deletePermissionsFromGroup()
        • conf.setPermissionsForNode()
        • conf.getPermissionsForNode()
        • conf.deletePermissionsFromNode()
        • conf.getRuntimePermissionsForNode()
      • Alarming functions
        • alarming.list
        • alarming.conditions
        • alarming.configuration()
        • alarming.read()
        • alarming.conditionid()
        • alarming.groups
        • alarming.group()
        • alarming.acknowledge()
        • alarming.confirm()
        • alarming.comment()
        • alarming.shelve()
        • alarming.unshelve()
        • alarming.suppress()
        • alarming.unsuppress()
        • alarming.disable()
        • alarming.enable()
      • Archive locking functions
      • Certificate functions
        • server.certificates.list()
        • server.certificates.trust()
        • server.certificates.reject()
        • server.certificates.create()
        • server.certificates.upload()
        • server.certificates.read()
        • server.certificates.delete()
        • server.certificates.defaults()
        • server.certificates.expired()
        • server.certificates.syncStores()
        • Constants
        • Certificate object
      • ChildProcess functions
        • ChildProcess
          • ChildProcess.exec()
          • ChildProcess.execAsync()
          • ChildProcess.write()
          • ChildProcess.running()
          • ChildProcess.terminate()
          • ChildProcess.join()
          • ChildProcess.exitCode
          • ChildProcess.stdErr
          • ChildProcess.stdOut
      • Control and diagnostic functions
        • call()
        • execute()
        • lock()
        • console.log()
        • console.info()
        • console.debug()
        • console.warn()
        • console.error()
      • CSVReader functions
        • CSVReader
          • CSVReader.load()
          • CSVReader.parse()
      • Data source functions
      • FileSystem functions
        • FileSystem
          • FileSystem.capacity()
          • FileSystem.freeSpace()
          • FileSystem.copy()
          • FileSystem.move()
          • FileSystem.listRootDirectories()
          • FileSystem.createFile()
          • FileSystem.deleteFile()
          • FileSystem.isFile()
          • FileSystem.fileSize()
          • FileSystem.creationDate()
          • FileSystem.modificationDate()
          • FileSystem.createDirectory()
          • FileSystem.deleteDirectory()
          • FileSystem.isDirectory()
          • FileSystem.listDirectory()
          • FileSystem.directorySize()
      • globals object
        • globals.set()
        • globals.get()
        • globals.has()
        • globals.remove()
      • History functions
        • history.write()
        • history.query()
        • history.queryNext()
        • history.queryRelease()
        • history.aggregate()
        • history.directory
        • history.swapin
      • HTTPClient functions
        • HTTPClient
          • HTTPClient.request()
          • HTTPClient.get()
      • InputFileStream functions
        • InputFileStream
          • InputFileStream.open()
          • InputFileStream.close()
          • InputFileStream.read()
          • InputFileStream.readLine()
      • ODBCClient functions
        • ODBCClient
          • ODBCClient.open()
          • ODBCClient.close()
          • ODBCClient.query()
          • ODBCClient.info()
          • ODBCClient.sources()
          • ODBCClient.types()
          • ODBCClient.tables()
          • ODBCClient.columns()
      • opcua object
        • opcua.readFilter()
      • OutputFileStream functions
        • OutputFileStream
          • OutputFileStream.open()
          • OutputFileStream.close()
          • OutputFileStream.write()
          • OutputFileStream.writeLine()
      • Report functions
        • Report
          • Report.runtimes
          • Report.usedDotnetDeployment
          • Report.generate()
          • Report.save()
          • Report.saveAsPdf()
          • Report.convertToPdf()
          • Report.release()
      • script object
        • script.owner
        • script.caller
        • script.executor
        • script.runContext
        • script.trigger
        • script.priority
      • Security functions
        • checkUserPassword()
        • setUserPassword()
      • server object
        • server.database
          • server.database.backup()
        • server.event.create()
        • server.script.origin
        • server.shared.directory
        • server.statistics
        • server.webaccess.deleteSessions()
        • server.webaccess.getSessionInfos()
      • SMTPClient functions
        • SMTPClient
          • SMTPClient.addAttachment()
          • SMTPClient.send()
      • TCPClient functions
        • TCPClient
          • TCPClient.connect()
          • TCPClient.close()
          • TCPClient.send()
          • TCPClient.receive()
          • TCPClient.shutdown()
      • Translation functions
      • Ua functions
        • Introduction
        • UaNode functions (deprecated)
          • UaNode
            • UaNode.exists()
            • UaNode.create()
            • UaNode.remove()
            • UaNode.browse()
            • UaNode.addreference()
            • UaNode.deletereference()
            • UaNode.assign()
            • UaNode.datahistory()
            • UaNode.datahistoryRelease()
            • UaNode.call()
            • UaNode.good()
            • UaNode.bad()
            • UaNode.uncertain()
            • UaNode.equal()
            • UaNode.toString()
            • UaNode.statusToString()
            • UaNode.nodeclassToString()
        • Ua functions
          • Ua.findNode()
          • Ua.createNode()
          • Ua.readFilter()
          • Ua.Status()
          • Class specific functions
            • Ua.<Class>.remove()
            • Ua.<Class>.browse()
            • Ua.<Class>.addReference()
            • Ua.<Class>.deleteReference()
            • Ua.<Class>.equal()
            • Ua.<Class>.valueOf()
            • Ua.Variable.assign()
            • Ua.Variable.dataHistory()
            • Ua.Variable.dataHistoryRelease()
            • Ua.<Class>.toString()
            • Ua.Method.call()
          • Object properties
          • Constants
      • Version control functions
      • XMLDoc functions
        • XMLDoc
        • XMLNode.attribute()
        • XMLNode.first()
        • XMLNode.last()
        • XMLNode.next()
        • XMLNode.previous()
      • XML export and import functions
  • atvise tools & third-party components
    • atvise builder launcher
      • Requirements
      • Configuration
      • Execution
    • Auto licensing (autolic.exe)
      • Requirements
      • Configuration
        • autolic.ini
        • Command line parameters
      • Usage
    • atvise report
      • Introduction
        • Requirements
        • Basics
        • Overview
      • Template
        • Markup Language
          • Parameters
        • Examples
        • Behavior when inserting data
      • Generating reports
        • Introduction
        • Report configurations
          • Creating report configurations
            • Report Management
            • Report Editor
            • Create reports manually
            • Global settings for e-mail notifications
            • Report viewer
          • Creating reports via visualization
    • Integrating third-party components
      • Integrating Scope 3 into atvise
        • Scope 3 configuration on M1 controller
        • Highcharts configuration with Scope 3 as data source
      • M1 webMI pro
  • Known issues
  • Support and further information
atvise
  • »
  • Tutorials
Next Previous

Tutorials¶

  • First steps: atvise scada
    • 1 Starting atvise
    • 2 Start and connect atvise builder
    • 3 The first display
    • 4 Dynamics
      • 4.1 The first dynamics
      • 4.2 Using predefined controls
      • 4.3 Using quick dynamics
      • 4.4 Using simple dynamics
    • 5 Connecting to a foreign server
    • 6 Object-oriented engineering
    • 7 Adding an object display
    • 8 Adding historization
    • 9 Adding alarms
    • 10 Adding user rights
  • First steps: atvise webMI
    • 1 Start atvise
    • 2 Add server and import data variables
    • 3 Draw a display and generate visualization
    • 4 The visualization
    • 5 Parameterization option 1 - direct addressing
      • 5.1 Using predefined controls
      • 5.2 Using quick dynamics
      • 5.3 Using the simple dynamics dialog
    • 6 Parameterization option 2a - object oriented
    • 7 Parameterization option 2b - object oriented
    • 8 Parameterization option 3 - display at the object type
  • How-tos
    • Configure access control for the first time
    • Mirror alarms considering access control and user mapping
      • Data source configuration
      • Configuring "ds_atvise"
      • Configuring the main project
Next Previous

© Copyright 2007-2025, Bachmann Visutec GmbH.

Built with Sphinx using a theme provided by Read the Docs.