SPEC CPU®2017 Integer Rate Result

Copyright 2017-2024 Standard Performance Evaluation Corporation

Fujitsu

PRIMERGY RX1440 M2,
AMD EPYC 9254, 2.90 GHz

SPECrate®2017_int_base = 29500

SPECrate®2017_int_peak = Not Run

CPU2017 License: 19 Test Date: Feb-2024
Test Sponsor: Fujitsu Hardware Availability: Feb-2024
Tested by: Fujitsu Software Availability: Nov-2022

Benchmark result graphs are available in the PDF report.

Hardware
CPU Name: AMD EPYC 9254
  Max MHz: 4150
  Nominal: 2900
Enabled: 24 cores, 1 chip, 2 threads/core
Orderable: 1 chip
Cache L1: 32 KB I + 32 KB D on chip per core
  L2: 1 MB I+D on chip per core
  L3: 128 MB I+D on chip per chip,
32 MB shared / 6 cores
  Other: None
Memory: 384 GB (12 x 32 GB 2Rx8 PC5-4800B-R)
Storage: 1 x SATA SSD, 960 GB
Other: Cooling: Air
Software
OS: SUSE Linux Enterprise Server 15 SP4
5.14.21-150400.22-default
Compiler: C/C++/Fortran: Version 4.0.0 of AOCC
Parallel: No
Firmware: Fujitsu BIOS Version Version V5.0.0.27 R1.5.0 for
D4130-A1x. Released May-2024
tested as V5.0.0.27 R1.4.0 for D4130-A1x Jan-2024
File System: xfs
System State: Run level 3 (multi-user)
Base Pointers: 64-bit
Peak Pointers: Not Applicable
Other: None
Power Management: BIOS set to prefer performance
at the cost of additional power usage

Results Table

Benchmark Base Peak
Copies Seconds Ratio Seconds Ratio Seconds Ratio Copies Seconds Ratio Seconds Ratio Seconds Ratio
SPECrate®2017_int_base 29500
SPECrate®2017_int_peak Not Run
Results appear in the order in which they were run. Bold underlined text indicates a median measurement.
500.perlbench_r 48 368 208 368 208 368 207
502.gcc_r 48 271 251 271 251 271 251
505.mcf_r 48 181 429 180 430 181 429
520.omnetpp_r 48 428 147 420 150 424 149
523.xalancbmk_r 48 131 386 133 381 129 393
525.x264_r 48 118 711 118 711 118 711
531.deepsjeng_r 48 227 242 228 242 228 242
541.leela_r 48 340 234 340 234 340 234
548.exchange2_r 48 183 687 183 687 183 687
557.xz_r 48 370 140 369 141 370 140

Compiler Notes

The AMD64 AOCC Compiler Suite is available at
http://developer.amd.com/amd-aocc/

Submit Notes

The config file option 'submit' was used.
'numactl' was used to bind copies to the cores.
See the configuration file for details.

Operating System Notes

'ulimit -s unlimited' was used to set environment stack size limit
'ulimit -l 2097152' was used to set environment locked pages in memory limit

runcpu command invoked through numactl i.e.:
numactl --interleave=all runcpu <etc>

To limit dirty cache to 8% of memory, 'sysctl -w vm.dirty_ratio=8' run as root.
To limit swap usage to minimum necessary, 'sysctl -w vm.swappiness=1' run as root.
To free node-local memory and avoid remote memory usage,
'sysctl -w vm.zone_reclaim_mode=1' run as root.
To clear filesystem caches, 'sync; sysctl -w vm.drop_caches=3' run as root.
To disable address space layout randomization (ASLR) to reduce run-to-run
variability, 'sysctl -w kernel.randomize_va_space=0' run as root.

To enable Transparent Hugepages (THP) only on request for base runs,
'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled' run as root.

Environment Variables Notes

Environment variables set by runcpu before the start of the run:
LD_LIBRARY_PATH =
     "/home/Benchmark/speccpu2017r/amd_rate_aocc400_znver4_A_lib/lib:/home/Benchmark/speccpu2017r/amd_rate_
     aocc400_znver4_A_lib/lib32:"
MALLOC_CONF = "retain:true"

General Notes

Binaries were compiled on a system with 2x AMD EPYC 9174F CPU + 1.5TiB Memory using RHEL 8.6

