$44 GRAYBYTE WORDPRESS FILE MANAGER $66

SERVER : in-mum-web1330.main-hosting.eu #1 SMP Mon Feb 10 22:45:17 UTC 2025
SERVER IP : 147.79.69.252 | ADMIN IP 216.73.216.85
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/usr/bin/

HOME
Current File : /usr/bin//autom4te
#! /usr/bin/perl -w
# -*- perl -*-
# Generated from autom4te.in; do not edit by hand.

eval 'case $# in 0) exec /usr/bin/perl -S "$0";; *) exec /usr/bin/perl -S "$0" "$@";; esac'
    if 0;

# autom4te - Wrapper around M4 libraries.
# Copyright (C) 2001-2003, 2005-2012 Free Software Foundation, Inc.

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


BEGIN
{
  my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '/usr/share/autoconf';
  unshift @INC, $pkgdatadir;

  # Override SHELL.  On DJGPP SHELL may not be set to a shell
  # that can handle redirection and quote arguments correctly,
  # e.g.: COMMAND.COM.  For DJGPP always use the shell that configure
  # has detected.
  $ENV{'SHELL'} = '/bin/sh' if ($^O eq 'dos');
}

use Autom4te::C4che;
use Autom4te::ChannelDefs;
use Autom4te::Channels;
use Autom4te::FileUtils;
use Autom4te::General;
use Autom4te::XFile;
use File::Basename;
use strict;

# Data directory.
my $pkgdatadir = $ENV{'AC_MACRODIR'} || '/usr/share/autoconf';

# $LANGUAGE{LANGUAGE} -- Automatic options for LANGUAGE.
my %language;

my $output = '-';

# Mode of the output file except for traces.
my $mode = "0666";

# If melt, don't use frozen files.
my $melt = 0;

# Names of the cache directory, cache directory index, trace cache
# prefix, and output cache prefix.  And the IO object for the index.
my $cache;
my $icache;
my $tcache;
my $ocache;
my $icache_file;

my $flock_implemented = 'yes';

# The macros to trace mapped to their format, as specified by the
# user.
my %trace;

# The macros the user will want to trace in the future.
# We need `include' to get the included file, `m4_pattern_forbid' and
# `m4_pattern_allow' to check the output.
#
# FIXME: What about `sinclude'?
my @preselect = ('include',
		 'm4_pattern_allow', 'm4_pattern_forbid',
		 '_m4_warn');

# M4 include path.
my @include;

# Do we freeze?
my $freeze = 0;

# $M4.
my $m4 = $ENV{"M4"} || '/usr/bin/m4';
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
fatal "need GNU m4 1.4 or later: $m4"
  if system "$m4 --help </dev/null 2>&1 | grep reload-state >/dev/null";

# Set some high recursion limit as the default limit, 250, has already
# been hit with AC_OUTPUT.  Don't override the user's choice.
$m4 .= ' --nesting-limit=1024'
  if " $m4 " !~ / (--nesting-limit(=[0-9]+)?|-L[0-9]*) /;


# @M4_BUILTIN -- M4 builtins and a useful comment.
my @m4_builtin = `echo dumpdef | $m4 2>&1 >/dev/null`;
map { s/:.*//;s/\W// } @m4_builtin;


# %M4_BUILTIN_ALTERNATE_NAME
# --------------------------
# The builtins are renamed, e.g., `define' is renamed `m4_define'.
# So map `define' to `m4_define' and conversely.
# Some macros don't follow this scheme: be sure to properly map to their
# alternate name too.
#
# FIXME: Trace status of renamed builtins was fixed in M4 1.4.5, which
# we now depend on; do we still need to do this mapping?
#
# So we will merge them, i.e., tracing `BUILTIN' or tracing
# `m4_BUILTIN' will be the same: tracing both, but honoring the
# *last* trace specification.
#
# FIXME: This is not enough: in the output `$0' will be `BUILTIN'
# sometimes and `m4_BUILTIN' at others.  We should return a unique name,
# the one specified by the user.
#
# FIXME: To be absolutely rigorous, I would say that given that we
# _redefine_ divert (instead of _copying_ it), divert and the like
# should not be part of this list.
my %m4_builtin_alternate_name;
@m4_builtin_alternate_name{"$_", "m4_$_"} = ("m4_$_", "$_")
  foreach (grep { !/m4wrap|m4exit|dnl|ifelse|__.*__/ } @m4_builtin);
@m4_builtin_alternate_name{"ifelse", "m4_if"}   = ("m4_if", "ifelse");
@m4_builtin_alternate_name{"m4exit", "m4_exit"} = ("m4_exit", "m4exit");
@m4_builtin_alternate_name{"m4wrap", "m4_wrap"} = ("m4_wrap", "m4wrap");


# $HELP
# -----
$help = "Usage: $0 [OPTION]... [FILES]

Run GNU M4 on the FILES, avoiding useless runs.  Output the traces if tracing,
the frozen file if freezing, otherwise the expansion of the FILES.

If some of the FILES are named \`FILE.m4f\' they are considered to be M4
frozen files of all the previous files (which are therefore not loaded).
If \`FILE.m4f\' is not found, then \`FILE.m4\' will be used, together with
all the previous files.

Some files may be optional, i.e., will only be processed if found in the
include path, but then must end in \`.m4?\';  the question mark is not part of
the actual file name.

Operation modes:
  -h, --help               print this help, then exit
  -V, --version            print version number, then exit
  -v, --verbose            verbosely report processing
  -d, --debug              don\'t remove temporary files
  -o, --output=FILE        save output in FILE (defaults to \`-\', stdout)
  -f, --force              don\'t rely on cached values
  -W, --warnings=CATEGORY  report the warnings falling in CATEGORY
  -l, --language=LANG      specify the set of M4 macros to use
  -C, --cache=DIRECTORY    preserve results for future runs in DIRECTORY
      --no-cache           disable the cache
  -m, --mode=OCTAL         change the non trace output file mode (0666)
  -M, --melt               don\'t use M4 frozen files

Languages include:
  \`Autoconf\'   create Autoconf configure scripts
  \`Autotest\'   create Autotest test suites
  \`M4sh\'       create M4sh shell scripts
  \`M4sugar\'    create M4sugar output

" . Autom4te::ChannelDefs::usage . "

The environment variables \`M4\' and \`WARNINGS\' are honored.

Library directories:
  -B, --prepend-include=DIR  prepend directory DIR to search path
  -I, --include=DIR          append directory DIR to search path

Tracing:
  -t, --trace=MACRO[:FORMAT]  report the MACRO invocations
  -p, --preselect=MACRO       prepare to trace MACRO in a future run

Freezing:
  -F, --freeze   produce an M4 frozen state file for FILES

FORMAT defaults to \`\$f:\$l:\$n:\$%\', and can use the following escapes:
  \$\$     literal \$
  \$f     file where macro was called
  \$l     line where macro was called
  \$d     nesting depth of macro call
  \$n     name of the macro
  \$NUM   argument NUM, unquoted and with newlines
  \$SEP\@  all arguments, with newlines, quoted, and separated by SEP
  \$SEP*  all arguments, with newlines, unquoted, and separated by SEP
  \$SEP%  all arguments, without newlines, unquoted, and separated by SEP
SEP can be empty for the default (comma for \@ and *, colon for %),
a single character for that character, or {STRING} to use a string.

Report bugs to <bug-autoconf\@gnu.org>.
GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
";

# $VERSION
# --------
$version =  <<"EOF";
autom4te (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Akim Demaille.
EOF


## ---------- ##
## Routines.  ##
## ---------- ##


# $OPTION
# files_to_options (@FILE)
# ------------------------
# Transform Autom4te conventions (e.g., using foo.m4f to designate a frozen
# file) into a suitable command line for M4 (e.g., using --reload-state).
# parse_args guarantees that we will see at most one frozen file, and that
# if a frozen file is present, it is the first argument.
sub files_to_options (@)
{
  my (@file) = @_;
  my @res;
  foreach my $file (@file)
    {
      my $arg = shell_quote ($file);
      if ($file =~ /\.m4f$/)
	{
	  $arg = "--reload-state=$arg";
	  # If the user downgraded M4 from 1.6 to 1.4.x after freezing
	  # the file, then we ensure the frozen __m4_version__ will
	  # not cause m4_init to make the wrong decision about the
	  # current M4 version.
	  $arg .= " --undefine=__m4_version__"
	    unless grep {/__m4_version__/} @m4_builtin;
	}
      push @res, $arg;
    }
  return join ' ', @res;
}


# load_configuration ($FILE)
# --------------------------
# Load the configuration $FILE.
sub load_configuration ($)
{
  my ($file) = @_;
  use Text::ParseWords;

  my $cfg = new Autom4te::XFile ("< " . open_quote ($file));
  my $lang;
  while ($_ = $cfg->getline)
    {
      chomp;
      # Comments.
      next
	if /^\s*(\#.*)?$/;

      my @words = shellwords ($_);
      my $type = shift @words;
      if ($type eq 'begin-language:')
	{
	  fatal "$file:$.: end-language missing for: $lang"
	    if defined $lang;
	  $lang = lc $words[0];
	}
      elsif ($type eq 'end-language:')
	{
	  error "$file:$.: end-language mismatch: $lang"
	    if $lang ne lc $words[0];
	  $lang = undef;
	}
      elsif ($type eq 'args:')
	{
	  fatal "$file:$.: no current language"
	    unless defined $lang;
	  push @{$language{$lang}}, @words;
	}
      else
	{
	  error "$file:$.: unknown directive: $type";
	}
    }
}


# parse_args ()
# -------------
# Process any command line arguments.
sub parse_args ()
{
  # We want to look for the early options, which should not be found
  # in the configuration file.  Prepend to the user arguments.
  # Perform this repeatedly so that we can use --language in language
  # definitions.  Beware that there can be several --language
  # invocations.
  my @language;
  do {
    @language = ();
    use Getopt::Long;
    Getopt::Long::Configure ("pass_through", "permute");
    GetOptions ("l|language=s" => \@language);

    foreach (@language)
      {
	error "unknown language: $_"
	  unless exists $language{lc $_};
	unshift @ARGV, @{$language{lc $_}};
      }
  } while @language;

  # --debug is useless: it is parsed below.
  if (exists $ENV{'AUTOM4TE_DEBUG'})
    {
      print STDERR "$me: concrete arguments:\n";
      foreach my $arg (@ARGV)
	{
	  print STDERR "| $arg\n";
	}
    }

  # Process the arguments for real this time.
  my @trace;
  my @prepend_include;
  parse_WARNINGS;
  getopt
    (
     # Operation modes:
     "o|output=s"   => \$output,
     "W|warnings=s" => \&parse_warnings,
     "m|mode=s"     => \$mode,
     "M|melt"       => \$melt,

     # Library directories:
     "B|prepend-include=s" => \@prepend_include,
     "I|include=s"         => \@include,

     # Tracing:
     # Using a hash for traces is seducing.  Unfortunately, upon `-t FOO',
     # instead of mapping `FOO' to undef, Getopt maps it to `1', preventing
     # us from distinguishing `-t FOO' from `-t FOO=1'.  So let's do it
     # by hand.
     "t|trace=s"     => \@trace,
     "p|preselect=s" => \@preselect,

     # Freezing.
     "F|freeze" => \$freeze,

     # Caching.
     "C|cache=s" => \$cache,
     "no-cache"  => sub { $cache = undef; },
    );

  fatal "too few arguments
