�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`�#! /bin/sh # savelog - save a log file # Copyright (C) 1987, 1988 Ronald S. Karr and Landon Curt Noll # Copyright (C) 1992 Ronald S. Karr # Slight modifications by Ian A. Murdock : # * uses `gzip' rather than `compress' # * doesn't use $savedir; keeps saved log files in the same directory # * reports successful rotation of log files # * for the sake of consistency, files are rotated even if they are # empty # More modifications by Guy Maor : # * cleanup. # * -p (preserve) option # # usage: savelog [-m mode] [-u user] [-g group] [-t] [-p] [-c cycle] # [-j] [-C] [-d] [-l] [-r rolldir] [-n] [-q] file... # -m mode - chmod log files to mode # -u user - chown log files to user # -g group - chgrp log files to group # -c cycle - save cycle versions of the logfile (default: 7) # -r rolldir- use rolldir instead of . to roll files # -C - force cleanup of cycled logfiles # -d - use standard date for rolling # -D - override date format for -d # -t - touch file # -l - don't compress any log files (default: compress) # -p - preserve mode/user/group of original file # -j - use bzip2 instead of gzip # -J - use xz instead of gzip # -1 .. -9 - compression strength or memory usage (default: 9, except for xz) # -x script - invoke script with rotated log file in $FILE # -n - do not rotate empty files # -q - be quiet # file - log file names # # The savelog command saves and optionally compresses old copies of files. # Older version of 'file' are named: # # 'file'. # # where is the version number, 0 being the newest. By default, # version numbers > 0 are compressed (unless -l prevents it). The # version number 0 is never compressed on the off chance that a process # still has 'file' opened for I/O. # # if the '-d' option is specified, will be YYMMDDhhmmss # # If the 'file' does not exist and -t was given, it will be created. # # For files that do exist and have lengths greater than zero, the following # actions are performed. # # 1) Version numered files are cycled. That is version 6 is moved to # version 7, version is moved to becomes version 6, ... and finally # version 0 is moved to version 1. Both compressed names and # uncompressed names are cycled, regardless of -t. Missing version # files are ignored. # # 2) The new file.1 is compressed and is changed subject to # the -m, -u and -g flags. This step is skipped if the -t flag # was given. # # 3) The main file is moved to file.0. # # 4) If the -m, -u, -g, -t, or -p flags are given, then the file is # touched into existence subject to the given flags. The -p flag # will preserve the original owner, group, and permissions. # # 5) The new file.0 is changed subject to the -m, -u and -g flags. # # Note: If no -m, -u, -g, -t, or -p is given, then the primary log file is # not created. # # Note: Since the version numbers start with 0, version number # is never formed. The count must be at least 2. # # Bugs: If a process is still writing to the file.0 and savelog # moved it to file.1 and compresses it, data could be lost. # Smail does not have this problem in general because it # restats files often. # common location export PATH=$PATH:/sbin:/bin:/usr/sbin:/usr/bin COMPRESS="gzip" COMPRESS_OPTS="-f" COMPRESS_STRENGTH_DEF="-9"; DOT_Z=".gz" DATUM=`date +%Y%m%d%H%M%S` # parse args exitcode=0 # no problems to far prog=`basename $0` mode= user= group= touch= forceclean= rolldir= datum= preserve= hookscript= quiet=0 rotateifempty=yes count=7 usage() { echo "Usage: $prog [-m mode] [-u user] [-g group] [-t] [-c cycle] [-p]" echo " [-j] [-C] [-d] [-l] [-r rolldir] [-n] [-q] file ..." echo " -m mode - chmod log files to mode" echo " -u user - chown log files to user" echo " -g group - chgrp log files to group" echo " -c cycle - save cycle versions of the logfile (default: 7)" echo " -r rolldir - use rolldir instead of . to roll files" echo " -C - force cleanup of cycled logfiles" echo " -d - use standard date for rolling" echo " -D - override date format for -d" echo " -t - touch file" echo " -l - don't compress any log files (default: compress)" echo " -p - preserve mode/user/group of original file" echo " -j - use bzip2 instead of gzip" echo " -J - use xz instead of gzip" echo " -1 .. -9 - compression strength or memory usage (default: 9, except for xz)" echo " -x script - invoke script with rotated log file in \$FILE" echo " -n - do not rotate empty files" echo " -q - suppress rotation message" echo " file - log file names" } fixfile() { if [ -n "$user" ]; then chown -- "$user" "$1" fi if [ -n "$group" ]; then chgrp -- "$group" "$1" fi if [ -n "$mode" ]; then chmod -- "$mode" "$1" fi } while getopts m:u:g:c:r:CdD:tlphjJ123456789x:nq opt ; do case "$opt" in m) mode="$OPTARG" ;; u) user="$OPTARG" ;; g) group="$OPTARG" ;; c) count="$OPTARG" ;; r) rolldir="$OPTARG" ;; C) forceclean=1 ;; d) datum=1 ;; D) DATUM=$(date +$OPTARG) ;; t) touch=1 ;; j) COMPRESS="bzip2"; COMPRESS_OPTS="-f"; COMPRESS_STRENGTH_DEF="-9"; DOT_Z=".bz2" ;; J) COMPRESS="xz"; COMPRESS_OPTS="-f"; COMPRESS_STRENGTH_DEF=""; DOT_Z=".xz" ;; [1-9]) COMPRESS_STRENGTH="-$opt" ;; x) hookscript="$OPTARG" ;; l) COMPRESS="" ;; p) preserve=1 ;; n) rotateifempty="no" ;; q) quiet=1 ;; h) usage; exit 0 ;; *) usage; exit 1 ;; esac done shift $(($OPTIND - 1)) if [ "$count" -lt 2 ]; then echo "$prog: count must be at least 2" 1>&2 exit 2 fi if [ -n "$COMPRESS" ] && [ -z "`which $COMPRESS`" ]; then echo "$prog: Compression binary not available, please make sure '$COMPRESS' is installed" 1>&2 exit 2 fi if [ -n "$COMPRESS_STRENGTH" ]; then COMPRESS_OPTS="$COMPRESS_OPTS $COMPRESS_STRENGTH" else COMPRESS_OPTS="$COMPRESS_OPTS $COMPRESS_STRENGTH_DEF" fi # cycle thru filenames while [ $# -gt 0 ]; do # get the filename filename="$1" shift # catch bogus files if [ -e "$filename" ] && [ ! -f "$filename" ]; then echo "$prog: $filename is not a regular file" 1>&2 exitcode=3 continue fi # if file does not exist or is empty, and we've been told to not rotate # empty files, create if requested and skip to the next file. if [ ! -s "$filename" ] && [ "$rotateifempty" = "no" ]; then # if -t was given and it does not exist, create it if test -n "$touch" && [ ! -f "$filename" ]; then touch -- "$filename" if [ "$?" -ne 0 ]; then echo "$prog: could not touch $filename" 1>&2 exitcode=4 continue fi fixfile "$filename" fi continue # otherwise if the file does not exist and we've been told to rotate it # anyway, create an empty file to rotate. elif [ ! -e "$filename" ]; then touch -- "$filename" if [ "$?" -ne 0 ]; then echo "$prog: could not touch $filename" 1>&2 exitcode=4 continue fi fixfile "$filename" fi # be sure that the savedir exists and is writable # (Debian default: $savedir is . and not ./OLD) savedir=`dirname -- "$filename"` if [ -z "$savedir" ]; then savedir=. fi case "$rolldir" in (/*) savedir="$rolldir" ;; (*) savedir="$savedir/$rolldir" ;; esac if [ ! -d "$savedir" ]; then mkdir -p -- "$savedir" if [ "$?" -ne 0 ]; then echo "$prog: could not mkdir $savedir" 1>&2 exitcode=5 continue fi chmod 0755 -- "$savedir" fi if [ ! -w "$savedir" ]; then echo "$prog: directory $savedir is not writable" 1>&2 exitcode=7 continue fi # determine our uncompressed file names newname=`basename -- "$filename"` newname="$savedir/$newname" # cycle the old compressed log files cycle=$(( $count - 1)) rm -f -- "$newname.$cycle" "$newname.$cycle$DOT_Z" while [ $cycle -gt 1 ]; do # --cycle oldcycle=$cycle cycle=$(( $cycle - 1 )) # cycle log if [ -f "$newname.$cycle$DOT_Z" ]; then mv -f -- "$newname.$cycle$DOT_Z" \ "$newname.$oldcycle$DOT_Z" fi if [ -f "$newname.$cycle" ]; then # file was not compressed. move it anyway mv -f -- "$newname.$cycle" "$newname.$oldcycle" fi done # compress the old uncompressed log if needed if [ -f "$newname.0" ]; then if [ -z "$COMPRESS" ]; then newfile="$newname.1" mv -f -- "$newname.0" "$newfile" else newfile="$newname.1$DOT_Z" # $COMPRESS $COMPRESS_OPTS < $newname.0 > $newfile # rm -f $newname.0 $COMPRESS $COMPRESS_OPTS "$newname.0" mv -f -- "$newname.0$DOT_Z" "$newfile" fi fixfile "$newfile" fi # compress the old uncompressed log if needed if test -n "$datum" && test -n "$COMPRESS"; then $COMPRESS $COMPRESS_OPTS -- "$newname".[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] fi # remove old files if so desired if [ -n "$forceclean" ]; then cycle=$(( $count - 1)) if [ -z "$COMPRESS" ]; then list=$(ls -t -- $newname.[0-9]* 2>/dev/null | sed -e 1,${cycle}d) if [ -n "$list" ]; then rm -f -- $list fi else list=$(ls -t -- $newname.[0-9]*$DOT_Z 2>/dev/null | sed -e 1,${cycle}d) if [ -n "$list" ]; then rm -f -- $list fi fi fi # create new file if needed if [ -n "$preserve" ]; then (umask 077 touch -- "$filename.new" chown --reference="$filename" -- "$filename.new" chmod --reference="$filename" -- "$filename.new") filenew=1 elif [ -n "$touch$user$group$mode" ]; then touch -- "$filename.new" fixfile "$filename.new" filenew=1 fi newfilename="$newname.0" # link the file into the file.0 holding place if [ -f "$filename" ]; then if [ -n "$filenew" ]; then if ln -f -- "$filename" "$newfilename"; then mv -f -- "$filename.new" "$filename" else echo "Error hardlinking $filename to $newfilename" >&2 exitcode=8 continue fi else mv -f -- "$filename" "$newfilename" fi fi [ ! -f "$newfilename" ] && touch -- "$newfilename" fixfile "$newfilename" if [ -n "$datum" ]; then mv -- "$newfilename" "$newname.$DATUM" newfilename="$newname.$DATUM" fi if [ -n "$hookscript" ]; then FILE="$newfilename" $SHELL -c "$hookscript" || \ { ret=$? test "$quiet" -eq 1 || echo "Hook script failed with exit code $ret." 1>&2 } fi # report successful rotation test "$quiet" -eq 1 || echo "Rotated \`$filename' at `date`." done exit $exitcode