NA: The test sponsor attests, as of date of publication, that CVE-2017-5754 (Meltdown)
is mitigated in the system as tested and documented.
Yes: The test sponsor attests, as of date of publication, that CVE-2017-5753 (Spectre variant 1)
is mitigated in the system as tested and documented.
Yes: The test sponsor attests, as of date of publication, that CVE-2017-5715 (Spectre variant 2)
is mitigated in the system as tested and documented.

Platform Notes

BIOS configuration:
Determinism Slider = Power
TDP Control = Manual
TDP Limit = 240
Package Power Limit Control = Manual
Package Power Limit = 240
DF PState Frequency Optimizer = Enabled
Power Profile Selection = High Performance
NUMA nodes per socket = NPS4
Chipselect Interleaving = Enabled
Probe Filter Organization = Shared
Periodic Directory Rinse (PDR) Tuning = Cache-Bound
Fan Control = Full


 Sysinfo program /home/Benchmark/speccpu2017r/bin/sysinfo
 Rev: r6732 of 2022-11-07 fe91c89b7ed5c36ae2c92cc097bec197
 running on localhost Wed Feb 28 03:42:02 2024

 SUT (System Under Test) info as seen by some common utilities.

 ------------------------------------------------------------
 Table of contents
 ------------------------------------------------------------
  1. uname -a
  2. w
  3. Username
  4. ulimit -a
  5. sysinfo process ancestry
  6. /proc/cpuinfo
  7. lscpu
  8. numactl --hardware
  9. /proc/meminfo
 10. who -r
 11. Systemd service manager version: systemd 249 (249.11+suse.124.g2bc0b2c447)
 12. Services, from systemctl list-unit-files
 13. Linux kernel boot-time arguments, from /proc/cmdline
 14. cpupower frequency-info
 15. sysctl
 16. /sys/kernel/mm/transparent_hugepage
 17. /sys/kernel/mm/transparent_hugepage/khugepaged
 18. OS release
 19. Disk information
 20. /sys/devices/virtual/dmi/id
 21. dmidecode
 22. BIOS
 ------------------------------------------------------------

 ------------------------------------------------------------
 1. uname -a
   Linux localhost 5.14.21-150400.22-default #1 SMP PREEMPT_DYNAMIC Wed May 11 06:57:18 UTC 2022 (49db222)
   x86_64 x86_64 x86_64 GNU/Linux

 ------------------------------------------------------------
 2. w
    03:42:02 up 8 min,  1 user,  load average: 0.00, 0.05, 0.05
   USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
   root     tty1     -                03:39   10.00s  1.01s  0.09s /bin/bash ./amd_rate_aocc400_znver4_A1.sh

 ------------------------------------------------------------
 3. Username
   From environment variable $USER:  root

 ------------------------------------------------------------
 4. ulimit -a
   core file size          (blocks, -c) unlimited
   data seg size           (kbytes, -d) unlimited
   scheduling priority             (-e) 0
   file size               (blocks, -f) unlimited
   pending signals                 (-i) 1544403
   max locked memory       (kbytes, -l) 2097152
   max memory size         (kbytes, -m) unlimited
   open files                      (-n) 1024
   pipe size            (512 bytes, -p) 8
   POSIX message queues     (bytes, -q) 819200
   real-time priority              (-r) 0
   stack size              (kbytes, -s) unlimited
   cpu time               (seconds, -t) unlimited
   max user processes              (-u) 1544403
   virtual memory          (kbytes, -v) unlimited
   file locks                      (-x) unlimited

 ------------------------------------------------------------
 5. sysinfo process ancestry
  /usr/lib/systemd/systemd --switched-root --system --deserialize 30
  login -- root
  -bash
  -bash
  python3 ./run_amd_intrate_aocc400_znver4_A1.py
  /bin/bash ./amd_rate_aocc400_znver4_A1.sh
  runcpu --config amd_rate_aocc400_znver4_A1.cfg --tune base --reportable --iterations 3 intrate
  runcpu --configfile amd_rate_aocc400_znver4_A1.cfg --tune base --reportable --iterations 3 --nopower
    --runmode rate --tune base --size test:train:refrate intrate --nopreenv --note-preenv --logfile
    $SPEC/tmp/CPU2017.001/templogs/preenv.intrate.001.0.log --lognum 001.0 --from_runcpu 2
  specperl $SPEC/bin/sysinfo
 $SPEC = /home/Benchmark/speccpu2017r

 ------------------------------------------------------------
 6. /proc/cpuinfo
     model name      : AMD EPYC 9254 24-Core Processor
     vendor_id       : AuthenticAMD
     cpu family      : 25
     model           : 17
     stepping        : 1
     microcode       : 0xa101144
     bugs            : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
     TLB size        : 3584 4K pages
     cpu cores       : 24
     siblings        : 48
     1 physical ids (chips)
     48 processors (hardware threads)
     physical id 0: core ids 0-5,8-13,16-21,24-29
     physical id 0: apicids 0-11,16-27,32-43,48-59
   Caution: /proc/cpuinfo data regarding chips, cores, and threads is not necessarily reliable, especially for
   virtualized systems.  Use the above data carefully.

 ------------------------------------------------------------
 7. lscpu

 From lscpu from util-linux 2.37.2:
   Architecture:                    x86_64
   CPU op-mode(s):                  32-bit, 64-bit
   Address sizes:                   52 bits physical, 57 bits virtual
   Byte Order:                      Little Endian
   CPU(s):                          48
   On-line CPU(s) list:             0-47
   Vendor ID:                       AuthenticAMD
   Model name:                      AMD EPYC 9254 24-Core Processor
   CPU family:                      25
   Model:                           17
   Thread(s) per core:              2
   Core(s) per socket:              24
   Socket(s):                       1
   Stepping:                        1
   Frequency boost:                 enabled
   CPU max MHz:                     4151.7568
   CPU min MHz:                     1500.0000
   BogoMIPS:                        5791.24
   Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
                                    clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm
                                    constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl
                                    pni pclmulqdq monitor ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe
                                    popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy
                                    abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext
                                    perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3
                                    invpcid_single hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1
                                    avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap
                                    avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt
                                    xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local
                                    avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd amd_ppin arat npt lbrv
                                    svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists
                                    pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl avx512vbmi
                                    umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg
                                    avx512_vpopcntdq la57 rdpid overflow_recov succor smca fsrm flush_l1d
   Virtualization:                  AMD-V
   L1d cache:                       768 KiB (24 instances)
   L1i cache:                       768 KiB (24 instances)
   L2 cache:                        24 MiB (24 instances)
   L3 cache:                        128 MiB (4 instances)
   NUMA node(s):                    4
   NUMA node0 CPU(s):               0-5,24-29
   NUMA node1 CPU(s):               6-11,30-35
   NUMA node2 CPU(s):               12-17,36-41
   NUMA node3 CPU(s):               18-23,42-47
   Vulnerability Itlb multihit:     Not affected
   Vulnerability L1tf:              Not affected
   Vulnerability Mds:               Not affected
   Vulnerability Meltdown:          Not affected
   Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
   Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
   Vulnerability Spectre v2:        Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB
                                    filling
   Vulnerability Srbds:             Not affected
   Vulnerability Tsx async abort:   Not affected

 From lscpu --cache:
      NAME ONE-SIZE ALL-SIZE WAYS TYPE        LEVEL  SETS PHY-LINE COHERENCY-SIZE
      L1d       32K     768K    8 Data            1    64        1             64
      L1i       32K     768K    8 Instruction     1    64        1             64
      L2         1M      24M    8 Unified         2  2048        1             64
      L3        32M     128M   16 Unified         3 32768        1             64

 ------------------------------------------------------------
 8. numactl --hardware
 NOTE: a numactl 'node' might or might not correspond to a physical chip.
   available: 4 nodes (0-3)
   node 0 cpus: 0-5,24-29
   node 0 size: 96193 MB
   node 0 free: 95410 MB
   node 1 cpus: 6-11,30-35
   node 1 size: 96764 MB
   node 1 free: 96497 MB
   node 2 cpus: 12-17,36-41
   node 2 size: 96730 MB
   node 2 free: 96360 MB
   node 3 cpus: 18-23,42-47
   node 3 size: 96436 MB
   node 3 free: 95945 MB
   node distances:
   node   0   1   2   3
     0:  10  12  12  12
     1:  12  10  12  12
     2:  12  12  10  12
     3:  12  12  12  10

 ------------------------------------------------------------
 9. /proc/meminfo
    MemTotal:       395392104 kB

 ------------------------------------------------------------
 10. who -r
   run-level 3 Feb 28 03:33

 ------------------------------------------------------------
 11. Systemd service manager version: systemd 249 (249.11+suse.124.g2bc0b2c447)
   Default Target  Status
   multi-user      running

 ------------------------------------------------------------
 12. Services, from systemctl list-unit-files
   STATE            UNIT FILES
   enabled          YaST2-Firstboot YaST2-Second-Stage apparmor auditd bluetooth cron display-manager getty@
                    haveged irqbalance iscsi issue-generator kbdsettings kdump kdump-early klog libvirtd
                    lvm2-monitor nscd postfix purge-kernels rollback rsyslog smartd sshd wicked wickedd-auto4
                    wickedd-dhcp4 wickedd-dhcp6 wickedd-nanny
   enabled-runtime  systemd-remount-fs
   disabled         accounts-daemon appstream-sync-cache autofs autoyast-initscripts blk-availability
                    bluetooth-mesh boot-sysctl ca-certificates chrony-wait chronyd console-getty cups
                    cups-browsed debug-shell dnsmasq ebtables exchange-bmc-os-info firewalld gpm grub2-once
                    haveged-switch-root hwloc-dump-hwdata ipmi ipmievd iscsi-init iscsid iscsiuio
                    issue-add-ssh-keys kexec-load ksm kvm_stat libvirt-guests lunmask man-db-create multipathd
                    nfs nfs-blkmap nfs-server nfsserver nmb ostree-remount rdisc rpcbind rpmconfigcheck rsyncd
                    rtkit-daemon serial-getty@ smartd_generate_opts smb snmpd snmptrapd speech-dispatcherd
                    strongswan strongswan-starter svnserve systemd-boot-check-no-failures
                    systemd-network-generator systemd-nspawn@ systemd-sysext systemd-time-wait-sync
                    systemd-timesyncd tcsd udisks2 upower virtinterfaced virtnetworkd virtnodedevd
                    virtnwfilterd virtproxyd virtqemud virtsecretd virtstoraged
   indirect         pcscd virtlockd virtlogd wickedd

 ------------------------------------------------------------
 13. Linux kernel boot-time arguments, from /proc/cmdline
   BOOT_IMAGE=/boot/vmlinuz-5.14.21-150400.22-default
   root=UUID=46eaef58-8574-42bf-834a-7fe69b4893c9
   splash=silent
   mitigations=auto
   quiet
   security=apparmor
   crashkernel=272M,high
   crashkernel=72M,low

 ------------------------------------------------------------
 14. cpupower frequency-info
   analyzing CPU 0:
     current policy: frequency should be within 1.50 GHz and 2.90 GHz.
                     The governor "ondemand" may decide which speed to use
                     within this range.
     boost state support:
       Supported: yes
       Active: yes

 ------------------------------------------------------------
 15. sysctl
   kernel.numa_balancing               1
   kernel.randomize_va_space           0
   vm.compaction_proactiveness        20
   vm.dirty_background_bytes           0
   vm.dirty_background_ratio          10
   vm.dirty_bytes                      0
   vm.dirty_expire_centisecs        3000
   vm.dirty_ratio                      8
   vm.dirty_writeback_centisecs      500
   vm.dirtytime_expire_seconds     43200
   vm.extfrag_threshold              500
   vm.min_unmapped_ratio               1
   vm.nr_hugepages                     0
   vm.nr_hugepages_mempolicy           0
   vm.nr_overcommit_hugepages          0
   vm.swappiness                       1
   vm.watermark_boost_factor       15000
   vm.watermark_scale_factor          10
   vm.zone_reclaim_mode                1

 ------------------------------------------------------------
 16. /sys/kernel/mm/transparent_hugepage
   defrag          [always] defer defer+madvise madvise never
   enabled         [always] madvise never
   hpage_pmd_size  2097152
   shmem_enabled   always within_size advise [never] deny force

 ------------------------------------------------------------
 17. /sys/kernel/mm/transparent_hugepage/khugepaged
   alloc_sleep_millisecs   60000
   defrag                      1
   max_ptes_none             511
   max_ptes_shared           256
   max_ptes_swap              64
   pages_to_scan            4096
   scan_sleep_millisecs    10000

 ------------------------------------------------------------
 18. OS release
   From /etc/*-release /etc/*-version
   os-release SUSE Linux Enterprise Server 15 SP4

 ------------------------------------------------------------
 19. Disk information
 SPEC is set to: /home/Benchmark/speccpu2017r
   Filesystem     Type  Size  Used Avail Use% Mounted on
   /dev/sda3      xfs   645G   48G  598G   8% /home

 ------------------------------------------------------------
 20. /sys/devices/virtual/dmi/id
     Vendor:         FUJITSU
     Product:        PRIMERGY RX1440 M2
     Product Family: SERVER
     Serial:         xxxxxxxxxx

 ------------------------------------------------------------
 21. dmidecode
   Additional information from dmidecode 3.2 follows.  WARNING: Use caution when you interpret this section.
   The 'dmidecode' program reads system data which is "intended to allow hardware to be accurately
   determined", but the intent may not be met, as there are frequent changes to hardware, firmware, and the
   "DMTF SMBIOS" standard.
   Memory:
     12x Samsung M321R4GA3BB6-CQKEG 32 GB 2 rank 4800


 ------------------------------------------------------------
 22. BIOS
 (This section combines info from /sys/devices and dmidecode.)
    BIOS Vendor:       FUJITSU // American Megatrends Inc.
    BIOS Version:      V5.0.0.27 R1.4.0 for D4130-A1x
    BIOS Date:         01/30/2024
    BIOS Revision:     1.4
    Firmware Revision: 2.42

Compiler Version Notes

============================================================================================================
C       | 500.perlbench_r(base) 502.gcc_r(base) 505.mcf_r(base) 525.x264_r(base) 557.xz_r(base)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------

============================================================================================================
C++     | 520.omnetpp_r(base) 523.xalancbmk_r(base) 531.deepsjeng_r(base) 541.leela_r(base)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------

============================================================================================================
Fortran | 548.exchange2_r(base)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------

Base Compiler Invocation

C benchmarks:

 clang 

C++ benchmarks:

 clang++ 

Fortran benchmarks:

 flang 

Base Portability Flags

500.perlbench_r:  -DSPEC_LINUX_X64   -DSPEC_LP64 
502.gcc_r:  -DSPEC_LP64 
505.mcf_r:  -DSPEC_LP64 
520.omnetpp_r:  -DSPEC_LP64 
523.xalancbmk_r:  -DSPEC_LINUX   -DSPEC_LP64 
525.x264_r:  -DSPEC_LP64 
531.deepsjeng_r:  -DSPEC_LP64 
541.leela_r:  -DSPEC_LP64 
548.exchange2_r:  -DSPEC_LP64 
557.xz_r:  -DSPEC_LP64 

Base Optimization Flags

C benchmarks:

 -m64   -flto   -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6   -Wl,-mllvm -Wl,-reduce-array-computations=3   -Wl,-mllvm -Wl,-ldist-scalar-expand   -fenable-aggressive-gather   -z muldefs   -O3   -march=znver4   -fveclib=AMDLIBM   -ffast-math   -fstruct-layout=7   -mllvm -unroll-threshold=50   -mllvm -inline-threshold=1000   -fremap-arrays   -fstrip-mining   -mllvm -reduce-array-computations=3   -zopt   -lamdlibm   -lflang   -lamdalloc 

C++ benchmarks:

 -m64   -flto   -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6   -Wl,-mllvm -Wl,-reduce-array-computations=3   -z muldefs   -O3   -march=znver4   -fveclib=AMDLIBM   -ffast-math   -mllvm -unroll-threshold=100   -finline-aggressive   -mllvm -loop-unswitch-threshold=200000   -mllvm -reduce-array-computations=3   -zopt   -fvirtual-function-elimination   -fvisibility=hidden   -lamdlibm   -lflang   -lamdalloc-ext 

Fortran benchmarks:

 -m64   -flto   -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6   -Wl,-mllvm -Wl,-reduce-array-computations=3   -Wl,-mllvm -Wl,-inline-recursion=4   -Wl,-mllvm -Wl,-lsr-in-nested-loop   -Wl,-mllvm -Wl,-enable-iv-split   -z muldefs   -O3   -march=znver4   -fveclib=AMDLIBM   -ffast-math   -fepilog-vectorization-of-inductions   -mllvm -optimize-strided-mem-cost   -floop-transform   -mllvm -unroll-aggressive   -mllvm -unroll-threshold=500   -lamdlibm   -lflang   -lamdalloc 

Base Other Flags

C benchmarks:

 -Wno-unused-command-line-argument 

C++ benchmarks:

 -Wno-unused-command-line-argument 

Fortran benchmarks:

 -Wno-unused-command-line-argument 

The flags files that were used to format this result can be browsed at
http://www.spec.org/cpu2017/flags/aocc400-flags.html,
http://www.spec.org/cpu2017/flags/Fujitsu-Platform-Settings-V1.0-Genoa-RevD.html.

You can also download the XML flags sources by saving the following links:
http://www.spec.org/cpu2017/flags/aocc400-flags.xml,
http://www.spec.org/cpu2017/flags/Fujitsu-Platform-Settings-V1.0-Genoa-RevD.xml.