Try `$me --help' for more information."
    unless @ARGV;

  # Freezing:
  # We cannot trace at the same time (well, we can, but it sounds insane).
  # And it implies melting: there is risk not to update properly using
  # old frozen files, and worse yet: we could load a frozen file and
  # refreeze it!  A sort of caching :)
  fatal "cannot freeze and trace"
    if $freeze && @trace;
  $melt = 1
    if $freeze;

  # Names of the cache directory, cache directory index, trace cache
  # prefix, and output cache prefix.  If the cache is not to be
  # preserved, default to a temporary directory (automatically removed
  # on exit).
  $cache = $tmp
    unless $cache;
  $icache = "$cache/requests";
  $tcache = "$cache/traces.";
  $ocache = "$cache/output.";

  # Normalize the includes: the first occurrence is enough, several is
  # a pain since it introduces a useless difference in the path which
  # invalidates the cache.  And strip `.' which is implicit and always
  # first.
  @include = grep { !/^\.$/ } uniq (reverse(@prepend_include), @include);

  # Convert @trace to %trace, and work around the M4 builtins tracing
  # problem.
  # The default format is `$f:$l:$n:$%'.
  foreach (@trace)
    {
      /^([^:]+)(?::(.*))?$/ms;
      $trace{$1} = defined $2 ? $2 : '$f:$l:$n:$%';
      $trace{$m4_builtin_alternate_name{$1}} = $trace{$1}
	if exists $m4_builtin_alternate_name{$1};
    }

  # Work around the M4 builtins tracing problem for @PRESELECT.
  # FIXME: Is this still needed, now that we rely on M4 1.4.5?
  push (@preselect,
	map { $m4_builtin_alternate_name{$_} }
	grep { exists $m4_builtin_alternate_name{$_} } @preselect);

  # If we find frozen files, then all the files before it are
  # discarded: the frozen file is supposed to include them all.
  #
  # We don't want to depend upon m4's --include to find the top level
  # files, so we use `find_file' here.  Try to get a canonical name,
  # as it's part of the key for caching.  And some files are optional
  # (also handled by `find_file').
  my @argv;
  foreach (@ARGV)
    {
      if ($_ eq '-')
	{
	  push @argv, $_;
	}
      elsif (/\.m4f$/)
	{
	  # Frozen files are optional => pass a `?' to `find_file'.
	  my $file = find_file ("$_?", @include);
	  if (!$melt && $file)
	    {
	      @argv = ($file);
	    }
	  else
	    {
	      s/\.m4f$/.m4/;
	      push @argv, find_file ($_, @include);
	    }
	}
      else
	{
	  my $file = find_file ($_, @include);
	  push @argv, $file
	    if $file;
	}
    }
  @ARGV = @argv;
}


# handle_m4 ($REQ, @MACRO)
# ------------------------
# Run m4 on the input files, and save the traces on the @MACRO.
sub handle_m4 ($@)
{
  my ($req, @macro) = @_;

  # GNU m4 appends when using --debugfile/--error-output.
  unlink ($tcache . $req->id . "t");

  # Run m4.
  #
  # We don't output directly to the cache files, to avoid problems
  # when we are interrupted (that leaves corrupted files).
  xsystem ("$m4 --gnu"
	   . join (' --include=', '', map { shell_quote ($_) } @include)
	   . ' --debug=aflq'
	   . (!exists $ENV{'AUTOM4TE_NO_FATAL'} ? ' --fatal-warning' : '')
	   . " --debugfile=" . shell_quote ("$tcache" . $req->id . "t")
	   . join (' --trace=', '', map { shell_quote ($_) } sort @macro)
	   . " " . files_to_options (@ARGV)
	   . " > " . shell_quote ("$ocache" . $req->id . "t"));

  # Everything went ok: preserve the outputs.
  foreach my $file (map { $_ . $req->id } ($tcache, $ocache))
    {
      use File::Copy;
      move ("${file}t", "$file")
	or fatal "cannot rename ${file}t as $file: $!";
    }
}


# warn_forbidden ($WHERE, $WORD, %FORBIDDEN)
# ------------------------------------------
# $WORD is forbidden.  Warn with a dedicated error message if in
# %FORBIDDEN, otherwise a simple `error: possibly undefined macro'
# will do.
my $first_warn_forbidden = 1;
sub warn_forbidden ($$%)
{
  my ($where, $word, %forbidden) = @_;
  my $message;

  for my $re (sort keys %forbidden)
    {
      if ($word =~ $re)
	{
	  $message = $forbidden{$re};
	  last;
	}
    }
  $message ||= "possibly undefined macro: $word";
  warn "$where: error: $message\n";
  if ($first_warn_forbidden)
    {
      warn <<EOF;
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
EOF
      $first_warn_forbidden = 0;
    }
}


