ITEM: N9910L
Sysback Fix History 2.0.0.0 - 2.2.2.3
Question:
\#\#\#\#\#\# Original SYSBACK 32 programs completed and tested - 3/16/92 \#\#\#\#\#
03/17/92: README documentation created
03/24/92: sysmain changed to not use ".1" extension on tape drive name
when extracting lvdata file. This caused system to read entire
tape even after finding the file.
3/26/92: Fixed problem in format of .lvdata file (mklvdata program).
Sometimes the filesystems can be placed above the jfs logs in the
file. Errors are generated if you attempt to do a "mkfs" on a
filesystem whose jfslog is missing. This fix reorders the LVs in the
file so that the paging and jfslogs are always created first.
3/31/92: mklvdata program had hard-coded path that did not include
/usr/sbin. No location codes were placed in the file because
bootinfo command was not found.
4/2/92: Changed verify procedure in sysback so that it will prompt for
1st volume on media (only if -f flag is not used). If -f flag
is used, assumes that 1st volume is already inserted.
4/3/92: Changed all tar/pax programs to backup/restore:
1) ACLs are preserved
2) Better recovery/retries during backup & restore
3) restore with -p can restore a single file (.lvdata) and
return to beginning of same image.
Also changed boot images (mkinsttape & /etc/rc.boot pgms) so
that 3 install/maint images follow the boot image. This allows
the system to boot from tape without rewinding. Reduces boot
time by about 45%.
4/15/92: Created installp image of AIX Sysback/6000 program product.
Also separated sysback programs from other BOS programs by
making custom version of mkinsttape, mkinstdskt, rc.boot & bosboot
programs (appending "_sb").
4/16/92: Added SMIT menus & modified instal program to apply to ODM
database on install.
Modified mkvgback to allow interrupts and to exec a new process
so as not to open a new child process.
4/21/92: Added restore and list options to SMIT menus. Added new programs
"sysrestore" and "vgrestore" which are used to list or restore files
from the system or other volume group backups.
4/22/92: Added tape drive options to SMIT menus for changing availability and
block sizes only. Also added SMIT menus for adding and removing entries
from backup exclude list & modified backup programs to look in the
/usr/lpp/sysback directory for the list.
4/23/92: Added remote tape backup to "sysback" and "mkvgback" programs. Created
SMIT menus for configuring systems for use as tape server or client.
5/5/92: Added creation of bootable tape to remote tape backup. Boot and install
images are taken form the server, so checks are made to ensure that the
client and server are at the same Version and Release (but not
necessarily same level).
Modified sysrestore, vgrestore and SMIT options so not to require
user to enter ./filename format (auto adds . to /filenames).
5/8/92: Fixed bugs in sysmain carried over from bosmain where space
requirements were not calculated correctly. Also changed sysmain to
check for boot record on tape and forward past it if the user
booted from another device.
5/19/92: Added new program "mkfsback", which creates a backup by filesystem,
directory or filenames. Added to SMIT menus for backing up, listing
or restoring data from filesystem backup (vgrestore program is used
to list and restore from filesystem backup).
6/11/92: Modified SMIT menus for selector screens of device and hostname
selection prior to all backup, list & restore options. User cannot
specify a device other than those listed on this screen.
6/12/92: Added check during install process to see if installing on same
system. If not, user is prompted whether or not to remove Sysback
from new system if not licensed.
\#\#\#\#\#\#\#\# Above changes applied to distribution diskette - 7/6/92 \#\#\#\#\#\#\#
\#\#\#\#\#\#\#\# The following changes are for Sysback version 2.1.1 \#\#\#\#\#\#\#
7/8/92: Changed some SMIT stanzas to add the full pathname (/usr/sbin) to
sysback programs - in case users do not have /usr/sbin in PATH.
7/22/92: Incorrect usage message in /usr/sbin/mklvdata
7/24/92: Added NLS message catalogue "/usr/lib/nls/msg/En_US/sysback.cat".
Created a common library of functions (/usr/lpp/sysback/sysback.lib),
and added "msg" function to common library - shorthand notation for
calling messages from sysback message catalogue.
Modified all programs in /usr/sbin to:
1) Removed duplicate functions from programs & placed in library.
2) All "echo" commands changed to use message catalogue.
7/27/92: Added all SMIT menus and options to sysback message catalogue.
Modified LPP instal program to install message catalogue in $LANG
directory.
Changed install image to include sysback.cat, sysback.lib and
sm_menus_sb in the liblpp.a file. Wrote a program to generate the
correct "size" file for use by installp.
7/28/92: Fixed bug in sysrvg, where bootlv "hd5" was created on original
disk, even if user specified a different on on the install menus.
This caused the bootlv to be created on one disk, but the
bootlist gets set to another. Changed sysmain to:
1) Create first foor logical volume on disk specified on menu
2) Create all other bootlvs on original disks
3) Run bosboot for all boot logical volumes
4) Set bootlist to all available boot logical volumes & disks
Also creates a new bootlv if no other boot logical volume found.
7/29/92: Modified mklvdata program to list boot/paging/jfslog logical
volumes first, and keep other LVs & VGs in original order.
Also cosmetic changes to sysrvg & sysuvg when creating lvs/vgs.
8/4/92: 1) Fixed MAJOR bug in sysrestore/vgrestore, where files were being
restored onto remote host containing tape drive, rather than onto
the local host. Also remoted "-p" (page) option from list and
restore options - not needed since smit screen may be paged, and
commands from command line may be piped to "pg" by user.
2) Completed major new enhancements to Sysback allowing backups to
be created, listed or restored to/from remote disk files. Included
server granting disk write permission to client hosts, generating
filename to write to for backups, and listing files created by a
particular host for listing & restoring from local and remote files.
3) Also fixed bug in mklvdata, where it allowed filesystems to
be created during install before their parent filesytem. Error would
then occur when attempting to mount the child before the restore, and
the install would fail.
8/5/92: 1) Added new program "mkinstsvr", which configures the host as a
network install server.
2) Modified sysnet to allow sysback backups to be installed across
the network from a configured network install server.
3) Added a program "/usr/lpp/bosinst/scripts/sendfile_sb, which is
used to transfer the /.lvdata file across the network during network
install. Also, new program "/usr/lpp/bosinst/scripts/getdb_sb" to
require user to select a filename with "sys.obj" prefix to install
from.
\#\#\# 8/21/92: All above changes shipped to current users as Version 2.2.0.0 \#\#\#
\#\#\# The following changes are for Sysback version 2.2.0 \#\#\#
8/24/92 - Update 0001:
Added fixed path (/usr/sbin) to the readlvdata program
found in /usr/sbin/sysback. This update is applied to all future
version 2.2 shipments.
8/24/92 - Update 0002:
Fixed order of /.lvdata file (mklvdata program) to
prevent child directories from being created before parent directories
if they existed in different non-root volume groups. This is rare and
has not yet been encountered.
\#\#\# Above changes applied to distribution diskette - 8/24/92 \#\#\#
9/28/92 - Update 0003:
Changed /usr/sbin/sysback to only create the /usr/config/vginfo
file if the user did not select the -g flag to skip generation
of lv data.
10/2/92 - Update 0004:
Fixed sysuvg to ensure all directories are created before attempting
to mount filesystems. Previously only created mount point, but failed
if parent directories not created first. Also perform logform on LV
with name of loglv*, even if type is different.
If problem encountered:
1) Go into maintenance mode
2) Use "mkdir" to create directory
3) "mount" directory manually
4) "exit" to continue install/restore
10/21/92 - Update 0005:
Changed /usr/sbin/mkboottape.sh to create /usr/lib/boot/tape.proto_sb
file from original each time the program is invoked. This is to
ensure that AIX microcode updates are added to the boot image.
Currently, 8d77.32.04 updated to 8d77.32.52 to add SCSI support
for multiple I/O bus on model 970 & 980.
10/21/92 - Update 0006:
Get message that you cannot restore all of "root" even when you
selected to restore all files from the "other" portion of the Full
System Backup (/usr/sbin/sysrestore)
10/21/92 - Update 0007:
Get message that disk access is not allowed from a remote host
even when writing to remote tape or disk drive. This only
appears if the remote host allows tape, but not disk, access
(/usr/lpp/sysback/sysback.lib)
10/21/92 - Update 0008:
/usr/sbin/lvlrestore will not correctly find the backup date
in the /etc/dumpdates file if the day of the month is a single
digit because the dumpdates file shows the day as "01" and the
restore -T command shows as " 1". This is not always the case,
so the program was modified to check both formats before failing.
11/4/92 - Update 0009:
Unable to create stacked backups with /usr/sbin/mklvlback
because of bug in backbyinode program, where use of rmt0.3 will
rewind at end of backup. To workaround, changed *.3 to *.1 in
this program and performed initial rewind manually using tctl
if *.3 was called.
11/5/92 - Update 0010:
Major changes to all backup and restore programs for support of
different density options for tape drives.
* The following programs were modified:
/usr/sbin/mkvgback
/usr/sbin/mkfsback
/usr/sbin/mklvlback
/usr/sbin/sysback
/usr/sbin/mkboottape.sh
/usr/sbin/readlvdata.sh
/usr/sbin/sysrestore
/usr/sbin/vgrstore
/usr/sbin/lvlrestore
Modifications required to add "-n" flag to backup programs,
indicating no rewind on open, then call to new function in
library "setrewind" as described below. All programs changed
to remove all references to "*.1" extension.
* /usr/lpp/sysback/sysback.lib library modified to add new function
for changing tape density. If user specified /dev/rmt0.[1-3], the
suffix is changed to .1 or .3 depending on whether he chose to
rewind at beginning of backup. If user specified /dev/rmt[4-7],
suffix is changed to .5 or .7.
* SMIT commands changed to add "-n" flag to backup programs if
user specifed NO rewind on open. This allowed all script()
functions to be removed from the SMIT backend so all
cmd_to_exec's are now calling programs directly.
* Changed usage messages in mkvgback, mkfsback and mklvlback
programs and in message catalogue.
11/5/92 - Update 0011:
Added /usr/sbin path to backup, chdev and rmdev commands in SMIT
menus (cm_cmd_hdr).
11/6/92 - Update 0012:
/usr/sbin/lvlrestore did not gracefully exit if restore command
returned an error.
11/6/92 - Update 0013:
Added routine to bottom os /usr/lpp/bosinst/sysmain to
remove diskette attributes from attributes to be recovered
by rda. When cloning systems, the floppy may otherwise be
configured at the wrong density.
Also removed cleared the CuVPD database to ensure that this
database is rebuilt on first boot. Otherwise, cfgchk will be
running checks against wrong database.
11/9/92 - Update 0014:
Removed from installation programs all references to /etc/filesystems
file. This is so that diskettes created on one system may be used
to install any other system. Previously, if filesystems file did
not match the .lvdata file contents, the mkfs and mounts would
fail when creating the filesystems from the .lvdata file. This
required the adding of the -V and -olog flags to the mount and
mkfs commands in /usr/lpp/bosinst/sysrvg and sysrest.
11/10/92 - Update 0015:
During installation, get name of first log logical volume and
place in /tmp/...firstlog for use by all mount and mkfs
commands. Modifications to sysrvg, sysmain and sysrest.
11/13/92 - Update 0016:
Added routine to end of sysmain to list customized network
configuration and allow user to remove customized attributes.
This is in case a single backup from a network machine is
used to install other machines - prevents multiple machines
running on the network using same hostname & IP address.
This information will only appear if the system being installed
on is not the system the backup originated on.
11/13/92 - Update 0017:
Bug caused sysback to hang when executed from SMIT on a
multi-volume full system backup. Because it was executed from
SMIT, the no-prompt option is used, which assumes volume 1 is
always in the drive. Re-wrote /usr/sbin/readlvdata so that it
checks for a bootable tape and if not bootable checks for volume
1 backup. If not volume 1, prompts user and retries.
\#\#\#\#\# Changes below are included in the Version 2.2.1 Release \#\#\#\#\#\#
12/4/92 - Update 0001:
Modified all Full System backup & restore programs to allow
use of multiple tape block sizes. Boot and install images are
512, and backup image is original block size. Created new
program "/usr/sbin/setbs" to change block sizes on either local
or remote systems. This replaces /usr/sbin/readlvdata, and is
called by sysback, mkboottape and sysrestore.
There is no longer a limitation requiring remote tape block size
to be pre-set to 512 to perform a remote full system backup.
Now, both local and remote tape drives may NOT have the block_size
set to "0" or sysback will abort before the backup.
12/16/92
Modified network install programs on server to allow user to
add a tape drive name (i.e. /dev/rmt0) to the choices file. The
client system may then select a remote tape drive to install from.
Changes made to the /usr/lpp/bosinst/scripts/sendfile_sb,
/usr/lpp/bosinst/scripts/getdb_sb, and /usr/lpp/bosinst/sysmain
programs.
12/16/92
The chkdev routine in the /usr/lpp/sysback/sysback.lib now checks
to ensure that a remote tape drive does not have the tape drive set
to a block size of "0". This will not work, since the remote tape
backup causes fixed-length records (using dd) to be written to the
tape.
12/17/92
Network install from tape will now restore root and user volume
groups. Also, network install will look for a selected file with
"other.obj" prefix and will install other VGs from that image.
12/17/92
Added ability for users to create custom scripts which may
be performed before and/or after full system backup. Directory
/usr/lpp/sysback/scripts is created on install of sysback and
has read/write permissions only for root. User may create files
fsback.pre and fsback.post in that directory and make them
executable (i.e chmod 700 filename). Sysback will execute
fsback.pre prior to backup and fsback.post after backup completes,
but before backup is verified. This will allow users to append
additional information to the tape (i.e. dd of raw LVs).
Users may also create a post-install script called
/usr/lpp/sysback/scripts/install.post. This script will be
executed at the end of the install process.
1/8/93 - Update 0002:
Added creation of empty /etc/filesystems file to sysrvg.
"Malloc: failed" message appeared if mkfs command is run
and no filesystems file existed, even though it was not
referenced.
\#\#\#\#\#\#\#\#\#\#\#\# All above changes applied to Distribution Diskette \#\#\#\#\#\#\#\#\#\#\#
1/19/93 - Update 0003:
REQUIRED FIX: Added code to sysmain to copy the /etc/filesystems
file to RAM before attempting the unmount and remount of
root and usr filesystems. Mount command performed on "bootfs"
type filesystems - type was not set in RAM /etc/filesystem file.
This bug will cause all installs to fail!
\#\#\# Above fix shipped to all Sysback V221 SEs and applied to Dist Diskettes \#\#\#
2/3/93 - Update 0004:
lvlrestore program was not correctly reading tape header to get
and check date if the LANG is set to "C" because the output of
the restore command differed in format. Changed to handle either
case.
2/17/92: Update 0005:
Added /usr/sbin path to the mkinstdskt_sb, mkextdskt
and mkdispdskt commands in the sysback program.
2/18/93: Update 0006:
Removed the "-p" flag from the restore commands in the sysrestore
script. Failure was encountered at the end of the restore on a 1/4"
tape since the drive cannot backspace to a previous track. There is
no need to return to the beginning of the image using this option.
3/2/93: Update 0007:
After loading Sysback 2.2.1, it is no longer possible to run
the getrootfs command from maintenance mode because it requires that
the /etc/filesystems file exist for mounting filesystems. Added
the /etc/filesystems file back into the tapefiles3_sb and
dsktfiles3_sb files so it will be included in the bos image.
/etc/filesystems file is not used during installation because
this file can cause errors on install if it does not match the
install image.
3/2/93: Update 0008:
Changed the "required" field from "+" to "?" in the command options
for the sysrest command when selecting "root" or "other" volume
groups. After updating to AIX 3.2.3, the msmit option no longer
worked if "root" was selected. This was reported to Defect who
"fixed" the problem by making it not work in the ASCII smit either.
To provide this change to an existing customer, type the following:
1) Type: odmget -q id=sb_sysrestOpts sm_cmd_opt > /tmp/odm.out
2) Type: odmdelete -q id=sb_sysrestOpts -o sm_cmd_opt
3) Edit the file "/tmp/odm.out" and change the first occurance of
the "required" field from a "+" to "?".
4) Type: odmadd /tmp/odm.out
3/10/93: Update 0009:
Removed -p flag from all restore commands in /usr/sbin/vgrestore.
This did not cause problems unless the tape was multi-volume. Then
the restore would complete but indicate a failed status. This is
because -p tells tape to backup to beginning of current image and
beginning is on another tape. This is not necessary so time is
saved anyway.
3/15/93: Update 0010:
"setbs.sh" program did not properly check for boot image on a
multi-volume bootable backup when performing full system verify.
Problem was that users would continually get prompt to insert
volume 1 even after they already did so. If this occurs, they
should use "q" to get out and NOT use the VERIFY option to the
full system backup until this fix is applied.
3/25/93: Update 0011:
/usr/lpp/sysback/sysback.lib and /usr/sbin/cfgremtape changed to
check for the hostname with the local somain name in .rhosts file
when checking for FILE option if it does not exist by hostname alone.
3/25/93: Update 0012:
Problem in listing or restoring from an incremental backup which
was created on a remote tape or disk device. Apparently the backup
date is only stored in the file in total min:sec versus actual
data and time, so the date somes up different when listing the
same file on two different systems unless the dates on each are
exactly the same. To fix, all data must be "dd"d from the remote
system to the local system before listed with the restore command
(i.e. the restore command cannot be run on the remote system to
save network traffic).
3/31/93: Update 0013:
Removed the mount of the "bootfs" type filesystems from sysmain
and mount by directory the /, /usr, /tmp and /var filesystems
instead. This is in case an /etc/filesystems file was changed
by the user and the type=bootfs line does not exist. Also
changed all references to /mnt to $MROOT.
4/2/93: Update 0014:
Removed checks for space in /tmp from mklvdata and mkboottape.sh.
Check for 8 MB free in /tmp in sysback command and if /tmp does
not exist, checks / instead.
4/8/93: Update 0015:
Failed restoring "other" volume groups on network install if
'netinstsvr' host existed elsewhere on domain network. Also,
/etc/hosts restored from bos was being overwritten. Before
restoring user volume groups, moved /etc/hosts and /etc/resolv.conf
to other names and created new hosts file with temporary server
and client information, then moved back after restore completed.
This allowed other vgs to be restored without reconfiguring network
with sysnet -c.
4/20/93: Update 0016:
Added proper error message to mkboottape to indicate that stanzas
cannot be restored from diskadd.bff file because file is missing
or root filesystem is full.
4/21/93: Update 0017:
Added -p flag to sysback, mkvgback and mkfsback commands to
indicate packing should be used. Also added options to backups
in smit to allow selection of packing or not packing (default
is to pack). This allows customers receiving the "internal packing
error" message from the backup command to override the packing.
This error is a bug in the AIX backup command and development
has indicated that they have no current plans to fix it.
4/27/93: Update 0018:
If an unmounted filesystem exists, but the mount point specified
in /etc/filesystems does not, the 'find' command would fail on
all subsequent directories in the list.
4/30/93: Update 0019:
Changes to mkboottape command for improved error checking and
to make error messages more descriptive. Most errors failed with
"mkboottape failed with return code x". Return code 5 was often
encountered when root filesystem was full as mkboottape tried
to restore temp ODM stanzas into /etc directory. Also reformatted
program for clarity and consistency and to remove single-call
subroutines.
5/25/93: Update 0020:
Same changes as update 0008 applied to List options for
full system backup.
5/28/93: Update 0021:
Bug in space requirements calculation in sysmain. non-rootvg
paging space was being included in space required for rootvg
during install. This caused space requirements to show larger
than was really needed of a paging space existed in a non-rootvg
volume group, sometimes preventing the rootvg from installing
on its original disk(s).
6/7/93: Update 0022:
Incremental restores (lvlrestore): If user selects -F option to
restore entire image, all levels (not just 0) should be restored
with -r option. This will perform image restore, again removing
previously removed files from a previous level restore.
Changed SMIT option from 'CLEAR and RESTORE entire filesystem
image?' to simply 'RESTORE filesystem image?'. If user selects
yes, -r option is used, else -x option is used.
6/8/93: Update 0023:
Changed the default location of a remote disk file backup of a full
system to /usr/lpp/sysback/images/sys.obj.hostname*date. This is
so all full system backups will appear automatically as installable
options under the network install. Backup to local disk files will
remain in the same directory.
6/9/93: Update 0024:
/usr/sbin/mkboottape.sh had message 79 used for error message
regarding use of 0 block size for full system backups. This
was message 125 in the messgae catalogue.
6/16/93: Update 0025:
/usr/sbin/lvlrestore would not allow restoration of individual
files from level 1-9 backups unless level 0 restored first. This
should only be a restriction if you are restoring using the
full image option.
6/21/93: Update 0026:
Installation from a non-bootable tape fails.
If non-bootable tape used, sysmain tries to forward 1 record
before restoring lvdata file. If non-bootable, 512-byte blocksize
should be assumed and tape is already positioned.
Workaround: Apply this fix & create new diskettes.
6/28/93: Update 0027:
Added a couple of error messages to mkboottape.sh in case
either the /etc/stanzas dir cannot be created or there is
an error creating the stripped libraries. These failed
without an error message when run on a remote tape server.
7/28/93: Update 0028:
Created link from boot disk to /dev/ipldevice in bosmain script
prior to creating the non-rootvg volume groups. This is due to
occasional systems not varying on the non-rootvg volume groups
on reboot because the LVM commands used to create the VG/LVs
were not updating the boot logical volume.
7/30/93: Update 0029:
Removed restore program from boot image and changed sysmain and
sysrest scripts to use restbyname instead. This was to prevent
running out of space creating boot diskette when 3.2.4 is installed.
8/17/93: Update 0030:
Added the $instdev" argument to the install.post command in the
sysmain script to send the name of the install device to the
post install script (which it can reference as $1).
8/24/93: Update 0031:
Added full pathname to bootinfo in the sysback comand.
8/31/93: Update 0032:
Changed menu path when selecting to change tape drive block size to
go to regular "Change/Show characteristics of a tape drive". This
was to add support for new 8mm5gb and 1200mb quater-inch tape drives
and ensure support for future drives. Menu description now reads
"Change tape drive characteristics" instead of only "Block Size".
10/18/93: Update 0033:
lsbackdevs command produced a line that was too long to fit in the
smit device selector screen if the combined hostnames on remote
file backups exceeded 16 characters. Replaced TAB with space
characters to allow combined hostnames up to 20 characters. This
problem resulted in the word "Remote" being cut off, which is
a keyword needed to indicate that the hostname should be
included in the command to execute.
10/20/93: Update 0034:
REQUIRED FOR AIX 3.2.5 - WILL RUN ON EARLIER VERSIONS
Modified creation of both boot diskettes and boot tape images
to conform to standard AIX. AIX 3.2.5 kernel has increased in
size so Sysback boot image no longer fits on a diskette. Changes
prevent further changes to AIX from affecting Sysback by
recreating the proto, tapefiles3 and dsktfiles3 files and modifying
the rc.boot, mkinsttape and mkinstdskt programs each time they
are run.
10/20/93: Update 0035:
New SMIT menus for creating Sysback diskettes - provides options
for which diskettes to create. Calls new program 'mksbdskts' which
optionally formats diskettes before copying.
Removed "-d" flag from sysback command (previously used to
create diskettes).
10/27/93: Update 0036:
Allow serial disks to be selected as boot disks in the install
process. This will only work if the system is updated to AIX 3.2.3e
or later, but the serial disks are not fully supported prior to
that version anyway.
11/16/93: Update 0037:
Changed enough_space() function in sysmain to use smaller numbers
when converting H/W MB to S/W MB so as not to exceed unsigned
integer size for disk drives greater than 2 GB.
11/19/93: Update 0038:
Fixed bug introduced in 0034. The bosboot command is now
called during the remote backup of a bootable tape. The /etc
directory is not in the PATH and is required by bosboot to call
the mkfs command. Added /etc to the PATH in the mkboottape.sh
program.
12/15/93: Update 0039
Added /etc path to the ping command in /usr/lpp/sysback/sysback.lib
file. Error only occurred when a user tried to rsh to a client
and have them issue a mkvgback command with a remote hostname.
\#\#\#\# Changes for Version 2.2.2 \#\#\#\#\#\#
Updated all software and docs to new product name: AIX System
Backup & Recovery/6000 for distribution world-wide.
4/19/94: Update 0002:
Changed cfgremsvs and cfginstsvr to stop NIS before creating
users in case user already exists on the NIS server.
6/15/94: Update 0003:
Added change to sysuvg to create the VGDA smaller by calling
mkvg using the [ number of disks * 2 ] as the MaxPVs value.
This will result in one additional partition on some disks
after reinstall, and will prevent running our of space on a
volume group previously created with the MaxPVs flag in which
all partitions are allocated.
Support Line: Sysback Fix History 2.0.0.0 - 2.2.2.3 ITEM: N9910L
Dated: November 1994 Category: N/A
This HTML file was generated 99/06/24~13:30:38
Comments or suggestions?
Contact us