# handle_output ($REQ, $OUTPUT)
# -----------------------------
# Run m4 on the input files, perform quadrigraphs substitution, check for
# forbidden tokens, and save into $OUTPUT.
sub handle_output ($$)
{
  my ($req, $output) = @_;

  verb "creating $output";

  # Load the forbidden/allowed patterns.
  handle_traces ($req, "$tmp/patterns",
		 ('m4_pattern_forbid' => 'forbid:$1:$2',
		  'm4_pattern_allow'  => 'allow:$1'));
  my @patterns = new Autom4te::XFile ("< " . open_quote ("$tmp/patterns"))->getlines;
  chomp @patterns;
  my %forbidden =
    map { /^forbid:([^:]+):.+$/ => /^forbid:[^:]+:(.+)$/ } @patterns;
  my $forbidden = join ('|', map { /^forbid:([^:]+)/ } @patterns) || "^\$";
  my $allowed   = join ('|', map { /^allow:([^:]+)/  } @patterns) || "^\$";

  verb "forbidden tokens: $forbidden";
  verb "forbidden token : $_ => $forbidden{$_}"
    foreach (sort keys %forbidden);
  verb "allowed   tokens: $allowed";

  # Read the (cached) raw M4 output, produce the actual result.  We
  # have to use the 2nd arg to have Autom4te::XFile honor the third, but then
  # stdout is to be handled by hand :(.  Don't use fdopen as it means
  # we will close STDOUT, which we already do in END.
  my $out = new Autom4te::XFile;
  if ($output eq '-')
    {
      $out->open (">$output");
    }
  else
    {
      $out->open($output, O_CREAT | O_WRONLY | O_TRUNC, oct ($mode));
    }
  fatal "cannot create $output: $!"
    unless $out;
  my $in = new Autom4te::XFile ("< " . open_quote ($ocache . $req->id));

  my %prohibited;
  my $res;
  while ($_ = $in->getline)
    {
      s/\s+$//;
      s/__oline__/$./g;
      s/\@<:\@/[/g;
      s/\@:>\@/]/g;
      s/\@\{:\@/(/g;
      s/\@:\}\@/)/g;
      s/\@S\|\@/\$/g;
      s/\@%:\@/#/g;

      $res = $_;

      # Don't complain in comments.  Well, until we have something
      # better, don't consider `#include' etc. are comments.
      s/\#.*//
	unless /^\#\s*(if|include|endif|ifdef|ifndef|define)\b/;
      foreach (split (/\W+/))
	{
	  $prohibited{$_} = $.
	    if !/^$/ && /$forbidden/o && !/$allowed/o && ! exists $prohibited{$_};
	}

      # Performed *last*: the empty quadrigraph.
      $res =~ s/\@&t\@//g;

      print $out "$res\n";
    }

  $out->close();

  # If no forbidden words, we're done.
  return
    if ! %prohibited;

  # Locate the forbidden words in the last input file.
  # This is unsatisfying but...
  $exit_code = 1;
  if ($ARGV[$#ARGV] ne '-')
    {
      my $prohibited = '\b(' . join ('|', keys %prohibited) . ')\b';
      my $file = new Autom4te::XFile ("< " . open_quote ($ARGV[$#ARGV]));

      while ($_ = $file->getline)
	{
	  # Don't complain in comments.  Well, until we have something
	  # better, don't consider `#include' etc. to be comments.
	  s/\#.*//
	    unless /^\#(if|include|endif|ifdef|ifndef|define)\b/;

	  # Complain once per word, but possibly several times per line.
	  while (/$prohibited/)
	    {
	      my $word = $1;
	      warn_forbidden ("$ARGV[$#ARGV]:$.", $word, %forbidden);
	      delete $prohibited{$word};
	      # If we're done, exit.
	      return
		if ! %prohibited;
	      $prohibited = '\b(' . join ('|', keys %prohibited) . ')\b';
	    }
	}
    }
  warn_forbidden ("$output:$prohibited{$_}", $_, %forbidden)
    foreach (sort { $prohibited{$a} <=> $prohibited{$b} } keys %prohibited);
}


## --------------------- ##
## Handling the traces.  ##
## --------------------- ##


# $M4_MACRO
# trace_format_to_m4 ($FORMAT)
# ----------------------------
# Convert a trace $FORMAT into a M4 trace processing macro's body.
sub trace_format_to_m4 ($)
{
  my ($format) = @_;
  my $underscore = $_;
  my %escape = (# File name.
		'f' => '$1',
		# Line number.
		'l' => '$2',
		# Depth.
		'd' => '$3',
		# Name (also available as $0).
		'n' => '$4',
		# Escaped dollar.
		'$' => '$');

  my $res = '';
  $_ = $format;
  while ($_)
    {
      # $n -> $(n + 4)
      if (s/^\$(\d+)//)
	{
	  $res .= "\$" . ($1 + 4);
	}
      # $x, no separator given.
      elsif (s/^\$([fldn\$])//)
	{
	  $res .= $escape{$1};
	}
      # $.x or ${sep}x.
      elsif (s/^\$\{([^}]*)\}([@*%])//
	    || s/^\$(.?)([@*%])//)
	{
	  # $@, list of quoted effective arguments.
	  if ($2 eq '@')
	    {
	      $res .= ']at_at([' . ($1 ? $1 : ',') . '], $@)[';
	    }
	  # $*, list of unquoted effective arguments.
	  elsif ($2 eq '*')
	    {
	      $res .= ']at_star([' . ($1 ? $1 : ',') . '], $@)[';
	    }
	  # $%, list of flattened unquoted effective arguments.
	  elsif ($2 eq '%')
	    {
	      $res .= ']at_percent([' . ($1 ? $1 : ':') . '], $@)[';
	    }
	}
      elsif (/^(\$.)/)
	{
	  error "invalid escape: $1";
	}
      else
	{
	  s/^([^\$]+)//;
	  $res .= $1;
	}
    }

  $_ = $underscore;
  return '[[' . $res . ']]';
}


# handle_traces($REQ, $OUTPUT, %TRACE)
# ------------------------------------
# We use M4 itself to process the traces.  But to avoid name clashes when
# processing the traces, the builtins are disabled, and moved into `at_'.
# Actually, all the low level processing macros are in `at_' (and `_at_').
# To avoid clashes between user macros and `at_' macros, the macros which
# implement tracing are in `AT_'.
#
# Having $REQ is needed to neutralize the macros which have been traced,
# but are not wanted now.
sub handle_traces ($$%)
{
  my ($req, $output, %trace) = @_;

  verb "formatting traces for `$output': " . join (', ', sort keys %trace);

  # Processing the traces.
  my $trace_m4 = new Autom4te::XFile ("> " . open_quote ("$tmp/traces.m4"));

  $_ = <<'EOF';
  divert(-1)
  changequote([, ])
  # _at_MODE(SEPARATOR, ELT1, ELT2...)
  # ----------------------------------
  # List the elements, separating then with SEPARATOR.
  # MODE can be:
  #  `at'       -- the elements are enclosed in brackets.
  #  `star'     -- the elements are listed as are.
  #  `percent'  -- the elements are `flattened': spaces are singled out,
  #                and no new line remains.
  define([_at_at],
  [at_ifelse([$#], [1], [],
	     [$#], [2], [[[$2]]],
	     [[[$2]][$1]$0([$1], at_shift(at_shift($@)))])])

  define([_at_percent],
  [at_ifelse([$#], [1], [],
	     [$#], [2], [at_flatten([$2])],
	     [at_flatten([$2])[$1]$0([$1], at_shift(at_shift($@)))])])

  define([_at_star],
  [at_ifelse([$#], [1], [],
	     [$#], [2], [[$2]],
	     [[$2][$1]$0([$1], at_shift(at_shift($@)))])])

  # FLATTEN quotes its result.
  # Note that the second pattern is `newline, tab or space'.  Don't lose
  # the tab!
  define([at_flatten],
  [at_patsubst(at_patsubst([[[$1]]], [\\\n]), [[\n\t ]+], [ ])])

  define([at_args],    [at_shift(at_shift(at_shift(at_shift(at_shift($@)))))])
  define([at_at],      [_$0([$1], at_args($@))])
  define([at_percent], [_$0([$1], at_args($@))])
  define([at_star],    [_$0([$1], at_args($@))])

EOF
  s/^  //mg;s/\\t/\t/mg;s/\\n/\n/mg;
  print $trace_m4 $_;

  # If you trace `define', then on `define([m4_exit], defn([m4exit])' you
  # will produce
  #
  #    AT_define([m4sugar.m4], [115], [1], [define], [m4_exit], <m4exit>)
  #
  # Since `<m4exit>' is not quoted, the outer m4, when processing
  # `trace.m4' will exit prematurely.  Hence, move all the builtins to
  # the `at_' name space.

  print $trace_m4 "# Copy the builtins.\n";
  map { print $trace_m4 "define([at_$_], defn([$_]))\n" } @m4_builtin;
  print $trace_m4 "\n";

  print $trace_m4 "# Disable them.\n";
  map { print $trace_m4 "at_undefine([$_])\n" } @m4_builtin;
  print $trace_m4 "\n";


  # Neutralize traces: we don't want traces of cached requests (%REQUEST).
  print $trace_m4
   "## -------------------------------------- ##\n",
   "## By default neutralize all the traces.  ##\n",
   "## -------------------------------------- ##\n",
   "\n";
  print $trace_m4 "at_define([AT_$_], [at_dnl])\n"
    foreach (sort keys %{$req->macro});
  print $trace_m4 "\n";

  # Implement traces for current requests (%TRACE).
  print $trace_m4
    "## ------------------------- ##\n",
    "## Trace processing macros.  ##\n",
    "## ------------------------- ##\n",
    "\n";
  foreach (sort keys %trace)
    {
      # Trace request can be embed \n.
      (my $comment = "Trace $_:$trace{$_}") =~ s/^/\# /;
      print $trace_m4 "$comment\n";
      print $trace_m4 "at_define([AT_$_],\n";
      print $trace_m4 trace_format_to_m4 ($trace{$_}) . ")\n\n";
    }
  print $trace_m4 "\n";

  # Reenable output.
  print $trace_m4 "at_divert(0)at_dnl\n";

  # Transform the traces from m4 into an m4 input file.
  # Typically, transform:
  #
  # | m4trace:configure.ac:3: -1- AC_SUBST([exec_prefix], [NONE])
  #
  # into
  #
  # | AT_AC_SUBST([configure.ac], [3], [1], [AC_SUBST], [exec_prefix], [NONE])
  #
  # Pay attention that the file name might include colons, if under DOS
  # for instance, so we don't use `[^:]+'.
  my $traces = new Autom4te::XFile ("< " . open_quote ($tcache . $req->id));
  while ($_ = $traces->getline)
    {
      # Trace with arguments, as the example above.  We don't try
      # to match the trailing parenthesis as it might be on a
      # separate line.
      s{^m4trace:(.+):(\d+): -(\d+)- ([^(]+)\((.*)$}
       {AT_$4([$1], [$2], [$3], [$4], $5};
      # Traces without arguments, always on a single line.
      s{^m4trace:(.+):(\d+): -(\d+)- ([^)]*)\n$}
       {AT_$4([$1], [$2], [$3], [$4])\n};
      print $trace_m4 "$_";
    }
  $trace_m4->close;

  my $in = new Autom4te::XFile ("$m4 " . shell_quote ("$tmp/traces.m4") . " |");
  my $out = new Autom4te::XFile ("> " . open_quote ($output));

  # This is dubious: should we really transform the quadrigraphs in
  # traces?  It might break balanced [ ] etc. in the output.  The
  # consensus seems to be that traces are more useful this way.
  while ($_ = $in->getline)
    {
      # It makes no sense to try to transform __oline__.
      s/\@<:\@/[/g;
      s/\@:>\@/]/g;
      s/\@\{:\@/(/g;
      s/\@:\}\@/)/g;
      s/\@S\|\@/\$/g;
      s/\@%:\@/#/g;
      s/\@&t\@//g;
      print $out $_;
    }
}


# $BOOL
# up_to_date ($REQ)
# -----------------
# Are the cache files of $REQ up to date?
# $REQ is `valid' if it corresponds to the request and exists, which
# does not mean it is up to date.  It is up to date if, in addition,
# its files are younger than its dependencies.
sub up_to_date ($)
{
  my ($req) = @_;

  return 0
    if ! $req->valid;

  my $tfile = $tcache . $req->id;
  my $ofile = $ocache . $req->id;

  # We can't answer properly if the traces are not computed since we
  # need to know what other files were included.  Actually, if any of
  # the cache files is missing, we are not up to date.
  return 0
    if ! -f $tfile || ! -f $ofile;

  # The youngest of the cache files must be older than the oldest of
  # the dependencies.
  my $tmtime = mtime ($tfile);
  my $omtime = mtime ($ofile);
  my ($file, $mtime) = ($tmtime < $omtime
			? ($ofile, $omtime) : ($tfile, $tmtime));

  # We depend at least upon the arguments.
  my @dep = @ARGV;

  # stdin is always out of date.
  if (grep { $_ eq '-' } @dep)
    { return 0 }

  # Files may include others.  We can use traces since we just checked
  # if they are available.
  handle_traces ($req, "$tmp/dependencies",
		 ('include'    => '$1',
		  'm4_include' => '$1'));
  my $deps = new Autom4te::XFile ("< " . open_quote ("$tmp/dependencies"));
  while ($_ = $deps->getline)
    {
      chomp;
      my $file = find_file ("$_?", @include);
      # If a file which used to be included is no longer there, then
      # don't say it's missing (it might no longer be included).  But
      # of course, that causes the output to be outdated (as if the
      # time stamp of that missing file was newer).
      return 0
	if ! $file;
      push @dep, $file;
    }

  # If $FILE is younger than one of its dependencies, it is outdated.
  return up_to_date_p ($file, @dep);
}


## ---------- ##
## Freezing.  ##
## ---------- ##

# freeze ($OUTPUT)
# ----------------
sub freeze ($)
{
  my ($output) = @_;

  # When processing the file with diversion disabled, there must be no
  # output but comments and empty lines.
  my $result = xqx ("$m4"
		    . ' --fatal-warning'
		    . join (' --include=', '', map { shell_quote ($_) } @include)
		    . ' --define=divert'
		    . " " . files_to_options (@ARGV)
		    . ' </dev/null');
  $result =~ s/#.*\n//g;
  $result =~ s/^\n//mg;

  fatal "freezing produced output:\n$result"
    if $result;

  # If freezing produces output, something went wrong: a bad `divert',
  # or an improper paren etc.
  xsystem ("$m4"
	   . ' --fatal-warning'
	   . join (' --include=', '', map { shell_quote ($_) } @include)
	   . " --freeze-state=" . shell_quote ($output)
	   . " " . files_to_options (@ARGV)
	   . ' </dev/null');
}

## -------------- ##
## Main program.  ##
## -------------- ##

mktmpdir ('am4t');
load_configuration ($ENV{'AUTOM4TE_CFG'} || "$pkgdatadir/autom4te.cfg");
load_configuration ("$ENV{'HOME'}/.autom4te.cfg")
  if exists $ENV{'HOME'} && -f "$ENV{'HOME'}/.autom4te.cfg";
load_configuration (".autom4te.cfg")
  if -f ".autom4te.cfg";
parse_args;

# Freezing does not involve the cache.
if ($freeze)
  {
    freeze ($output);
    exit $exit_code;
  }

# We need our cache directory.  Don't fail with parallel creation.
if (! -d "$cache")
  {
    mkdir "$cache", 0755
      or -d "$cache"
      or fatal "cannot create $cache: $!";
  }

# Open the index for update, and lock it.  autom4te handles several
# files, but the index is the first and last file to be updated, so
# locking it is sufficient.
$icache_file = new Autom4te::XFile $icache, O_RDWR|O_CREAT;
$icache_file->lock (LOCK_EX)
  if ($flock_implemented eq "yes");

# Read the cache index if available and older than autom4te itself.
# If autom4te is younger, then some structures such as C4che might
# have changed, which would corrupt its processing.
Autom4te::C4che->load ($icache_file)
  if -f $icache && mtime ($icache) > mtime ($0);

# Add the new trace requests.
my $req = Autom4te::C4che->request ('input' => \@ARGV,
				    'path'  => \@include,
				    'macro' => [keys %trace, @preselect]);

# If $REQ's cache files are not up to date, or simply if the user
# discarded them (-f), declare it invalid.
$req->valid (0)
  if $force || ! up_to_date ($req);

# We now know whether we can trust the Request object.  Say it.
verb "the trace request object is:\n" . $req->marshall;

# We need to run M4 if (i) the user wants it (--force), (ii) $REQ is
# invalid.
handle_m4 ($req, keys %{$req->macro})
  if $force || ! $req->valid;

# Issue the warnings each time autom4te was run.
my $separator = "\n" . ('-' x 25) . " END OF WARNING " . ('-' x 25) . "\n\n";
handle_traces ($req, "$tmp/warnings",
	       ('_m4_warn' => "\$1::\$f:\$l::\$2::\$3$separator"));
# Swallow excessive newlines.
for (split (/\n*$separator\n*/o, contents ("$tmp/warnings")))
{
  # The message looks like:
  # | syntax::input.as:5::ouch
  # | ::input.as:4: baz is expanded from...
  # | input.as:2: bar is expanded from...
  # | input.as:3: foo is expanded from...
  # | input.as:5: the top level
  # In particular, m4_warn guarantees that either $stackdump is empty, or
  # it consists of lines where only the last line ends in "top level".
  my ($cat, $loc, $msg, $stacktrace) = split ('::', $_, 4);
  msg $cat, $loc, "warning: $msg",
    partial => ($stacktrace =~ /top level$/) + 0;
  for (split /\n/, $stacktrace)
    {
      my ($loc, $trace) = split (': ', $_, 2);
      msg $cat, $loc, $trace, partial => ($trace !~ /top level$/) + 0;
    }
}

# Now output...
if (%trace)
  {
    # Always produce traces, since even if the output is young enough,
    # there is no guarantee that the traces use the same *format*
    # (e.g., `-t FOO:foo' and `-t FOO:bar' are both using the same M4
    # traces, hence the M4 traces cache is usable, but its formatting
    # will yield different results).
    handle_traces ($req, $output, %trace);
  }
else
  {
    # Actual M4 expansion, if the user wants it, or if $output is old
    # (STDOUT is pretty old).
    handle_output ($req, $output)
      if $force || mtime ($output) < mtime ($ocache . $req->id);
  }

# If we ran up to here, the cache is valid.
$req->valid (1);
Autom4te::C4che->save ($icache_file);

exit $exit_code;

### Setup "GNU" style for perl-mode and cperl-mode.
## Local Variables:
## perl-indent-level: 2
## perl-continued-statement-offset: 2
## perl-continued-brace-offset: 0
## perl-brace-offset: 0
## perl-brace-imaginary-offset: 0
## perl-label-offset: -2
## cperl-indent-level: 2
## cperl-brace-offset: 0
## cperl-continued-brace-offset: 0
## cperl-label-offset: -2
## cperl-extra-newline-before-brace: t
## cperl-merge-trailing-else: nil
## cperl-continued-statement-offset: 2
## End:

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
25 Jan 2024 2.16 PM
root / root
0755
7za
0.045 KB
4 Oct 2024 1.50 AM
root / root
0755
[
53.672 KB
1 Apr 2023 8.44 AM
root / root
0755
aclocal
35.623 KB
14 Oct 2023 8.00 PM
root / root
0755
aclocal-1.16
35.623 KB
14 Oct 2023 8.00 PM
root / root
0755
addr2line
33.414 KB
15 Nov 2024 9.59 AM
root / root
0755
ar
61.961 KB
15 Nov 2024 9.59 AM
root / root
0755
arch
37.406 KB
1 Apr 2023 8.44 AM
root / root
0755
arpaname
11.82 KB
20 Feb 2025 9.05 AM
root / root
0755
as
889.906 KB
15 Nov 2024 9.59 AM
root / root
0755
aspell
159.5 KB
18 Apr 2022 3.10 PM
root / root
0755
autoconf
14.422 KB
13 Aug 2024 7.30 PM
root / root
0755
autoheader
8.334 KB
13 Aug 2024 7.30 PM
root / root
0755
autom4te
31.427 KB
13 Aug 2024 7.30 PM
root / root
0755
automake
251.903 KB
14 Oct 2023 8.00 PM
root / root
0755
automake-1.16
251.903 KB
14 Oct 2023 8.00 PM
root / root
0755
autoreconf
20.572 KB
13 Aug 2024 7.30 PM
root / root
0755
autoscan
16.723 KB
13 Aug 2024 7.30 PM
root / root
0755
autoupdate
33.078 KB
13 Aug 2024 7.30 PM
root / root
0755
awk
669.773 KB
18 Apr 2022 3.56 PM
root / root
0755
b2sum
57.758 KB
1 Apr 2023 8.44 AM
root / root
0755
base32
41.547 KB
1 Apr 2023 8.44 AM
root / root
0755
base64
41.563 KB
1 Apr 2023 8.44 AM
root / root
0755
basename
37.492 KB
1 Apr 2023 8.44 AM
root / root
0755
bash
1.1 MB
23 May 2024 8.55 AM
root / root
0755
bashbug-64
7.176 KB
23 May 2024 8.55 AM
root / root
0755
bunzip2
36.859 KB
28 Jan 2025 1.38 AM
root / root
0755
bzcat
36.859 KB
28 Jan 2025 1.38 AM
root / root
0755
bzcmp
2.078 KB
28 Jan 2025 1.38 AM
root / root
0755
bzdiff
2.078 KB
28 Jan 2025 1.38 AM
root / root
0755
bzgrep
1.638 KB
28 Jan 2025 1.38 AM
root / root
0755
bzip2
36.859 KB
28 Jan 2025 1.38 AM
root / root
0755
bzip2recover
16.438 KB
28 Jan 2025 1.38 AM
root / root
0755
bzless
1.229 KB
28 Jan 2025 1.38 AM
root / root
0755
bzmore
1.229 KB
28 Jan 2025 1.38 AM
root / root
0755
c++
1.21 MB
14 Feb 2025 9.04 AM
root / root
0755
c++filt
28.891 KB
15 Nov 2024 9.59 AM
root / root
0755
cagefs_enter.proxied
1.031 KB
24 Dec 2024 11.28 AM
root / root
0755
cal
65.977 KB
6 Apr 2024 1.02 PM
root / root
0755
captoinfo
85.313 KB
14 Oct 2023 6.54 PM
root / root
0755
cat
37.539 KB
1 Apr 2023 8.44 AM
root / root
0755
catchsegv
3.206 KB
5 Aug 2025 2.01 PM
root / root
0755
chcon
70.43 KB
1 Apr 2023 8.44 AM
root / root
0755
chgrp
66.352 KB
1 Apr 2023 8.44 AM
root / root
0755
chmod
62.289 KB
1 Apr 2023 8.44 AM
root / root
0755
chown
70.391 KB
1 Apr 2023 8.44 AM
root / root
0755
chrt
37.18 KB
6 Apr 2024 1.02 PM
root / root
0755
cksum
37.461 KB
1 Apr 2023 8.44 AM
root / root
0755
clear
12.539 KB
14 Oct 2023 6.54 PM
root / root
0755
cloudlinux-awp-user
1.775 KB
2 Jul 2025 4.20 PM
root / root
0755
clwpos-user
1.775 KB
2 Jul 2025 4.20 PM
root / root
0755
cmp
103.758 KB
4 May 2020 3.15 PM
root / root
0755
col
29 KB
6 Apr 2024 1.02 PM
root / root
0755
colcrt
16.477 KB
6 Apr 2024 1.02 PM
root / root
0755
colrm
24.883 KB
6 Apr 2024 1.02 PM
root / root
0755
column
49.469 KB
6 Apr 2024 1.02 PM
root / root
0755
comm
41.633 KB
1 Apr 2023 8.44 AM
root / root
0755
cp
148.047 KB
1 Apr 2023 8.44 AM
root / root
0755
cpp
1.21 MB
14 Feb 2025 9.04 AM
root / root
0755
csplit
53.758 KB
1 Apr 2023 8.44 AM
root / root
0755
curl
230.086 KB
28 Jan 2025 1.43 AM
root / root
0755
cut
49.594 KB
1 Apr 2023 8.44 AM
root / root
0755
date
106.031 KB
1 Apr 2023 8.44 AM
root / root
0755
dbiprof
6.061 KB
25 Apr 2022 4.10 PM
root / root
0755
delv
42.461 KB
20 Feb 2025 9.05 AM
root / root
0755
df
91.164 KB
1 Apr 2023 8.44 AM
root / root
0755
diff
268.008 KB
4 May 2020 3.15 PM
root / root
0755
diff3
128.602 KB
4 May 2020 3.15 PM
root / root
0755
dig
162.188 KB
20 Feb 2025 9.05 AM
root / root
0755
dir
139.969 KB
1 Apr 2023 8.44 AM
root / root
0755
dircolors
49.625 KB
1 Apr 2023 8.44 AM
root / root
0755
dirname
33.438 KB
1 Apr 2023 8.44 AM
root / root
0755
dltest
13.047 KB
14 Oct 2019 9.51 PM
root / root
0755
dnstap-read
20.43 KB
20 Feb 2025 9.05 AM
root / root
0755
du
107.102 KB
1 Apr 2023 8.44 AM
root / root
0755
echo
37.43 KB
1 Apr 2023 8.44 AM
root / root
0755
egrep
0.027 KB
11 Oct 2019 3.15 PM
root / root
0755
enchant
21.078 KB
23 Oct 2019 8.03 PM
root / root
0755
enchant-lsmod
13.094 KB
23 Oct 2019 8.03 PM
root / root
0755
env
41.43 KB
1 Apr 2023 8.44 AM
root / root
0755
eps2eps
0.624 KB
5 Nov 2024 1.49 AM
root / root
0755
eqn
232.156 KB
13 Oct 2019 2.29 PM
root / root
0755
ex
1.13 MB
2 Aug 2022 4.57 PM
root / root
0755
expand
41.664 KB
1 Apr 2023 8.44 AM
root / root
0755
expr
49.648 KB
1 Apr 2023 8.44 AM
root / root
0755
factor
86.055 KB
1 Apr 2023 8.44 AM
root / root
0755
false
33.391 KB
1 Apr 2023 8.44 AM
root / root
0755
fc-cache
0.129 KB
16 Aug 2021 11.04 AM
root / root
0755
fc-cache-64
20.352 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-cat
16.352 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-conflist
12.25 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-list
12.25 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-match
16.258 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-pattern
12.258 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-query
12.242 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-scan
12.258 KB
9 Oct 2021 9.02 AM
root / root
0755
fc-validate
16.258 KB
9 Oct 2021 9.02 AM
root / root
0755
fgrep
0.027 KB
11 Oct 2019 3.15 PM
root / root
0755
file
24.68 KB
6 Apr 2024 2.44 PM
root / root
0755
find
223.305 KB
24 Sep 2024 2.19 AM
root / root
0755
flock
33.195 KB
6 Apr 2024 1.02 PM
root / root
0755
fmt
45.57 KB
1 Apr 2023 8.44 AM
root / root
0755
fold
41.484 KB
1 Apr 2023 8.44 AM
root / root
0755
free
20.789 KB
14 Oct 2023 8.31 PM
root / root
0755
funzip
36.625 KB
3 Jun 2025 2.10 AM
root / root
0755
g++
1.21 MB
14 Feb 2025 9.04 AM
root / root
0755
gawk
669.773 KB
18 Apr 2022 3.56 PM
root / root
0755
gcc-ar
36.656 KB
14 Feb 2025 9.04 AM
root / root
0755
gcc-nm
36.656 KB
14 Feb 2025 9.04 AM
root / root
0755
gcc-ranlib
36.656 KB
14 Feb 2025 9.04 AM
root / root
0755
gcov-dump
566.938 KB
14 Feb 2025 9.04 AM
root / root
0755
gcov-tool
603.914 KB
14 Feb 2025 9.04 AM
root / root
0755
gencat
24.836 KB
5 Aug 2025 2.12 PM
root / root
0755
geoiplookup
21.891 KB
28 Nov 2019 10.06 PM
root / root
0755
geoiplookup6
21.648 KB
28 Nov 2019 10.06 PM
root / root
0755
geqn
232.156 KB
13 Oct 2019 2.29 PM
root / root
0755
getconf
32.461 KB
5 Aug 2025 2.12 PM
root / root
0755
getent
33.125 KB
5 Aug 2025 2.12 PM
root / root
0755
getopt
20.523 KB
6 Apr 2024 1.02 PM
root / root
0755
ghostscript
12.352 KB
5 Nov 2024 1.50 AM
root / root
0755
gifdiff
61.898 KB
21 Feb 2024 4.38 AM
root / root
0755
gifsicle
200.25 KB
21 Feb 2024 4.38 AM
root / root
0755
git
3.67 MB
17 Dec 2024 4.12 AM
root / root
0755
git-receive-pack
3.67 MB
17 Dec 2024 4.12 AM
root / root
0755
git-shell
2.13 MB
17 Dec 2024 4.12 AM
root / root
0755
git-upload-archive
3.67 MB
17 Dec 2024 4.12 AM
root / root
0755
git-upload-pack
3.67 MB
17 Dec 2024 4.12 AM
root / root
0755
gm
7.82 KB
28 Mar 2022 3.50 PM
root / root
0755
gneqn
0.887 KB
13 Oct 2019 2.29 PM
root / root
0755
gnroff
3.234 KB
13 Oct 2019 2.29 PM
root / root
0755
gpg
1.04 MB
13 Sep 2022 10.15 AM
root / root
0755
gpg-agent
419.289 KB
13 Sep 2022 10.15 AM
root / root
0755
gpg-error
34.156 KB
12 Oct 2019 12.20 PM
root / root
0755
gpg-zip
3.442 KB
13 Sep 2022 10.15 AM
root / root
0755
gpgsplit
87.016 KB
13 Sep 2022 10.15 AM
root / root
0755
gpgv
451.578 KB
13 Sep 2022 10.15 AM
root / root
0755
gpic
293.844 KB
13 Oct 2019 2.29 PM
root / root
0755
gprof
103.359 KB
15 Nov 2024 9.59 AM
root / root
0755
grep
193.633 KB
11 Oct 2019 3.15 PM
root / root
0755
groff
124.922 KB
13 Oct 2019 2.29 PM
root / root
0755
grops
191.141 KB
13 Oct 2019 2.29 PM
root / root
0755
grotty
141.898 KB
13 Oct 2019 2.29 PM
root / root
0755
groups
37.469 KB
1 Apr 2023 8.44 AM
root / root
0755
gs
12.352 KB
5 Nov 2024 1.50 AM
root / root
0755
gsnd
0.271 KB
5 Nov 2024 1.49 AM
root / root
0755
gsoelim
42.555 KB
13 Oct 2019 2.29 PM
root / root
0755
gtar
449.031 KB
4 Apr 2023 8.26 PM
root / root
0755
gtbl
154.609 KB
13 Oct 2019 2.29 PM
root / root
0755
gtroff
805.023 KB
13 Oct 2019 2.29 PM
root / root
0755
gunzip
2.29 KB
27 Apr 2022 5.49 AM
root / root
0755
gzexe
6.226 KB
27 Apr 2022 5.49 AM
root / root
0755
gzip
94.672 KB
27 Apr 2022 5.49 AM
root / root
0755
hdu
18.086 KB
26 Jan 2024 9.51 AM
root / root
0755
head
45.578 KB
1 Apr 2023 8.44 AM
root / root
0755
hexdump
57.5 KB
6 Apr 2024 1.02 PM
root / root
0755
host
142.297 KB
20 Feb 2025 9.05 AM
root / root
0755
hostid
33.406 KB
1 Apr 2023 8.44 AM
root / root
0755
hostname
21.156 KB
11 Oct 2019 1.06 PM
root / root
0755
hunspell
144.695 KB
13 Oct 2019 8.33 AM
root / root
0755
iconv
61.438 KB
5 Aug 2025 2.12 PM
root / root
0755
id
45.516 KB
1 Apr 2023 8.44 AM
root / root
0755
idn
39.406 KB
13 Oct 2019 4.55 PM
root / root
0755
ifnames
4.031 KB
13 Aug 2024 7.30 PM
root / root
0755
infocmp
61.047 KB
14 Oct 2023 6.54 PM
root / root
0755
infotocap
85.313 KB
14 Oct 2023 6.54 PM
root / root
0755
install
156.25 KB
1 Apr 2023 8.44 AM
root / root
0755
ionice
28.984 KB
6 Apr 2024 1.02 PM
root / root
0755
ipcrm
28.992 KB
6 Apr 2024 1.02 PM
root / root
0755
ipcs
53.391 KB
6 Apr 2024 1.02 PM
root / root
0755
isosize
24.875 KB
6 Apr 2024 1.02 PM
root / root
0755
ispell
0.965 KB
18 Apr 2022 3.10 PM
root / root
0755
isql
37.289 KB
14 Oct 2019 9.51 PM
root / root
0755
iusql
29.68 KB
14 Oct 2019 9.51 PM
root / root
0755
join
53.766 KB
1 Apr 2023 8.44 AM
root / root
0755
jpegoptim
39.063 KB
28 Aug 2019 8.32 PM
root / root
0755
kill
37.273 KB
6 Apr 2024 1.02 PM
root / root
0755
ld
1.71 MB
15 Nov 2024 9.59 AM
root / root
0755
ld.bfd
1.71 MB
15 Nov 2024 9.59 AM
root / root
0755
ldd
5.313 KB
5 Aug 2025 2.01 PM
root / root
0755
less
173.758 KB
2 Jul 2024 8.10 PM
root / root
0755
lessecho
12.398 KB
2 Jul 2024 8.10 PM
root / root
0755
lesskey
21.992 KB
2 Jul 2024 8.10 PM
root / root
0755
lesspipe.sh
3.069 KB
2 Jul 2024 7.57 PM
root / root
0755
link
33.406 KB
1 Apr 2023 8.44 AM
root / root
0755
ln
70.57 KB
1 Apr 2023 8.44 AM
root / root
0755
locale
56.445 KB
5 Aug 2025 2.12 PM
root / root
0755
localedef
307.469 KB
5 Aug 2025 2.12 PM
root / root
0755
logger
49.984 KB
6 Apr 2024 1.02 PM
root / root
0755
login
40.961 KB
6 Apr 2024 1.02 PM
root / root
0755
logname
33.422 KB
1 Apr 2023 8.44 AM
root / root
0755
look
16.453 KB
6 Apr 2024 1.02 PM
root / root
0755
ls
139.969 KB
1 Apr 2023 8.44 AM
root / root
0755
m4
185.563 KB
11 Oct 2019 2.41 PM
root / root
0755
make-dummy-cert
0.596 KB
9 Oct 2024 1.39 PM
root / root
0755
mariadb
5.15 MB
28 Jul 2025 8.25 PM
root / root
0755
mariadb-access
109.484 KB
28 Jul 2025 8.16 PM
root / root
0755
mariadb-admin
4.91 MB
28 Jul 2025 8.25 PM
root / root
0755
mariadb-binlog
5.19 MB
28 Jul 2025 8.25 PM
root / root
0755
mariadb-check
4.91 MB
28 Jul 2025 8.25 PM
root / root
0755
mariadb-dump
5.02 MB
28 Jul 2025 8.25 PM
root / root
0755
mariadb-find-rows
3.353 KB
28 Jul 2025 8.16 PM
root / root
0755
mariadb-import
5.03 MB
28 Jul 2025 8.25 PM
root / root
0755
mariadb-show
4.9 MB
28 Jul 2025 8.25 PM
root / root
0755
mariadb-waitpid
4.58 MB
28 Jul 2025 8.25 PM
root / root
0755
mc
1.3 MB
18 Oct 2019 8.38 PM
root / root
0755
mcdiff
1.3 MB
18 Oct 2019 8.38 PM
root / root
0755
mcedit
1.3 MB
18 Oct 2019 8.38 PM
root / root
0755
mcookie
33.258 KB
6 Apr 2024 1.02 PM
root / root
0755
mcview
1.3 MB
18 Oct 2019 8.38 PM
root / root
0755
md5sum
45.617 KB
1 Apr 2023 8.44 AM
root / root
0755
mesg
16.359 KB
6 Apr 2024 1.02 PM
root / root
0755
mkdir
82.789 KB
1 Apr 2023 8.44 AM
root / root
0755
mkfifo
66.563 KB
1 Apr 2023 8.44 AM
root / root
0755
mknod
70.555 KB
1 Apr 2023 8.44 AM
root / root
0755
mktemp
45.734 KB
1 Apr 2023 8.44 AM
root / root
0755
more
44.938 KB
6 Apr 2024 1.02 PM
root / root
0755
msmtp
132.039 KB
29 Apr 2020 3.38 PM
root / root
0755
msmtpd
20.531 KB
29 Apr 2020 3.38 PM
root / root
0755
msql2mysql
1.412 KB
28 Jul 2025 8.16 PM
root / root
0755
mv
144.031 KB
1 Apr 2023 8.44 AM
root / root
0755
my_print_defaults
4.59 MB
28 Jul 2025 8.25 PM
root / root
0755
mysql
5.15 MB
28 Jul 2025 8.25 PM
root / root
0755
mysql_config
4.467 KB
28 Jul 2025 8.16 PM
root / root
0755
mysql_find_rows
3.353 KB
28 Jul 2025 8.16 PM
root / root
0755
mysql_waitpid
4.58 MB
28 Jul 2025 8.25 PM
root / root
0755
mysqlaccess
109.484 KB
28 Jul 2025 8.16 PM
root / root
0755
mysqladmin
4.91 MB
28 Jul 2025 8.25 PM
root / root
0755
mysqlbinlog
5.19 MB
28 Jul 2025 8.25 PM
root / root
0755
mysqlcheck
4.91 MB
28 Jul 2025 8.25 PM
root / root
0755
mysqldump
5.02 MB
28 Jul 2025 8.25 PM
root / root
0755
mysqlimport
5.03 MB
28 Jul 2025 8.25 PM
root / root
0755
mysqlshow
4.9 MB
28 Jul 2025 8.25 PM
root / root
0755
namei
33.102 KB
6 Apr 2024 1.02 PM
root / root
0755
nano
247.938 KB
24 Sep 2024 2.16 AM
root / root
0755
neqn
0.887 KB
13 Oct 2019 2.29 PM
root / root
0755
nice
37.414 KB
1 Apr 2023 8.44 AM
root / root
0755
nl
45.625 KB
1 Apr 2023 8.44 AM
root / root
0755
nm
50.375 KB
15 Nov 2024 9.59 AM
root / root
0755
nohup
37.484 KB
1 Apr 2023 8.44 AM
root / root
0755
nproc
37.484 KB
1 Apr 2023 8.44 AM
root / root
0755
nroff
3.234 KB
13 Oct 2019 2.29 PM
root / root
0755
nslookup
146.258 KB
20 Feb 2025 9.05 AM
root / root
0755
nsupdate
73.055 KB
20 Feb 2025 9.05 AM
root / root
0755
numfmt
65.711 KB
1 Apr 2023 8.44 AM
root / root
0755
objcopy
240.07 KB
15 Nov 2024 9.59 AM
root / root
0755
objdump
419.758 KB
15 Nov 2024 9.59 AM
root / root
0755
od
73.883 KB
1 Apr 2023 8.44 AM
root / root
0755
odbc_config
13.047 KB
14 Oct 2019 9.51 PM
root / root
0755
odbcinst
37.68 KB
14 Oct 2019 9.51 PM
root / root
0755
openssl
745.953 KB
9 Oct 2024 1.39 PM
root / root
0755
optipng
141.852 KB
20 Nov 2019 3.32 PM
root / root
0755
pango-list
11.875 KB
8 Oct 2021 3.22 PM
root / root
0755
pango-view
57.438 KB
8 Oct 2021 3.22 PM
root / root
0755
passwd
1.02 KB
18 Apr 2022 10.59 PM
root / root
0755
paste
37.461 KB
1 Apr 2023 8.44 AM
root / root
0755
patch
206.461 KB
1 Jun 2020 3.14 PM
root / root
0755
pathchk
37.406 KB
1 Apr 2023 8.44 AM
root / root
0755
pdf2dsc
0.682 KB
5 Nov 2024 1.49 AM
root / root
0755
pdf2ps
0.888 KB
5 Nov 2024 1.49 AM
root / root
0755
perldoc
0.115 KB
13 Oct 2019 11.53 AM
root / root
0755
pgrep
28.844 KB
14 Oct 2023 8.31 PM
root / root
0755
php
6.11 MB
20 Nov 2024 11.29 AM
root / 996
0755
php-cgi
6.11 MB
20 Nov 2024 11.29 AM
root / 996
0755
phpize
4.963 KB
22 Oct 2025 6.40 AM
root / root
0755
pic
293.844 KB
13 Oct 2019 2.29 PM
root / root
0755
piconv
8.077 KB
13 Oct 2019 8.46 AM
root / root
0755
pinentry
2.348 KB
12 Aug 2018 5.18 PM
root / root
0755
pinentry-curses
77.891 KB
24 Nov 2019 5.39 PM
root / root
0755
ping
66.125 KB
14 Oct 2023 5.19 PM
root / root
0755
pinky
41.531 KB
1 Apr 2023 8.44 AM
root / root
0755
pkill
28.844 KB
14 Oct 2023 8.31 PM
root / root
0755
pmap
32.781 KB
14 Oct 2023 8.31 PM
root / root
0755
pod2man
14.682 KB
13 Oct 2019 2.12 PM
root / root
0755
pod2text
10.55 KB
13 Oct 2019 2.12 PM
root / root
0755
pod2usage
3.855 KB
13 Oct 2019 11.57 AM
root / root
0755
post-grohtml
238.727 KB
13 Oct 2019 2.29 PM
root / root
0755
pr
82.227 KB
1 Apr 2023 8.44 AM
root / root
0755
pre-grohtml
130.555 KB
13 Oct 2019 2.29 PM
root / root
0755
precat
5.523 KB
18 Apr 2022 3.10 PM
root / root
0755
preunzip
5.523 KB
18 Apr 2022 3.10 PM
root / root
0755
prezip
5.523 KB
18 Apr 2022 3.10 PM
root / root
0755
prezip-bin
11.977 KB
18 Apr 2022 3.10 PM
root / root
0755
printenv
33.398 KB
1 Apr 2023 8.44 AM
root / root
0755
printf
53.641 KB
1 Apr 2023 8.44 AM
root / root
0755
ps
134.75 KB
14 Oct 2023 8.31 PM
root / root
0755
ps2ascii
0.616 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2epsi
2.688 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2pdf
0.266 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2pdf12
0.21 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2pdf13
0.21 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2pdf14
0.21 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2pdfwr
1.071 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2ps
0.632 KB
5 Nov 2024 1.49 AM
root / root
0755
ps2ps2
0.653 KB
5 Nov 2024 1.49 AM
root / root
0755
ptx
78.07 KB
1 Apr 2023 8.44 AM
root / root
0755
pwd
37.5 KB
1 Apr 2023 8.44 AM
root / root
0755
pwdx
12.68 KB
14 Oct 2023 8.31 PM
root / root
0755
python3
11.594 KB
5 Dec 2024 1.10 PM
root / root
0755
python3.6
11.594 KB
5 Dec 2024 1.10 PM
root / root
0755
python3.6m
11.594 KB
5 Dec 2024 1.10 PM
root / root
0755
ranlib
61.977 KB
15 Nov 2024 9.59 AM
root / root
0755
raw
16.492 KB
6 Apr 2024 1.02 PM
root / root
0755
readelf
624.539 KB
15 Nov 2024 9.59 AM
root / root
0755
readlink
45.961 KB
1 Apr 2023 8.44 AM
root / root
0755
realpath
50.016 KB
1 Apr 2023 8.44 AM
root / root
0755
recode
47.031 KB
18 Oct 2019 3.18 PM
root / root
0755
rename
16.5 KB
6 Apr 2024 1.02 PM
root / root
0755
renew-dummy-cert
0.708 KB
9 Oct 2024 1.39 PM
root / root
0755
renice
16.461 KB
6 Apr 2024 1.02 PM
root / root
0755
reset
24.758 KB
14 Oct 2023 6.54 PM
root / root
0755
restic
28.4 MB
20 Jun 2025 12.56 PM
root / root
0700
rev
12.453 KB
6 Apr 2024 1.02 PM
root / root
0755
rm
70.469 KB
1 Apr 2023 8.44 AM
root / root
0755
rmdir
45.539 KB
1 Apr 2023 8.44 AM
root / root
0755
rnano
247.938 KB
24 Sep 2024 2.16 AM
root / root
0755
rsync
506.102 KB
15 Jan 2025 7.34 AM
root / root
0755
run-with-aspell
0.083 KB
18 Apr 2022 3.10 PM
root / root
0755
runcon
37.445 KB
1 Apr 2023 8.44 AM
root / root
0755
rvi
1.13 MB
2 Aug 2022 4.57 PM
root / root
0755
rview
1.13 MB
2 Aug 2022 4.57 PM
root / root
0755
rvim
2.93 MB
2 Aug 2022 4.57 PM
root / root
0755
scalar
2.18 MB
17 Dec 2024 4.12 AM
root / root
0755
scl
36.867 KB
1 Apr 2023 4.10 PM
root / root
0755
scl_enabled
0.252 KB
25 Aug 2017 8.23 AM
root / root
0755
scl_source
1.819 KB
1 Apr 2023 4.10 PM
root / root
0755
scp
102.836 KB
13 Aug 2024 7.38 PM
root / root
0755
script
36.789 KB
6 Apr 2024 1.02 PM
root / root
0755
sdiff
105.328 KB
4 May 2020 3.15 PM
root / root
0755
sed
115.477 KB
18 Apr 2022 9.41 PM
root / root
0755
seq
53.523 KB
1 Apr 2023 8.44 AM
root / root
0755
setsid
16.375 KB
6 Apr 2024 1.02 PM
root / root
0755
setterm
45.117 KB
6 Apr 2024 1.02 PM
root / root
0755
sftp
159.734 KB
13 Aug 2024 7.38 PM
root / root
0755
sh
1.1 MB
23 May 2024 8.55 AM
root / root
0755
sha1sum
45.625 KB
1 Apr 2023 8.44 AM
root / root
0755
sha224sum
45.656 KB
1 Apr 2023 8.44 AM
root / root
0755
sha256sum
45.656 KB
1 Apr 2023 8.44 AM
root / root
0755
sha384sum
45.664 KB
1 Apr 2023 8.44 AM
root / root
0755
sha512sum
45.664 KB
1 Apr 2023 8.44 AM
root / root
0755
shred
61.938 KB
1 Apr 2023 8.44 AM
root / root
0755
shuf
58.164 KB
1 Apr 2023 8.44 AM
root / root
0755
size
33.25 KB
15 Nov 2024 9.59 AM
root / root
0755
skill
28.797 KB
14 Oct 2023 8.31 PM
root / root
0755
slabtop
20.844 KB
14 Oct 2023 8.31 PM
root / root
0755
sleep
37.469 KB
1 Apr 2023 8.44 AM
root / root
0755
slencheck
13.07 KB
14 Oct 2019 9.51 PM
root / root
0755
snice
28.797 KB
14 Oct 2023 8.31 PM
root / root
0755
soelim
42.555 KB
13 Oct 2019 2.29 PM
root / root
0755
sort
123.547 KB
1 Apr 2023 8.44 AM
root / root
0755
spell
0.119 KB
18 Apr 2022 3.10 PM
root / root
0755
split
58.125 KB
1 Apr 2023 8.44 AM
root / root
0755
sprof
28.672 KB
5 Aug 2025 2.12 PM
root / root
0755
sqlite3
1.28 MB
16 Jan 2024 8.21 AM
root / root
0755
ssh
757.477 KB
13 Aug 2024 7.38 PM
root / root
0755
ssh-add
346.094 KB
13 Aug 2024 7.38 PM
root / root
0755
ssh-agent
325.563 KB
13 Aug 2024 7.38 PM
root / root
0755
ssh-copy-id
10.443 KB
13 Aug 2024 7.38 PM
root / root
0755
ssh-keygen
427.203 KB
13 Aug 2024 7.38 PM
root / root
0755
ssh-keyscan
428.563 KB
13 Aug 2024 7.38 PM
root / root
0755
stat
86.234 KB
1 Apr 2023 8.44 AM
root / root
0755
stdbuf
49.578 KB
1 Apr 2023 8.44 AM
root / root
0755
strings
37.43 KB
15 Nov 2024 9.59 AM
root / root
0755
strip
240.094 KB
15 Nov 2024 9.59 AM
root / root
0755
stty
77.68 KB
1 Apr 2023 8.44 AM
root / root
0755
sum
45.609 KB
1 Apr 2023 8.44 AM
root / root
0755
svn
338.742 KB
9 Nov 2022 12.46 PM
root / root
0755
svnadmin
100.953 KB
9 Nov 2022 12.46 PM
root / root
0755
svndumpfilter
36.719 KB
9 Nov 2022 12.46 PM
root / root
0755
svnfsfs
40.664 KB
9 Nov 2022 12.46 PM
root / root
0755
svnlook
76.844 KB
9 Nov 2022 12.46 PM
root / root
0755
svnrdump
57.039 KB
9 Nov 2022 12.46 PM
root / root
0755
svnserve
109.656 KB
9 Nov 2022 12.46 PM
root / root
0755
svnsync
61.047 KB
9 Nov 2022 12.46 PM
root / root
0755
svnversion
16.305 KB
9 Nov 2022 12.46 PM
root / root
0755
sync
37.43 KB
1 Apr 2023 8.44 AM
root / root
0755
tabs
16.555 KB
14 Oct 2023 6.54 PM
root / root
0755
tac
41.57 KB
1 Apr 2023 8.44 AM
root / root
0755
tail
74.203 KB
1 Apr 2023 8.44 AM
root / root
0755
tar
449.031 KB
4 Apr 2023 8.26 PM
root / root
0755
taskset
37.25 KB
6 Apr 2024 1.02 PM
root / root
0755
tbl
154.609 KB
13 Oct 2019 2.29 PM
root / root
0755
tclsh
9.039 KB
12 Oct 2019 12.25 AM
root / root
0755
tclsh8.6
9.039 KB
12 Oct 2019 12.25 AM
root / root
0755
tee
41.555 KB
1 Apr 2023 8.44 AM
root / root
0755
test
53.625 KB
1 Apr 2023 8.44 AM
root / root
0755
tic
85.313 KB
14 Oct 2023 6.54 PM
root / root
0755
timeout
41.93 KB
1 Apr 2023 8.44 AM
root / root
0755
tload
16.758 KB
14 Oct 2023 8.31 PM
root / root
0755
tmpwatch
35.469 KB
12 Oct 2019 11.32 AM
root / root
0755
toe
16.453 KB
14 Oct 2023 6.54 PM
root / root
0755
top
121.695 KB
14 Oct 2023 8.31 PM
root / root
0755
touch
94.016 KB
1 Apr 2023 8.44 AM
root / root
0755
tput
24.797 KB
14 Oct 2023 6.54 PM
root / root
0755
tr
49.703 KB
1 Apr 2023 8.44 AM
root / root
0755
tree
81.586 KB
12 Oct 2019 12.35 AM
root / root
0755
troff
805.023 KB
13 Oct 2019 2.29 PM
root / root
0755
true
33.398 KB
1 Apr 2023 8.44 AM
root / root
0755
truncate
41.438 KB
1 Apr 2023 8.44 AM
root / root
0755
tset
24.758 KB
14 Oct 2023 6.54 PM
root / root
0755
tsort
41.57 KB
1 Apr 2023 8.44 AM
root / root
0755
tty
33.391 KB
1 Apr 2023 8.44 AM
root / root
0755
tzselect
15.01 KB
5 Aug 2025 2.01 PM
root / root
0755
ul
20.578 KB
6 Apr 2024 1.02 PM
root / root
0755
uname
37.406 KB
1 Apr 2023 8.44 AM
root / root
0755
unexpand
45.68 KB
1 Apr 2023 8.44 AM
root / root
0755
uniq
49.719 KB
1 Apr 2023 8.44 AM
root / root
0755
unlink
33.414 KB
1 Apr 2023 8.44 AM
root / root
0755
unrar
347.016 KB
4 May 2022 6.22 PM
root / root
0755
unzip
201.883 KB
3 Jun 2025 2.10 AM
root / root
0755
unzipsfx
101.477 KB
3 Jun 2025 2.10 AM
root / root
0755
uptime
12.586 KB
14 Oct 2023 8.31 PM
root / root
0755
users
37.469 KB
1 Apr 2023 8.44 AM
root / root
0755
utmpdump
28.656 KB
6 Apr 2024 1.02 PM
root / root
0755
vdir
139.969 KB
1 Apr 2023 8.44 AM
root / root
0755
vi
1.13 MB
2 Aug 2022 4.57 PM
root / root
0755
view
1.13 MB
2 Aug 2022 4.57 PM
root / root
0755
vim
2.93 MB
2 Aug 2022 4.57 PM
root / root
0755
vimdiff
2.93 MB
2 Aug 2022 4.57 PM
root / root
0755
vimtutor
2.071 KB
2 Aug 2022 4.56 PM
root / root
0755
vmstat
36.789 KB
14 Oct 2023 8.31 PM
root / root
0755
watch
29.188 KB
14 Oct 2023 8.31 PM
root / root
0755
wc
49.719 KB
1 Apr 2023 8.44 AM
root / root
0755
wget
521.414 KB
13 Aug 2024 10.22 PM
root / root
0755
whereis
29.273 KB
6 Apr 2024 1.02 PM
root / root
0755
which
29.438 KB
15 Oct 2023 2.50 AM
root / root
0755
who
53.68 KB
1 Apr 2023 8.44 AM
root / root
0755
whoami
33.414 KB
1 Apr 2023 8.44 AM
root / root
0755
word-list-compress
11.992 KB
18 Apr 2022 3.10 PM
root / root
0755
x86_64-redhat-linux-c++
1.21 MB
14 Feb 2025 9.04 AM
root / root
0755
x86_64-redhat-linux-g++
1.21 MB
14 Feb 2025 9.04 AM
root / root
0755
x86_64-redhat-linux-gcc-8
1.2 MB
14 Feb 2025 9.04 AM
root / root
0755
xargs
74.109 KB
24 Sep 2024 2.19 AM
root / root
0755
xmlcatalog
20.375 KB
17 Feb 2025 2.33 AM
root / root
0755
xmllint
73.367 KB
17 Feb 2025 2.33 AM
root / root
0755
xmlwf
32.961 KB
13 Nov 2024 5.39 AM
root / root
0755
xsltproc
28.422 KB
8 Apr 2021 6.24 AM
root / root
0755
xxd
20.523 KB
2 Aug 2022 4.57 PM
root / root
0755
yes
33.445 KB
1 Apr 2023 8.44 AM
root / root
0755
zcat
1.937 KB
27 Apr 2022 5.49 AM
root / root
0755
zcmp
1.638 KB
27 Apr 2022 5.49 AM
root / root
0755
zdiff
5.741 KB
27 Apr 2022 5.49 AM
root / root
0755
zegrep
0.028 KB
27 Apr 2022 5.49 AM
root / root
0755
zfgrep
0.028 KB
27 Apr 2022 5.49 AM
root / root
0755
zforce
2.031 KB
27 Apr 2022 5.49 AM
root / root
0755
zgrep
7.404 KB
27 Apr 2022 5.49 AM
root / root
0755
zip
229 KB
11 Oct 2019 1.11 PM
root / root
0755
zipcloak
102.906 KB
11 Oct 2019 1.11 PM
root / root
0755
zipgrep
2.884 KB
10 Oct 2008 5.40 PM
root / root
0755
zipinfo
201.883 KB
3 Jun 2025 2.10 AM
root / root
0755
zipnote
97.758 KB
11 Oct 2019 1.11 PM
root / root
0755
zipsplit
97.758 KB
11 Oct 2019 1.11 PM
root / root
0755
zless
2.153 KB
27 Apr 2022 5.49 AM
root / root
0755
zmore
1.798 KB
27 Apr 2022 5.49 AM
root / root
0755
znew
4.445 KB
27 Apr 2022 5.49 AM
root / root
0755
zsoelim
42.555 KB
13 Oct 2019 2.29 PM
root / root
0755

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF